我想执行残差分析,并且我知道残差等于观测值减去预测值。但是我不知道我应该从训练集还是测试集计算残差?
我应该使用这个:
import statsmodels.api as sm
# Making predictions
lm = sm.OLS(y_train,X_train).fit()
y_pred = lm.predict(X_train)
resid = y_train - y_pred.to_frame('price')
或者这个:
import statsmodels.api as sm
# Making predictions
lm = sm.OLS(y_train,X_train).fit()
y_pred = lm.predict(X_test)
resid = y_test- y_pred.to_frame('price')
答案 0 :(得分:2)
应根据测试集y_test
的实际值(预期结果)和拟合X_test
的模型的预测值来计算残余误差。将模型拟合到训练集,然后在测试集上测试其准确性。这就是我直观地看到的样子,主要原因是首先将两个数据集正式称为train
(用于训练),然后再称为测试(test
)。
具体来说,使用第二种情况
resid = y_test- y_pred.to_frame('price')