我正在尝试将在日记中找到的公式应用于数据集。
为快速给出公式的背景/上下文,将其应用于心率数据的时间序列。心率时间序列中的每个数据点代表30个收集的测量值的平均值。 R(k)的值用于催眠图中,并计算为:
其中每1分钟(从记录的第一分钟开始到最后一个记录结束)的离散时间定义为k,“ Hk + i前者”和“ Hk + i后者”是心率值从前30秒和后30秒的时间间隔(k + i)开始,i表示大小为2q的窗口内的移动(移动平均值)。 q是一个实验值,假设q = 5。
我知道公式中发生了什么,但是正在努力将这些数学应用于numpy数组。
答案 0 :(得分:0)
该公式表示在H_former
和H_latter
之间的绝对差上的移动平均线。
如果您不介意熊猫,请举一个例子:
import numpy as np
import pandas as pd
# H_diff = H_former - H_latter
H_diff = np.arange(10, dtype=int)
# H_diff = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
q = 2
# this line actually computes the MA
R = pd.Series(H_diff).abs().rolling(2*q+1, center=True).mean().values
# now R = array([nan, nan, 2., 3., 4., 5., 6., 7., nan, nan])
如果您只喜欢使用numpy,则此问题有一个示例:How to calculate moving average using NumPy?