NOTE: If you are viewing this page via CRAN note that additional documentation can be found in the GGIR GitHub pages.
The physical activity research field has used so called cut-points to segment accelerometer time series based on level of intensity. In this vignette we have compiled a list of published cut-points with instructions on how to use them with GGIR. Please note that GGIR refers to cut-points as thresholds, but we are referring to the same thing: A value or a set of values to help split levels of movement intensity. As newer cut-points are frequently published the list below may not be up to date. Please let us know if you are aware of any published cut-points that we missed!
This vignette focuses on cut-points for metrics that attempt to quantify average acceleration per epoch in gravitational units. The strength of these metrics is that their values are not affected by sampling rate and epoch length improving comparability across studies.
However, GGIR also facilitates some metrics whose values are not
expressed in gravitational units that were historically used. For
example, the metric as described by Neishabouri (see GGIR argument
do.neishabouricounts
) which reflects the indicator of
accumulated body movement over time, referred to as counts, calculated
by the ActiLife software from the ActiGraph accelerometer brand.
Cut-points for counts corresponding to the ActiGraph brand have been
recurrently proposed in the literature, for example, see this systematic review
with a stratification by age group. Note that cut-points for ActiGraph
counts proposed before the introduction of multiday raw data collection
are most likely hardware-based calculations which may not perfectly
align with ActiGraph software-based (Actilife) calculations of counts
that Neishabouri described. As a result, older cut-points may need to be
used with caution.
The cut-points you find in the literature for ActiGraph counts cannot be applied to Neishabouri counts directly because both are epoch length specific. The cut-points from the literature need to be corrected by a conversion factor. The conversion factor is calculated as the epoch length in the new study (e.g. 5 seconds) divided by the epoch length in the original study (e.g. 60 seconds). Note that no correction for differences in sampling rate is needed because Neishabouri counts already account for this via down-sampling.
If we would want to use cut-point “100 counts per minute” from the literature on 5 second epoch data, the GGIR function call would look like this:
GGIR([...],
mode = 1:5,
windowsizes = c(5, 900, 3600),
do.neishabouricounts = TRUE,
acc.metric = "NeishabouriCount_y",
threshold.in = 100 * (5/60),
[...])
The argument mvpathreshold
is used in part
2 to quantify the time accumulated over a user-specified
threshold over which the moderate-to-vigorous intensity is expected to
occur. The mvpathreshold
is applied over all the metrics
extracted in part 1 with the arguments do.metric (e.g.,
do.enmo
, do.mad
,
do.neishabouricounts
).
In part 5, threshold.lig
,
threshold.mod
, and threshold.vig
are used to
indicate the thresholds to separate inactivity from light, light from
moderate, and moderate from vigorous, respectively.These thresholds are
applied over the metric defined with acc.metric
(default =
“ENMO”). Here a summary table for the parameters definition to calculate
some of the acceleration metrics that has been previously used for the
calibration of cut-points and how to define them to be used in the
physical activity intensity classification with cut-points.
Metric | To derive metric | Define metric for cut-points |
---|---|---|
ENMO | do.enmo = TRUE |
acc.metric = "ENMO" |
ENMOa | do.enmoa = TRUE |
acc.metric = "ENMOa" |
LFENMO | do.lfenmo = TRUE |
acc.metric = "LFENMO" |
MAD | do.mad = TRUE |
acc.metric = "MAD" |
Neishabouri counts |
do.neishabouricounts = TRUE |
acc.metric = "NeishabouriCount_x" acc.metric = "NeishabouriCount_y" acc.metric = "NeishabouriCount_z" acc.metric = "NeishabouriCount_vm" |
Cut-points | Device Attachment site |
Age | Relevant arguments | thresholds |
---|---|---|---|---|
Roscoe 2017* | GENEActiv Non-dominant wrist |
4-5 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 61.8 Moderate: 100.4 Vigorous: N/A |
Roscoe 2017* | GENEActiv Dominant wrist |
4-5 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 94.5 Moderate: 108.5 Vigorous: N/A |
*These publications used acceleration metrics that sum their values
per epoch rather than average them per epoch like GGIR does. So, to use
their cut-point in GGIR, we provide a scaled version of the cut-points
presented in the paper as:
(CutPointFromPaper_in_gsecs/85.7) * 1000
. Note that sample
frequency of 87.5 as reported in the publication was incorrect and based
on correspondence with authors we replaced this by 85.7.
Cut-points | Device Attachment site |
Age | Relevant arguments | thresholds |
---|---|---|---|---|
Phillips 2013* | GENEA Left wrist |
8-14 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 87.5 Moderate: 250 Vigorous: 750 |
Phillips 2013* | GENEA Right wrist |
8-14 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 75 Moderate: 275 Vigorous: 700 |
Phillips 2013* | GENEA Hip |
8-14 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 37.5 Moderate: 212.5 Vigorous: 637.5 |
Schaefer 2014* | GENEActiv Non-dominant wrist |
6-11 yr | do.bfen = TRUE lb = 0.2 hb = 15 do.enmo = FALSE acc.metric = "BFEN" |
Light: 190 Moderate: 314 Vigorous: 998 |
Hildebrand 2014 Hildebrand 2016 |
ActiGraph Non-dominant wrist |
7-11 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 35.6 Moderate: 201.4 Vigorous: 707.0 |
Hildebrand 2014 Hildebrand 2016 |
GENEActiv Non-dominant wrist |
7-11 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 56.3 Moderate: 191.6 Vigorous: 695.8 |
Hildebrand 2014 Hildebrand 2016 |
ActiGraph Hip |
7-11 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 63.3 Moderate: 142.6 Vigorous: 464.6 |
Hildebrand 2014 Hildebrand 2016 |
GENEActiv Hip |
7-11 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 64.1 Moderate: 152.8 Vigorous: 514.3 |
Aittasalo 2015 | ActiGraph Hip |
13-15 yr | Default valuesdo.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: 26.9 Moderate: 332 Vigorous: 558.3 |
Aittasalo 2015 | Hookie AM20 Hip |
13-15 yr | Default valuesdo.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: 28.7 Moderate: 338 Vigorous: 558.3 |
*These publications used acceleration metrics that sum their values
per epoch rather than average them per epoch like GGIR does. So, to use
their cut-point in GGIR, we provide a scaled version of the cut-points
presented in the paper as:
(CutPointFromPaper_in_gmins/(sampleRateFromPaper * EpochLengthInSecondsPaper)) * 1000
** This publication used acceleration metrics that expressed their
cut-points in g units. So, to use their cut-point in GGIR, we
provide a cut-point multiplied by 1000.
Cut-points | Device Attachment site |
Age | Relevant arguments | thresholds |
---|---|---|---|---|
Esliger 2011* | Left wrist | 40-65 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 45 Moderate: 134 Vigorous: 377 |
Esliger 2011* | Right wrist | 40-65 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 80 Moderate: 92 Vigorous: 437 |
Esliger 2011* | Waist | 40-65 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 16 Moderate: 46 Vigorous: 428 |
Hildebrand 2014 Hildebrand 2016 |
ActiGraph Non-dominant wrist |
21-61 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 44.8 Moderate: 100.6 Vigorous: 428.8 |
Hildebrand 2014 Hildebrand 2016 |
GENEActiv Non-dominant wrist |
21-61 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 45.8 Moderate: 93.2 Vigorous: 418.3 |
Hildebrand 2014 Hildebrand 2016 |
ActiGraph Hip |
21-61 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 47.4 Moderate: 69.1 Vigorous: 258.7 |
Hildebrand 2014 Hildebrand 2016 |
GENEActiv Hip |
21-61 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 46.9 Moderate: 68.7 Vigorous: 266.8 |
Vähä-Ypyä 2015 | Hookie AM20 Hip |
35 (SD=11) yr | do.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: N/A Moderate: 91 Vigorous: 414 |
Dillon 2016*,† | GENEActiv Non-dominant wrist |
50-69 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 105.6 Moderate: 174.2 Vigorous: 330 |
Dillon 2016*,† | GENEActiv Dominant wrist |
50-69 yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 127.8 Moderate: 187.6 Vigorous: 396.4 |
Buchan 2023*,† | activPAL Right thigh |
23 (SD=4) yr | **Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 26.4 Moderate: N/A Vigorous: N/A |
Buchan 2023*,† | activPAL Right thigh |
23 (SD=4) yr | do.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: 30.1 Moderate: N/A Vigorous: N/A |
*These publications used acceleration metrics that sum their values
per epoch rather than average them per epoch like GGIR does. So, to use
their cut-point in GGIR, we provide a scaled version of the cut-points
presented in the paper as:
(CutPointFromPaper_in_gmins/(sampleRateFromPaper * EpochLengthInSecondsPaper)) * 1000
† In this publication,
there are cut-point based on data sampled at 30 Hz and 100 Hz. When
scaling the cut-points as specified in (*), the resulting thresholds are
virtually the same (the ones presented in this table).
Cut-points | Device Attachment site |
Age | Relevant arguments | thresholds |
---|---|---|---|---|
Sanders 2019* | GENEActiv Non-dominant wrist |
60-86 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 20 Moderate: 32 Vigorous: N/A |
Sanders 2019** | GENEActiv Non-dominant wrist |
60-86 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 57 Moderate: 104 Vigorous: N/A |
Sanders 2019* | ActiGraph Hip |
60-86 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 6 Moderate: 19 Vigorous: N/A |
Sanders 2019** | ActiGraph Hip |
60-86 yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 15 Moderate: 69 Vigorous: N/A |
Migueles 2021 | ActiGraph Non-dominant wrist |
≥70 yr (mean: 78.7 yr) |
Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 18 Moderate: 60 Vigorous: N/A |
Migueles 2021 | ActiGraph Dominant wrist |
≥70 yr (mean: 78.7 yr) |
Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 22 Moderate: 64 Vigorous: N/A |
Migueles 2021 | ActiGraph Hip |
≥70 yr (mean: 78.7 yr) |
Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Light: 7 Moderate: 14 Vigorous: N/A |
Bammann 2021 | ActiGraph Hip |
62.9 (SD=3.6) yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Moderate: 94 Vigorous: 230 |
Bammann 2021 | ActiGraph Dominant Wrist |
62.9 (SD=3.6) yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Moderate: 122 Vigorous: 234 |
Bammann 2021 | ActiGraph Non-dominant Wrist |
62.9 (SD=3.6) yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Moderate: 100 Vigorous: 245 |
Bammann 2021 | ActiGraph Dominant Ankle |
62.9 (SD=3.6) yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Moderate: 342 |
Bammann 2021 | ActiGraph Non-dominant Ankle |
62.9 (SD=3.6) yr | Default valuesdo.enmo = TRUE acc.metric = "ENMO" |
Moderate: 331 |
Fraysse 2020† | GENEActiv Non-dominant wrist |
≥70 yr (mean: 77 yr) |
do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 42.5 Moderate: 98 Vigorous: N/A |
Fraysse 2020† | GENEActiv Dominant wrist |
≥70 yr (mean: 77 yr) |
do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 62.5 Moderate: 92.5 Vigorous: N/A |
Dibben 2020‡ | GENEActiv Right wrist |
70.7 (SD=14.1) yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 18.6 Moderate: 45.5 Vigorous: N/A |
Dibben 2020‡ | GENEActiv Right wrist |
70.7 (SD=14.1) yr | do.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: 18.3 Moderate: 26.2 Vigorous: N/A |
Dibben 2020‡ | GENEActiv Left wrist |
70.7 (SD=14.1) yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 16.7 Moderate: 43.6 Vigorous: N/A |
Dibben 2020‡ | GENEActiv Left wrist |
70.7 (SD=14.1) yr | do.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: 18.7 Moderate: 22.8 Vigorous: N/A |
Dibben 2020‡ | GENEActiv Hip |
70.7 (SD=14.1) yr | do.enmoa = TRUE do.enmo = FALSE acc.metric = "ENMOa" |
Light: 7.6 Moderate: 40.6 Vigorous: N/A |
Dibben 2020‡ | GENEActiv Hip |
70.7 (SD=14.1) yr | do.mad = TRUE do.enmo = FALSE acc.metric = "MAD" |
Light: 1 Moderate: 2.4 Vigorous: N/A |
*Cut-points derived from applying the Youden index on ROC
curves.
** Cut-points derived from increasing Sensitivity over Specificity for
light and vice versa for moderate on ROC curves (see paper for more
details).
† These publications used acceleration metrics that sum their
values per epoch rather than average them per epoch like GGIR does. So,
to use their cut-point in GGIR, we provide a scaled version of the
cut-points presented in the paper as:
(CutPointFromPaper_in_gmins/(sampleRateFromPaper * EpochLengthInSecondsPaper)) * 1000
‡ More cut-points excluding data on aided walking and washing
up activities can be found in the publication.
Sensor calibration
In all of the studies above, excluding Hildebrand et al. 2016, no effort was made to calibrate the acceleration sensors relative to gravitational acceleration prior to cut-point development. Theoretically this can be expected to cause a bias in the cut-point estimates proportional to the calibration error in each device, especially for cut-points based on acceleration metrics which rely on the assumption of accurate calibration such as metrics: ENMO, EN, ENMOa, and by that also metric SVMgs used by studies such as Esliger 2011, Phillips 2013, and Dibben 2020.
Idle sleep mode and ActiGraph
As discussed in the main package vignette, studies using the ActiGraph sensor often forget to clarify whether idle sleep mode was used and if so, how it was accounted for in the data processing.
How about all the criticism towards cut-point methods?
For a more elaborate reflection on the limitations of cut-points and a motivation why cut-points still have value in GGIR see: https://www.accelting.com/updates/why-does-ggir-facilitate-cut-points/