首页 > 解决方案 > 如何在 Python 中计算信号的日间稳定性?

问题描述

我正在尝试将每日稳定性计算为 Python 中机器学习分类的一项功能。我的数据是多天的 - 我正在使用这个数据集示例 CSV)。该数据以分钟的频率进行采样,即我们每小时进行 60 次测量。公式为: 在此处输入图像描述

所以我的做法是:

def interdaily_stability(df: pd.DataFrame) -> float:
    X_mean = df["activity"].mean()

    hourly_means = df.resample("H", on="timestamp").mean()["activity"].values
    p = len(hourly_means)

    numerator = (1/p) * np.sum(np.square((hourly_means - X_mean)))
    denominator = df["activity"].var()

    return numerator / denominator
  1. 这个公式对吗?特别是p对吗?
  2. 特别是,我是否在计算这个权利好几天?如果没有,我该如何纠正?

我知道pyActigraphy存在,但是对于我的情况,那里的实现似乎不正确,例如,数据首先用 重新采样.resample("1H").sum(),然后按小时、分钟和秒分组(我什至没有这样的分辨率)。

我还尝试nparACT在 R 中翻译库中的代码,但我对 R 的了解不够:nparACT implementation

标签: pythonpandasdataframetime-seriessignal-processing

解决方案


推荐阅读