sho-87/sensormotion

Question about step regularity

vanessabin opened this issue · 1 comments

Hey,
I'm using your package right now to generate features for a dataset.
I have looked at the paper by Moe Nilssen et al. and tried to follow the steps for calculating step and stride regularity. However, I wonder why you still do the following calculation at the end:

step_reg = ac_d1 / ac_lag0
stride_reg = ac_d2 / ac_lag0

Can you help me with this?

@vanessabin it is mostly to help with comparison between devices and signal types.

If you calculate cross-correlation using xcorr(x, y, scale="coeff") then division by ac_lag0 wouldn't do anything as the data is already normalized. However, the other scale methods are not normalized and can't be directly compared.

Imagine one device that measures acceleration and another device that measures linear acceleration. The ac_d1 values for each device, for example, would be measuring different things and on different metrics (as one signal includes gravity, while the other doesn't). These values can't be directly compared against each other without first dividing each by their own "baseline" values to put them on a common metric

If you're looking to replicate the exact regularity values as calculated by Moe-Nilssen, then you could simply multiply the regularity values by the zero-lag autocorrelation peak value (ac_lag0) to reverse the process