如何获取lme4包中glmer模型的整体Wald检验及似然比检验值与P值
从lme4的glmer模型获取Wald检验与似然比检验结果
首先先拟合你给出的二项式混合效应模型:
library(lme4) # 拟合目标模型 model <- glmer( credec ~ passexp + soctie + recexp + peer + soctie * recexp + (1 | region), data = data, family = binomial )
一、获取固定效应的整体Wald检验及P值
lme4包本身没有内置整体Wald检验的函数,需要借助car包的Anova()函数(注意是大写的Anova)来计算III型Wald卡方检验,这是混合模型中常用的固定效应检验方式:
- 先安装并加载car包(若未安装):
install.packages("car") library(car)
- 重要前提:在做III型检验前,建议设置效应编码对照,避免因默认处理对照导致结果偏差:
options(contrasts = c("contr.sum", "contr.poly"))
- 计算Wald检验:
# 输出每个固定效应项的Wald卡方值、自由度和P值 wald_results <- Anova(model, type = "III") print(wald_results)
输出结果中,每行对应一个固定效应项(包括交互项),Chisq是Wald卡方统计量,Pr(>Chisq)就是对应的P值。
如果需要对多个固定效应项做联合Wald检验(比如检验所有固定效应整体是否显著),可以用linearHypothesis()函数:
# 检验所有固定效应联合显著 joint_wald <- linearHypothesis(model, c("passexp = 0", "soctie = 0", "recexp = 0", "peer = 0", "soctie:recexp = 0")) print(joint_wald)
二、获取模型整体的似然比检验值
似然比检验通过比较全模型与零模型(仅包含随机效应的模型)的对数似然值来实现:
- 拟合零模型:
null_model <- glmer(credec ~ 1 + (1 | region), data = data, family = binomial)
- 用
anova()函数对比两个模型,得到似然比检验结果:
lr_test <- anova(null_model, model) print(lr_test)
输出结果里,Chisq就是似然比检验统计量,Pr(>Chisq)是对应的P值,Df是自由度差异。
内容的提问来源于stack exchange,提问作者ewqe dasdad
相关产品推荐
相关产品推荐

