给定两组简单的数据集:
head(training_set) x y 1 1 2.167512 2 2 4.684017 3 3 3.702477 4 4 9.417312 5 5 9.424831 6 6 13.090983 head(test_set) x y 1 1 2.068663 2 2 4.162103 3 3 5.080583 4 4 8.366680 5 5 8.344651
我想在训练数据上拟合一条线性回归线,并使用这条线(或其系数)来计算在测试数据上拟合后的“测试MSE”或残差的均方误差。
model = lm(y~x,data=training_set)train_MSE = mean(model$residuals^2)test_MSE = ?
回答:
在这种情况下,更准确的称呼是MSPE(均方预测误差):
mean((test_set$y - predict.lm(model, test_set)) ^ 2)
这是一个更有用的度量,因为所有模型的目标都是预测。我们希望得到一个MSPE最小的模型。
在实践中,如果我们确实有额外的测试数据集,我们可以像上面那样直接计算MSPE。然而,通常我们没有额外的数据。在统计学中,留一法交叉验证是从训练数据集中估计MSPE的一种方法。
还有其他几种用于评估预测误差的统计量,如Mallows统计量和AIC。