2017-04-02 79 views
2

我對R的MSE的計算有些疑問。計算MSE:爲什麼這兩種方式給出不同的結果?

我試過兩種不同的方法,我得到兩個不同的結果。想知道哪一個是找到mse的正確方法。

第一:

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

二:

mean(model1$residuals^2) 
+0

謝謝!是的,它確實給出了相同的結果。 –

回答

3

原則,他們應該給你同樣的結果。但在第一個選項中,您應該使用d$x。如果您只是使用d,,則回收規則中的R將重複predict(model1)兩次(因爲d有兩列),計算也將涉及d$y

請注意,建議在第一個選項中包含na.rm = TRUEmeannewdata = dpredict。這使得您的代碼在您的數據中缺少值。另一方面你不需要擔心NA在第二個選項,因爲lm自動下降NA個案。您可以查看此線程以瞭解此功能的潛在效果:Aligning Data frame with missing values

相關問題