You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何获取嵌套随机效应混合效应模型的R²与F值

lmer嵌套随机效应模型获取R²与F-ratio的方法

首先提醒:你当前拟合的模型存在奇异拟合问题,输出中level:time和time两个层级的随机效应方差都为0,说明这两个嵌套分组在当前数据下没有解释任何组间变异,后续结果解读需要注意这个前提。

计算R²

混合效应模型不存在普通最小二乘回归那样的唯一R²,目前领域内通用的是Nakagawa提出的两类R²:

  • 边际R²(R²m):仅固定效应部分解释的方差占总方差的比例
  • 条件R²(R²c):固定效应+所有随机效应共同解释的方差占总方差的比例

直接调用MuMIn包的r.squaredGLMM()函数即可快速计算,代码如下:

# 安装并加载包
install.packages("MuMIn")
library(MuMIn)
# 输出两类R²结果
r.squaredGLMM(mod)

返回结果中R2m对应边际R²,R2c对应条件R²。由于你当前模型随机效应方差为0,两个值会完全相等。
如果不想依赖第三方包,也可以手动从VarCorr(mod)中提取各随机效应方差、残差方差,结合固定效应的方差按定义手动计算。

计算F-ratio

你拟合模型时已经加载了lmerTest包(从summary输出的Satterthwaite t检验可以判断),直接用包内置的anova()函数就能输出F检验结果:

# 输出各固定效应项的F检验结果
anova(mod)

运行后会返回III型方差分析表,直接给出每个预测项的自由度、平方和、F值、对应p值,自由度计算默认用和summary一致的Satterthwaite近似法。
如果需要整个固定效应部分整体的F值,可以拟合仅含截距和相同随机效应结构的零模型,再和原模型比较即可:

# 拟合零模型
mod_null <- lmer(x1 ~ 1 + (1|time/level), data = df)
# 模型比较得到整体F值
anova(mod, mod_null)

补充说明:因为你当前模型是奇异拟合,随机效应方差为0,最终得到的R²和F值和直接用普通线性模型lm(x1 ~ x2 + I(x2^2), data = df)算出来的结果几乎没有差异。

内容的提问来源于stack exchange,提问作者Rspacer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:27:16