我需要一次对X个周期执行滚动线性回归。我有以下熊猫数据框架:
value
0 4354
1 7564
2 657
3 7876
我可以使用scipy对整个数据帧执行线性回归,如下所示:
from scipy import stats
slope, intercept, r_value, p_value, std_err = stats.linregress(df.index, df['value'])
然后为了得到线性回归线,我这样做:
df['linreg'] = intercept + slope * df.index
但我一直不知道如何做滚动线性回归,例如20行滚动窗口。
发布于 2015-09-02 12:34:26
线性回归需要计算五个和: Xi,Xi²,Yi,Yi²,Xi.Yi。你可以以滚动窗口的方式更新它们,添加新的点并扣除旧的点。
这对于不超过机器表示精度的整数非常有效。否则,您需要时不时地重新启动,以减少错误的累积。
https://stackoverflow.com/questions/32353156
复制