计算训练集或测试集的残差值

问题描述 投票:0回答:2

我想进行残差分析,并且我知道残差等于观测值减去预测值。但我不知道我应该计算训练集还是测试集的残差?

我应该使用这个吗:

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')
python machine-learning linear-regression
2个回答
2
投票

残差应根据测试集

y_test
的实际值(预期结果)和
X_test
拟合模型的预测值来计算。将模型拟合到训练集,然后在测试集上测试其准确性。这就是我直观地看到的,主要原因是首先将两个数据集正式称为
train
(用于训练),然后用于测试(
test
)。

具体使用第二种情况

resid = y_test- y_pred.to_frame('price')

0
投票

在我看来,接受的答案相当具有误导性。当您想要对模型执行残差分析以检查模型假设的有效性时,应该对训练数据执行残差分析,因为您的模型适合训练数据。

对测试集或训练集进行残差分析并不重要,因为它们通常来自同一群体。但是,大多数时候,模型相对于测试数据的残差误差不会具有非零均值。这可能是由于分布、趋势等差异造成的。 因此,第一步是查看模型是否很好地拟合训练数据(通过根据训练数据检查模型的假设)。 然后,第二步是查看模型是否能够很好地推广到未见过的数据(通过针对测试数据进行测试)。

© www.soinside.com 2019 - 2024. All rights reserved.