首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从glmer摘要中提取缩放残差

如何从glmer摘要中提取缩放残差
EN

Stack Overflow用户
提问于 2019-09-18 04:58:47
回答 1查看 1.3K关注 0票数 2

我正在尝试编写一个.csv文件,以附加来自glmer分析摘要的重要信息(来自包lme4)。

我已经能够分离系数、AIC和随机效果,但我无法分离缩放后的残差(Min、1Q、Median、3Q、Max)。

我尝试过使用$residuals,但我得到了一个非常长的输出,而不是摘要中显示的信息。

代码语言:javascript
复制
> library(lme4)
> setwd("C:/Users/Arthur Scully/Dropbox/! ! ! ! PHD/Chapter 2 Lynx Bobcat BC/ResourceSelection")
> #simple vectors
> 
> x <- c("a","b","b","b","b","d","b","c","c","a")
> 
> y <- c(1,1,0,1,0,1,1,1,1,0)
>  
> 
> # Simple data frame
> 
> aes.samp <- data.frame(x,y)
> aes.samp
   x y
1  a 1
2  b 1
3  b 0
4  b 1
5  b 0
6  d 1
7  b 1
8  c 1
9  c 1
10 a 0
> 
> # Simple glmer
> 
> aes.glmer <- glmer(y~(1|x),aes.samp,family ="binomial")
boundary (singular) fit: see ?isSingular
> 
> summary(aes.glmer)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: binomial  ( logit )
Formula: y ~ (1 | x)
   Data: aes.samp

     AIC      BIC   logLik deviance df.resid 
    16.2     16.8     -6.1     12.2        8 

我可以使用呼叫摘要(aes.glmer)$AIC来隔离上面的信息

代码语言:javascript
复制
Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-1.5275 -0.9820  0.6546  0.6546  0.6546 

我不知道隔离上述信息的调用

代码语言:javascript
复制
Random effects:
 Groups Name        Variance Std.Dev.
 x      (Intercept) 0        0       
Number of obs: 10, groups:  x, 4

我可以使用ranef函数来隔离这些信息

代码语言:javascript
复制
Fixed effects:
            Estimate Std. Error z value Pr(>|z|)
(Intercept)   0.8473     0.6901   1.228     0.22

我可以使用摘要(aes.glmer)$coefficient来隔离上面的信息

代码语言:javascript
复制
convergence code: 0
boundary (singular) fit: see ?isSingular
> 
> #Pull important
> ##write call to select important output
> aes.glmer.coef <- summary(aes.glmer)$coefficient
> aes.glmer.AIC <- summary(aes.glmer)$AIC
> aes.glmer.ran <-ranef(aes.glmer)
> 
> ##
> data.frame(c(aes.glmer.coef, aes.glmer.AIC, aes.glmer.ran))
  X0.847297859077025 X0.690065555425105 X1.22785125618255 X0.219502810378876      AIC      BIC    logLik deviance df.resid X.Intercept.
a          0.8472979          0.6900656          1.227851          0.2195028 16.21729 16.82246 -6.108643 12.21729        8            0
b          0.8472979          0.6900656          1.227851          0.2195028 16.21729 16.82246 -6.108643 12.21729        8            0
c          0.8472979          0.6900656          1.227851          0.2195028 16.21729 16.82246 -6.108643 12.21729        8            0
d          0.8472979          0.6900656          1.227851          0.2195028 16.21729 16.82246 -6.108643 12.21729        8            0

如果有人知道我可以使用什么调用来隔离“缩放残差”,我将非常高兴。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 17:42:41

我没有您的数据,所以我们将使用lme4 vignette中的示例数据。

代码语言:javascript
复制
library(lme4)
library(lattice)
library(broom)

gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
             data = cbpp, family = binomial)

这是用于残差的。broom包中的tidy将其放入tibble,然后您可以将其导出为csv。

代码语言:javascript
复制
x <- tidy(quantile(residuals(gm1, "pearson", scaled = TRUE)))
x

# A tibble: 5 x 2
  names      x
  <chr>  <dbl>
1 0%    -2.38 
2 25%   -0.789
3 50%   -0.203
4 75%    0.514
5 100%   2.88 

这里还有一些您可能会发现有用的其他代码,使用broom中的glance

代码语言:javascript
复制
y <- glance(gm1)
y

# A tibble: 1 x 6
  sigma logLik   AIC   BIC deviance df.residual
  <dbl>  <dbl> <dbl> <dbl>    <dbl>       <int>
1     1  -92.0  194.  204.     73.5          51

代码语言:javascript
复制
z <- tidy(gm1)
z

# A tibble: 5 x 6
  term                estimate std.error statistic  p.value group
  <chr>                  <dbl>     <dbl>     <dbl>    <dbl> <chr>
1 (Intercept)           -1.40      0.231     -6.05  1.47e-9 fixed
2 period2               -0.992     0.303     -3.27  1.07e-3 fixed
3 period3               -1.13      0.323     -3.49  4.74e-4 fixed
4 period4               -1.58      0.422     -3.74  1.82e-4 fixed
5 sd_(Intercept).herd    0.642    NA         NA    NA       herd 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57981995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档