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

simr中powerCurve无错误但length效应成功率极低的排查咨询

使用simr进行功效分析时length效应功效异常的排查方案

问题背景

基于过往迫选任务实验数据(answer取值0/1,项目采用2×2拉丁方设计分配给被试),使用simr工具开展新实验的功效分析,拟合模型代码如下:

library("simr")

df1 <- read.csv("EnglishData.csv")
lm_4.2 <- glmer(answer~length*position + (1|participant) + (1|set), data = df1, family = binomial)

模拟被试数量增加时固定效应及交互项的功效,简化后的代码示例:

model_extended <- extend(lm_4.2, along="participant", n = 200) # 扩展至200名被试

# Length效应
p_curveLenght <- powerCurve(model_extended , test=fixed("lengths", "z"),  nsim = 10, along="participant", breaks = seq(from = 50, to = 200, by = 50))
summary(p_curveLenght )
print(p_curveLenght)
plot(p_curveLenght )

# Position效应
p_curvePos <- powerCurve(model_extended , test=fixed("positions", "z"),  nsim = 10, along="participant", breaks = seq(from = 50, to = 200, by = 50))
summary(p_curvePos)
print(p_curvePos)
plot(p_curvePos)

# 交互项
p_curveEX <- powerCurve(model_extended , test=fixed("lengths:positions", "z"),  nsim = 10, along="participant", breaks = seq(from = 50, to = 300, by = 50))
summary(p_curveEX)
print(p_curveEX)
plot(p_curveEX)

异常表现

length效应的模拟功效不升反降,即使被试数增至8000也无改善:

#FirstPredictor
> print(p_curveLenght)
Power for predictor 'lengths', (95% confidence interval),
by largest value of participant:
     50:  0.00% ( 0.00, 30.85) - 1542 rows
    100: 20.00% ( 2.52, 55.61) - 3084 rows
    150: 10.00% ( 0.25, 44.50) - 4626 rows
    200: 10.00% ( 0.25, 44.50) - 6168 rows

summary显示各断点成功率极低,但模型无错误或警告:

> summary(p_curveLenght)
  nrow nlevels successes trials mean       lower     upper
1 1542      50         0     10  0.0 0.000000000 0.3084971
2 3084     100         2     10  0.2 0.025210726 0.5560955
3 4626     150         1     10  0.1 0.002528579 0.4450161
4 6168     200         1     10  0.1 0.002528579 0.4450161

> p_curveLenght$errors
[1] stage   index   message
<0 rows> (or 0-length row.names)

> p_curveLenght$warnings
[1] stage   index   message
<0 rows> (or 0-length row.names)

position效应和交互项的模拟结果符合预期:

#Second Predictor
> p_curvePos
Power for predictor 'positions', (95% confidence interval),
by largest value of participant:
     50: 30.00% ( 6.67, 65.25) - 1542 rows
    100: 60.00% (26.24, 87.84) - 3084 rows
    150: 70.00% (34.75, 93.33) - 4626 rows
    200: 90.00% (55.50, 99.75) - 6168 rows

> print(p_curveEX)
Power for predictor 'lengths:positions', (95% confidence interval),
by largest value of participant:
     50: 30.00% ( 6.67, 65.25) - 1542 rows
    100: 60.00% (26.24, 87.84) - 3084 rows
    150: 80.00% (44.39, 97.48) - 4626 rows
    200: 90.00% (55.50, 99.75) - 6168 rows

排查与验证方案

一、length效应低成功率的排查步骤

  1. 核对变量名一致性

    • 模型公式中使用的是length,但powerCurve测试语句写的是fixed("lengths", "z"),运行colnames(df1)或levels(df1$length)确认变量真实名称,避免单数/复数拼写错误导致测试不存在的效应。
  2. 评估原模型中length效应的强度

    • 运行summary(lm_4.2),查看length的固定效应系数、标准误和p值:
      • 如果原数据中length效应本身极小(系数接近0,p值远大于0.05),说明该效应真实强度极弱,即使增加被试数也难以检测到显著结果。
      • 对比position和交互项的效应大小,确认length是否确实远弱于其他效应。
  3. 手动模拟单轮数据验证

    • 生成单轮模拟数据并手动拟合模型,观察length效应的表现:
      sim_data <- simulate(lm_4.2, nsim=1)[[1]]
      sim_model <- glmer(sim_data~length*position + (1|participant) + (1|set), data=df1, family=binomial)
      summary(sim_model)
      
    • 重复多次该操作,若length效应始终无法显著,说明原模型中的效应强度不足以支撑检测。
  4. 检查扩展数据集结构

    • 运行str(model_extended@frame)查看扩展后的数据,确认length变量的分布是否保持原数据的2×2拉丁方平衡设计。extend()默认复制原被试结构,若原数据中length分布不平衡,扩展后可能加剧该问题,导致效应难以检测。
  5. 调整模拟参数

    • 增加nsim数量(如增至100),减少随机波动对结果的影响(当前nsim=10的结果置信区间过宽,可靠性不足)。
    • 改用似然比检验test=fixed("length", "lr")代替z检验,Wald z检验在效应弱或样本结构特殊时可能不稳定。

二、验证模拟设置的正确性

  1. 确认extend参数逻辑

    • 运行length(unique(df1$participant))查看原模型的被试数,确认extend(lm_4.2, along="participant", n = 200)中的n是扩展后的总被试数,若原被试数已达200,该扩展操作无意义。
  2. 检查测试语句语法

    • 若length是二分类变量,测试语句可简化为fixed("length"),无需额外指定"z"参数;确认fixed()函数的参数是否符合simr的语法要求。
  3. 验证随机效应结构

    • 查看summary(lm_4.2)中set变量的随机效应方差,若该方差极大,可能掩盖length的固定效应,可考虑调整模型结构(如去掉(1|set)后重新模拟,看结果是否变化)。

三、判断是否为数据本身特性

若经过以上排查,变量名无错误、原模型中length效应确实极弱、手动模拟也无法得到显著结果,则这种低功效属于数据本身特性:即length对answer的影响过小,仅增加被试数无法有效提升检测效力。此时需重新设计实验(如增加每个被试完成的项目数),或评估该效应的研究价值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:34:52