Threshold Checker
This example shows how to use the functions apply_thresholds to check if a DMO falls within the thresholds for a
specific cohort and height.
Selecting Example Data
We use some example DMO data.
Note, that the apply_thresholds function can only be used with the data of a single participant at the time,
as meta-data such as the participant’s height is required.
Luckily, the all the example data is from the same participant, just recorded at different times.
|
|
|
|
duration_s |
n_steps |
cadence_spm |
walking_speed_mps |
stride_length_m |
stride_duration_s |
n_turns |
| visit_type |
participant_id |
measurement_date |
wb_id |
|
|
|
|
|
|
|
| T1 |
12345 |
2023-01-01 |
0 |
4.74702 |
8 |
99.82188 |
1.16079 |
2.51885 |
1.58675 |
0 |
| 1 |
5.13150 |
7 |
101.16429 |
2.57881 |
1.57243 |
1.46537 |
0 |
| 2 |
8.52727 |
12 |
86.53527 |
1.60044 |
1.66305 |
2.56092 |
2 |
| 3 |
16.24554 |
27 |
91.49977 |
0.95558 |
0.88961 |
3.14549 |
1 |
| 4 |
6.09907 |
8 |
93.69895 |
2.33230 |
1.95969 |
2.35295 |
0 |
Load Thresholds
|
condition |
free_living |
laboratory |
literature |
global |
|
threshold_type |
min |
max |
min |
max |
min |
max |
min |
max |
| dmo |
cohort |
|
|
|
|
|
|
|
|
| cadence_spm |
CHF |
40.594770 |
167.942930 |
53.617703 |
122.657158 |
36.20 |
150.900 |
40.000000 |
172.900 |
| COPD |
38.880484 |
151.558718 |
59.451004 |
164.969764 |
71.20 |
154.800 |
40.000000 |
172.900 |
| HA |
35.751898 |
156.946955 |
60.176644 |
146.309393 |
90.40 |
169.200 |
40.000000 |
172.900 |
| MS |
38.443211 |
155.394496 |
44.016149 |
140.939597 |
45.60 |
164.400 |
40.000000 |
172.900 |
| PD |
40.957969 |
142.121947 |
47.681576 |
147.054849 |
33.80 |
77.600 |
40.000000 |
172.900 |
| PFF |
42.191719 |
157.613665 |
46.839404 |
133.129276 |
42.90 |
172.900 |
40.000000 |
172.900 |
| walking_speed_mps |
CHF |
0.112478 |
1.757103 |
0.273401 |
1.528913 |
0.63 |
1.830 |
0.081515 |
2.220 |
| COPD |
0.090731 |
1.641773 |
0.159689 |
1.918146 |
0.60 |
1.840 |
0.081515 |
2.220 |
| HA |
0.097413 |
1.965728 |
0.207887 |
1.583779 |
0.78 |
2.220 |
0.081515 |
2.220 |
| MS |
0.085918 |
1.920262 |
0.203213 |
1.877691 |
0.52 |
1.740 |
0.081515 |
2.220 |
| PD |
0.081515 |
1.735348 |
0.139654 |
1.939697 |
0.56 |
2.100 |
0.081515 |
2.220 |
| PFF |
0.104547 |
1.553186 |
0.143724 |
1.627383 |
0.11 |
1.590 |
0.081515 |
2.220 |
| stride_length_m |
CHF |
0.185308 |
2.166646 |
0.444041 |
1.568583 |
0.53 |
1.860 |
0.150523 |
2.190 |
| COPD |
0.176403 |
1.711645 |
0.223537 |
1.623733 |
1.03 |
2.190 |
0.150523 |
2.190 |
| HA |
0.155126 |
2.024694 |
0.290283 |
1.669609 |
0.87 |
1.980 |
0.150523 |
2.190 |
| MS |
0.191099 |
1.940537 |
0.363004 |
1.721322 |
0.72 |
2.100 |
0.150523 |
2.190 |
| PD |
0.150523 |
1.982926 |
0.253069 |
1.772536 |
0.56 |
1.620 |
0.150523 |
2.190 |
| PFF |
0.206787 |
1.697251 |
0.233460 |
1.587144 |
0.71 |
1.930 |
0.150523 |
2.190 |
| stride_duration_s |
CHF |
0.702000 |
3.030857 |
0.980000 |
2.274545 |
0.46 |
1.320 |
0.460000 |
3.000 |
| COPD |
0.770000 |
3.000000 |
0.727500 |
2.160000 |
0.68 |
1.410 |
0.460000 |
3.000 |
| HA |
0.735435 |
3.254400 |
0.829091 |
2.142000 |
0.69 |
2.304 |
0.460000 |
3.000 |
| MS |
0.775597 |
3.057750 |
0.855000 |
2.731667 |
0.69 |
2.304 |
0.460000 |
3.000 |
| PD |
0.836253 |
2.928000 |
0.818571 |
2.522000 |
0.76 |
1.690 |
0.460000 |
3.000 |
| PFF |
0.744000 |
2.769000 |
0.902727 |
2.584545 |
0.14 |
0.980 |
0.460000 |
3.000 |
| step_duration_s |
CHF |
0.376000 |
1.504500 |
0.498000 |
1.144167 |
0.14 |
0.980 |
0.140000 |
2.124 |
| COPD |
0.390400 |
1.788000 |
0.366000 |
1.181429 |
0.16 |
0.920 |
0.140000 |
2.124 |
| HA |
0.367972 |
1.730400 |
0.410000 |
1.137500 |
0.25 |
1.040 |
0.140000 |
2.124 |
| MS |
0.388084 |
1.905000 |
0.432857 |
1.360000 |
0.25 |
1.090 |
0.140000 |
2.124 |
| PD |
0.417216 |
1.605600 |
0.415000 |
1.450000 |
0.19 |
1.100 |
0.140000 |
2.124 |
| PFF |
0.371429 |
2.124000 |
0.430000 |
1.320000 |
0.35 |
1.100 |
0.140000 |
2.124 |
Apply Thresholds
|
|
|
|
duration_s |
n_steps |
cadence_spm |
walking_speed_mps |
stride_length_m |
stride_duration_s |
n_turns |
| visit_type |
participant_id |
measurement_date |
wb_id |
|
|
|
|
|
|
|
| T1 |
12345 |
2023-01-01 |
0 |
NaN |
NaN |
True |
True |
True |
True |
NaN |
| 1 |
NaN |
NaN |
True |
False |
True |
True |
NaN |
| 2 |
NaN |
NaN |
True |
True |
True |
True |
NaN |
| 3 |
NaN |
NaN |
True |
True |
True |
False |
NaN |
| 4 |
NaN |
NaN |
True |
False |
True |
True |
NaN |
We can see that the output has exactly the same structure as the input data, but with boolean values indicating if
the DMO falls within the thresholds or not.
Columns for which no thresholds were provided are simply NaN, indicating that no filtering was applied.
It is up to you how you want to use this information.
This output data can be used to filter the input data for DMOs that fall within the thresholds.
This can be done in combination with the aggregation algorithm to only include DMOs that fall within the thresholds.
See the mobilised_aggregator example for more information.
Total running time of the script: (0 minutes 0.734 seconds)
Estimated memory usage: 9 MB
Gallery generated by Sphinx-Gallery