R - 给定训练集和测试集中的已训练模型,计算测试MSE

10

考虑到两个简单的数据集:

 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 = ?
1个回答

14
在这种情况下,更准确的称呼是均方预测误差(MSPE)
mean((test_set$y - predict.lm(model, test_set)) ^ 2)

这是一项更有用的度量标准,因为所有模型都旨在进行预测。我们希望拥有一个最小MSPE的模型。

实际上,如果我们有一个备用测试数据集,我们可以直接计算如上所述的MSPE。然而,很多时候我们没有备用数据。在统计学中,留一法交叉验证 是从训练数据集估计MSPE的一种方法。

还有其他几个用于评估预测误差的统计量,如Mallows's statisticAIC


“+1” 但是关于 APSE 的意义是什么?我从未听说过它(虽然我可以猜到为什么称其为平均而不是均值)。 - catastrophic-failure
MSPE类似于残差平方的均值吗? - Jebathon
@李哲源,你能给我指出一个参考资料吗?其中解释了如何计算MSPE的期望值。 - Valerio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接