R - 混合效应模型中的均方根误差

时间:2012-11-30 13:56:24

标签: r

当你执行混合效果模型时,能告诉我如何获得/计算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 

2 个答案:

答案 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)