计算MSE:为什么这两种方式会产生不同的结果?

时间:2017-04-02 02:44:16

标签: r regression data-mining linear-regression

我对R中MSE的计算有一些疑问。

我尝试了两种不同的方法,但我得到了两种不同的结果。想知道哪一个是找到mse的正确方法。

首先:

model1 <- lm(data=d, x ~ y)
rmse_model1 <- mean((d - predict(model1))^2)

第二

mean(model1$residuals^2)

1 个答案:

答案 0 :(得分:3)

原则上,他们应该给你相同的结果。但在第一个选项中,您应该使用d$x。如果您只使用d,则R中的回收规则将重复predict(model1)两次(因为d有两列)并且计算也将涉及{{1} }。

请注意,建议在第一个选项中将d$y添加到na.rm = TRUE,将mean添加到newdata = d。这使您的代码对数据中的缺失值具有鲁棒性。另一方面,您不必担心第二个选项中的predict,因为NA会自动删除lm个案例。您可以查看此主题以了解此功能的潜在影响:Aligning Data frame with missing values