【问题标题】:Is it normal that glmer returns no variance of intercept?glmer 不返回截距方差是否正常?
【发布时间】:2021-12-28 09:37:18
【问题描述】:

我正在尝试运行一个多层次模型,以说明一个国家/地区总统选举的投票可能嵌套在组内(取决于选民的母语、居住地等)。为此,我使用了lme4 包的glmer 函数。

m1<-glmer(vote_DPP ~ 1 + (1 | county_city), 
          family = binomial(link="logit"), data = d3)

在这里,我的vote 变量是二进制的,表示人们是否投票给给定的政党(1)或不投票(0)。由于我相信结果可能会根据人们的居住状态而变化,因此我希望允许拦截因州而异。但是,当我运行我的代码时,我看不到截距的变化。

Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: binomial  ( logit )
Formula: vote_DPP ~ 1 + (1 | county_city)
   Data: d3
      AIC       BIC    logLik  deviance  df.resid 
1746.7918 1757.2001 -871.3959 1742.7918      1343 
Random effects:
 Groups      Name        Std.Dev.
 county_city (Intercept) 0.2559  
Number of obs: 1345, groups:  county_city, 17
Fixed Effects:
(Intercept)  
     0.5937

让我感到困惑的是完全没有variance 列。我在网上看到其他论坛关于方差 = 0 的问题,但我似乎找不到任何关于这个专栏完全消失的信息(这让我觉得这可能是我错过的非常简单的事情)。第一次在这里发帖,并且是 R 和 Stats 的初学者,所以任何帮助将不胜感激:)

【问题讨论】:

  • summary(m1) 还为您提供方差(这只是平方标准差)。

标签: r lme4 multilevel-analysis


【解决方案1】:

如果您关心查看方差是否为零,这相当于查看标准偏差是否为零(类似于“is (std dev/variance) small, 尽管在这种情况下它们将在不同的尺度上” )。此外,如果 std dev/variance 为零或接近于零,您也应该收到“singular fit”消息。

@Roland 的评论是正确的,summary() 默认会打印标准差和方差。您也可以通过指定ranef.comp(随机效应分量)参数在print() 的输出中要求两者(或其中之一):

library(lme4)
gm1 <- glmer(incidence/size ~ period + (1|herd),
      data = cbpp,
      weight = size,
      family = binomial)
print(gm1, ranef.comp = c("Std.Dev.", "Variance"))
## ...
## Random effects:
##  Groups Name        Std.Dev. Variance
##  herd   (Intercept) 0.6421   0.4123  
## ...

(您可以类似地修改摘要打印输出中显示的组件:例如,如果您只想查看差异,则可以指定print(summary(gm1), ranef.comp = c("Variance"))。)

关于更多上下文:标准差和方差本质上是冗余信息(随机效应估计的标准误差没有显示,因为在这种情况下它们可能是不确定性的不可靠估计)。哪种形式更有用取决于应用:标准偏差更容易与相应的固定效应进行比较,方差有时可用于得出关于跨效应分配方差的结论(尽管这样做比经典的线性、平衡方差分析案例)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多