从一个训练集和一个测试集中给定一个训练模型,计算Test MSE



给定两组简单数据:

 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。

最新更新