我有一个下面的代码来计算趋势线和趋势偏差(感谢用户
Ivan Libedinsky的帮助!)。但是,我不想使用整个样本,而是要使用扩展的窗口回归来计算趋势线-例如,对于2001年,我要基于2000和2001年的数据来计算趋势,对于2002年,我要根据2000-2002数据,依此类推。
我知道Python具有可用于基本算术运算的扩展窗口函数(扩展了窗口求和,均值,中位数等),但是我不确定它是否适用于我的回归。
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
a = {'year':[2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015],'y_true':[0,-0.174,-0.131,0.127,0.566,0.723,0.675,1.171,2.338,2.625,3.746,3.612,4.729,8.156,16.330,27.584]}
df = pd.DataFrame(a)
x = np.array(df['year']).reshape(-1,1)
y_true = df['y_true']
linear_reg = LinearRegression().fit(x,y_true)
y_pred = linear_reg.predict(x)
df['y_pred'] = y_pred
df['difference'] = y_true - y_pred
print(df)