2
我对R的MSE的计算有些疑问。计算MSE:为什么这两种方式给出不同的结果?
我试过两种不同的方法,我得到两个不同的结果。想知道哪一个是找到mse的正确方法。
第一:
model1 <- lm(data=d, x ~ y)
rmse_model1 <- mean((d - predict(model1))^2)
二:
mean(model1$residuals^2)
我对R的MSE的计算有些疑问。计算MSE:为什么这两种方式给出不同的结果?
我试过两种不同的方法,我得到两个不同的结果。想知道哪一个是找到mse的正确方法。
第一:
model1 <- lm(data=d, x ~ y)
rmse_model1 <- mean((d - predict(model1))^2)
二:
mean(model1$residuals^2)
原则,他们应该给你同样的结果。但在第一个选项中,您应该使用d$x
。如果您只是使用d
,,则回收规则中的R将重复predict(model1)
两次(因为d
有两列),计算也将涉及d$y
。
请注意,建议在第一个选项中包含na.rm = TRUE
到mean
和newdata = d
到predict
。这使得您的代码在您的数据中缺少值。另一方面你不需要担心NA
在第二个选项,因为lm
自动下降NA
个案。您可以查看此线程以了解此功能的潜在效果:Aligning Data frame with missing values。
谢谢!是的,它确实给出了相同的结果。 –