当你执行混合效果模型时,能告诉我如何获得/计算R中的RMSE值(均方根误差)
Data: na.omit(binh)
AIC BIC logLik
888.6144 915.1201 -436.3072
Random effects:
Formula: ~1 | Study
(Intercept) Residual
StdDev: 3.304345 1.361858
Fixed effects: Eeff ~ ADF + CP + DE + ADF2 + DE2
Value Std.Error DF t-value p-value
(Intercept) -0.66390 18.870908 158 -0.035181 0.9720
ADF 1.16693 0.424561 158 2.748556 0.0067
CP 0.25723 0.097524 158 2.637575 0.0092
DE -36.09593 12.031791 158 -3.000046 0.0031
ADF2 -0.03708 0.011014 158 -3.366625 0.0010
DE2 4.77918 1.932924 158 2.472513 0.0145
Correlation:
(Intr) ADF CP DE ADF2
ADF -0.107
CP -0.032 0.070
DE 0.978 -0.291 -0.043
ADF2 0.058 -0.982 -0.045 0.250
DE2 -0.978 0.308 0.039 -0.997 -0.265
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-2.28168116 -0.45260885 0.06528363 0.57071734 2.54144168
Number of Observations: 209
Number of Groups: 46
答案 0 :(得分:14)
您没有详细说明您用于制作模型的功能,但他们倾向于使用相同的名称存储其残差,您可以使用str()
检查,并且可以从残差中轻松计算RMSE :
#make a model
library(nlme)
r <- lme(conc ~ age, data=IGF)
#get the RMSE
r.rmse <- sqrt(mean(r$residuals^2))
在下面的评论中,Ben Bolker指出模型拟合函数生成的对象应该有一个残差方法,这样就可以做到这一点(尽管某些类型的模型可能会返回已经转换的残差):
r.rmse <- sqrt(mean(residuals(r)^2))
答案 1 :(得分:0)
同样的结果可以从:
library(nlme)
library(sjstats)
fit <- lmer(Yield ~ Species + (1|Population/variety), data = df1,REML=T)
rmse(fit)