滚动线性回归

时间:2015-09-02 12:27:38

标签: python pandas scipy

我需要一次对X个时段执行滚动线性回归。我有以下pandas数据帧:

   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行滚动窗口。

1 个答案:

答案 0 :(得分:0)

线性回归需要计算五个和:Xi,Xi²,Yi,Yi²,Xi.Yi。您可以滚动窗口方式更新这些内容,添加新点并扣除旧点。

这适用于不超过机器表示精度的整数。否则,您需要不时地重新启动以减少错误累积。