如何使用滚动线性回归创建数据框

时间:2020-04-29 23:10:13

标签: python pandas scikit-learn

我想使用3窗口框架滚动对数据帧执行滚动线性回归,如下所示:

enter image description here

from sklearn.linear_model import LinearRegression

lm1 = LinearRegression()

x = np.asanyarray(df[['YEAR']])
y = np.asanyarray(df[['SALES']])

x_for_year6 = x[2:5] # data shown in red on the screenshot
y_for_year6  = y[2:5] # data shown in red on the screenshot

lm1.fit(x_for_year6 , y_for_year6 ) # Creates trend line

y_hat_year6= lm1.predict(x[5:6]) # Prediction for year 6

我对第一年(第6年)有了预测,但是在预测了第6年之后,我需要使用最后3个数据点(包括刚刚预测的数据点)创建新的回归线并预测下一年。我认为如果使用滚动可以实现,但是我没有成功。

编辑:我尝试使用jorijnsmit推荐的以下代码,

df['SALES'].rolling(3).apply(lm1.predict) 

但是出现以下错误:

Reshape your data either using array.reshape(-1, 1)

有没有一种方法可以解决将错误转换为numpy数组的错误?因为我想将其应用于数据框

0 个答案:

没有答案