DOI: 10.5061/dryad.0p2ngf2bd
title: Data from: The effect of sampling methods on the validity and reliability of the estimation of the orbital stability of human gait

description: Floquet multiplier (FM) is a commonly used metric for evaluating gait
 orbital stability in biomechanics. However, variability of human gait and
 noise from various sources can induce significant bias and variance in the
 estimation of FM. Furthermore, FM is employed in gait analysis without
 standardized protocols, leading to highly case-dependent outcomes. To
 address these challenges, we quantify the effects of sampling conditions
 on the accuracy and consistency of FM estimations. We recruited 20 healthy
 participants and conducted five trials of 10-minute walking per
 participant. Using individualized Jacobian matrices calculated from the
 walking experiments, we synthesized multiple sets of virtual time series
 with varying lengths and trial counts. Using stochastic linear models, we
 simulated the error dynamics depending on the sampling methods. The bias
 and variance of FM estimates decreased significantly with increased time
 series length, and a significant interaction was observed between time
 series length and the number of trials. Our results further suggest that
 partitioning a long time series into appropriately sized segments can
 yield more reliable FM estimates, reducing both bias and variance in FM
 estimations.
description: # Floquet Multiplier (Gait Orbital Stability): Open-Source Dataset and
 Code This repository provides open-source data and code for analyzing
 **orbital stability of human gait** using **Floquet Multipliers (FMs)**.
 Included are raw experimental data, simulation data, processed results,
 and Python scripts used for the analysis. The full methodology and results
 are detailed in the following publication:\ 🔗
 [https://doi.org/10.1098/rsos.250106](https://doi.org/10.1098/rsos.250106)
 --- ## 📂 Folder Structure ```text Supplementary_Data │ ├── Code # Python
 scripts for data analysis │ ├── FM_Clinical_Experiment.py │ ├──
 FM_Simulation.py │ └── FM_Functions.py │ └── Data │ ├── RawData # Walking
 experiment data │ └── WalkingData.joblib │ ├── RawData_Results #
 Intermediate and result files generated from walking experiment data │ ├──
 OverallData │ │ ├── Mean_Overall_Con_idx.joblib │ ├── sub1 │ │ ├──
 DF_FMs_Trial.joblib │ │ ├── FM_Profile_of_Walking_Experiment.png │ │ ├──
 Jacobians_Trials.joblib │ │ ├── SVs_Trials.joblib │ │ └── Target_FM.joblib
 │ ├── ... │ └── sub20 │ └── Simulation_Results # Intermediate and result
 files generated from simulation data ├── OverallData │ ├── DF_CI_Diff.csv
 │ ├── DF_CI_Real.csv │ ├── DF_CI_Simul.csv │ ├── LMM_Data.csv │ ├──
 Overall_ICC_data.joblib │ ├── TargetFM_Real.joblib │ ├──
 TargetFM_Simul.joblib ├── sub1 │ ├── DF_FMs_Simuls1000.joblib │ ├──
 Exp100_Bias.joblib │ ├── Exp100_Corr.joblib │ ├── Sim_Target_FM.joblib │
 └── SimDatas1000.joblib # Simulation Data ├── ... └── sub20 ``` ## 📁
 Contents | File / Folder | Description | |
 -------------------------------------- |
 ------------------------------------------------------------------------------------------------------------------ | | `FM_Clinical_Experiment.py` | Script for calculating FMs and generating figures from walking experiment data | | `FM_Simulation.py` | Script for simulating gait data using representative Jacobian matrices | | `FM_Functions.py` | Script containing supporting functions | | `WalkingData.joblib` | Walking experiment data | | `Mean_Overall_Con_idx.joblib` | Result file showing the average condition number from five-trial walking experiment data for each subject | | `DF_FMs_Trial.joblib` | Intermediate file containing FM estimates across sample sizes and trials | | `FM_Profile_of_Walking_Experiment.png` | Result file showing the figure generated from `DF_FMs_Trial.joblib` | | `Jacobians_Trials.joblib` | Intermediate file containing representative Jacobian matrices | | `SVs_Trials.joblib` | Intermediate file containing the design matrix of state vectors | | `Target_FM.joblib` | Intermediate file containing the average maximum FM from five-trial walking experiment data | | `DF_CI_Diff.csv` | Result file showing the differences between average FM estimates from walking and simulation data for each subject | | `DF_CI_Real.csv` | Result file showing the average FM estimates from five-trial walking experiment data for each subject | | `DF_CI_Simul.csv` | Result file showing the average FM estimates from five-trial simulation data for each subject | | `LMM_Data.csv` | Intermediate file for linear mixed model analysis | | `Overall_ICC_data.joblib` | Intermediate file for intraclass correlation analysis | | `TargetFM_Real.joblib` | Intermediate file containing the mean target FM across all subjects from five-trial walking experiment data | | `TargetFM_Simul.joblib` | Intermediate file containing the mean target FM across all subjects from five-trial simulation data | | `DF_FMs_Simuls1000.joblib` | Intermediate file containing FM estimates across sample sizes and trials from simulation | | `Exp100_Bias.joblib` | Intermediate file containing the bias of FM estimates across sample sizes and trials from simulations | | `Exp100_Corr.joblib` | Intermediate file for Pearson's correlation analysis | | `Sim_Target_FM.joblib` | Intermediate file containing the maximum FM of the representative Jacobian matrix | | `SimDatas1000.joblib` | Simulation Data | ## 📄 Data Descriptions ### 1. Walking Experiement Data (`WalkingData.joblib`) * The **.joblib** extension indicates a binary file format * **Task**: Level treadmill walking at 1.17 m/s * **Trials**: 5 independent 10-minute walking trials per participant * **Rest**: 5-minute rest between each trial * **Participants**: * N = 20 * Age: 25 ± 4.5 years * Height: 176.8 ± 4.6 cm * Mass: 73.0 ± 5.0 kg * **Sampling Rate**: 100 Hz * **Duration**: 10 minutes per trial * **Columns**: `Left_ankle_x`, `Left_ankle_y`, `Left_ankle_z`, `Right_ankle_x`, `Right_ankle_y`, `Right_ankle_z` `Left_knee_x`, `Left_knee_y`, `Left_knee_z`, `Right_knee_x`, `Right_knee_y`, `Right_knee_z`, `Left_hip_x`, `Left_hip_y`, `Left_hip_z`, `Right_hip_x`, `Right_hip_y`, `Right_hip_z`, `Left_Dist_x`, `Left_Dist_y`, `Left_Dist_z`, `Right_Dist_x`, `Right_Dist_y`, `Right_Dist_z`, `Left_toe_x`, `Left_toe_y`, `Left_toe_z`, `Right_toe_x`, `Right_toe_y`, `Right_toe_z` `Left_heel_x`, `Left_heel_y`, `Left_heel_z`, `Right_heel_x`, `Right_heel_y`, `Right_heel_z` * **Columns Explanation**: Hip, knee, and ankle joint angles; distances between the pelvis center and the heels; marker positions of the toes and heels * **Units**: Degrees for joint angles; meters for marker positions --- ### 2. Simulation Data (`SimDatas1000.joblib`) * **Task**: Simulation of joint angle errors across 1,000 strides * **Trials**: 1,000 independent time series * **Stride length**: 1,000 strides per time series * **Noise**: Multivariate Gaussian noise (zero mean) applied per stride * **Initialization**: Random initial state for each trial * **Columns**: The same as in `WalkingData.joblib` * **Units**: Degrees --- ## ⚙️ Python Scripts ### 1. Environment Requirements * Python 3.9 * Required packages:\ `pandas`, `numpy`, `scipy`, `scikit-learn`, `matplotlib`, `joblib`, `pingouin`, etc. ### 2. Execution Instructions * **Walking Experiment Data Analysis**\ Run `FM_Clinical_Experiment.py` to: * Calculate Floquet Multipliers * Extract Jacobian matrices from experimental data * Generate relevant figures * **Simulation Analysis**\ Run `FM_Simulation.py` to: * Generate synthetic gait data using the Jacobians * Create simulation plots * **Supporting Funtions** * `FM_Functions.py`: Contains all supporting functions used by the above scripts ### 3. Notes * All scripts use **relative paths** — no file path adjustment is required. * The `DataGeneration` flag is set to `False` by default.\ To save time, use the provided pre-generated data. * All intermediate and result files can be generated from the RawData. --- ## 📌 Citation If you use this dataset or code, please cite the following publication: &gt; Moon, J., et al. (2025).\ &gt; *The effect of sampling methods on the validity and reliability of the estimation of the orbital stability of human gait*.\ &gt; *Royal Society Open Science*.\ &gt; 🔗 [https://doi.org/10.1098/rsos.250106](https://doi.org/10.1098/rsos.250106) ---