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

使用R的powerSim函数计算LMM固定效应功效时出错的排查

问题

我构建了一个包含2个分类固定因子(ffactor1、ffactor2)、1个随机因子(id)以及无关协变量(baseline)的线性混合模型(LMM),尝试使用R的powerSim函数估计功效,重点关注ffactor2且希望采用自助法(bootstrapping)。

运行代码:

mymodel <- lmer(Y ~ baseline + ffactor1*ffactor2 + (1|id), data=data)
p <- powerSim(mymodel, nsim=50, test = fixed(xname="ffactor2",method = "pb"))
p

得到结果:

Power for predictor 'ffactor2', (95% confidence interval):
       0.00% ( 0.00,  7.11)

Test: Parametric bootstrap (package pbkrtest)

Based on 50 simulations, (0 warnings, 50 errors)
alpha = 0.05, nrow = NA

Time elapsed: 0 h 0 m 0 s

注:结果可能为观测功效计算值

请问我哪里操作有误?


问题排查与修正建议

从结果里的50 errors可以看出,模拟过程完全失败,以下是核心问题和解决方向:

  • 模型设定与检验对象不匹配
    你的模型包含ffactor1*ffactor2交互项,此时ffactor2的主效应是ffactor1处于参考水平下的效应,但pbkrtest的fixed()检验默认是检验该因子的整体联合效应。如果ffactor2是多分类,或交互项存在时主效应的检验逻辑不明确,会导致bootstrap过程报错。可以尝试显式指定联合检验:test = fixed(xname="ffactor2", method="pb", type="joint");如果关注特定水平对比,需用contrasts参数定义具体对比项。

  • powerSim使用前提不满足
    simr包的powerSim需要基于拟合正常的有效应模型模拟数据:

    1. 先检查summary(mymodel)的输出,确认随机效应方差不为0(若为0,模型会退化为固定效应模型,不适合用混合模型的功效分析);
    2. nrow = NA说明函数无法识别原始数据样本量,大概率是data存在缺失值,或模型拟合本身有问题(比如完全分离、共线性),需先清理数据并重新拟合模型。
  • bootstrap检验参数设置问题
    pb方法依赖pbkrtest包,需确保包版本兼容,且bootstrap迭代次数足够。可以在fixed()中增加B=1000参数指定bootstrap次数,同时更新lme4、pbkrtest、simr到最新版本。

  • 模拟次数与样本量不足
    nsim=50的模拟次数太少,不仅功效估计精度极差,还容易出现全失败情况,建议至少设置nsim=200;若原始数据样本量过小,bootstrap检验稳定性会大幅下降,也会导致模拟报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:50:07