r - SIMR 包 - 当等效的 powerSim 函数不执行时,powerCurve 函数会抛出错误

标签 r

我正在尝试对拨款申请进行样本量计算。我们想要运行一个简单的混合效应模型,用于重复测量回归检查两组(治疗组与安慰剂组)7 天内连续变量的变化。在 lme4该模型,在每组 7 名参与者的试验数据上运行,返回以下输出

modFull <- lmer(formula = score ~ day*group + (1|id),
                data = longFull)

modFull

# relevant output
Fixed Effects:
     (Intercept)               day      groupplacebo  day:groupplacebo  
         16.0296           -0.7541            1.6035           -0.5561

我想插入交互系数的研究 day:groupplacebo ,基于 0.63 的组间每天变化率的差异。我通过 fixef(foo) <- 做到了这一点功能。

fixef(modFull)["day:groupplacebo"] <- 0.63

现在我们来看固定效应

fixef(modFull)

(Intercept)              day     groupplacebo day:groupplacebo 
  16.0295999       -0.7540535        1.6035141        0.6300000 

原来的交互效果已经换成了想要的交互效果

遵循 simr 小插图和 here 中的建议,为了获得功率估计交互的效果,我使用了 fcompare像这样的功能(将完整模型与仅具有主要效果的模型进行比较,从而测试交互项)

powerSim(modFull, fcompare(~ day + group))

得到如下输出

Power for model comparison, (95% confidence interval):==============================================|
      27.80% (25.04, 30.69)

Test: Likelihood ratio
      Comparison to ~day + group + [re]

Based on 1000 simulations, (0 warnings, 0 errors)
alpha = 0.05, nrow = 98

显然我需要比 14 名参与者给我的 27.8% 更多的权力,所以我使用 extend()像这样的函数,这次是针对具有相同效果大小但假设样本大小为每组 40 个(总共 80 个)的相同模型

modFullExt <- extend(modFull, along="id", n=80) 
powerSim(modFullExt, fcompare(~ day + group))

# output
    Power for model comparison, (95% confidence interval):==============================================|
      87.20% (84.97, 89.21)

Test: Likelihood ratio
      Comparison to ~day + group + [re]

Based on 1000 simulations, (0 warnings, 0 errors)
alpha = 0.05, nrow = 560

到目前为止,一切都很好。我的问题是我想使用 powerCurve() 获得功率曲线功能。但是当我尝试的时候

powerCurve(modFullExt, test = fcompare(~ day + group))

出现以下错误

Error in getDefaultXname(fit) : 
  Couldn't automatically determine a default fixed effect for this model.

现在 为什么 powerSim() 的语法不翻译成 powerCurve() ?

我应该注意以下 powerSim()句法

powerSim(modFull, fixed("day:groupplacebo", method = "z"))

返回与 powerSim(modFullExt, fcompare(~ day + group)) 相同的结果但是当我尝试

powerCurve(modFullExt, test = fixed("day:groupplacebo", "z"))

它返回了同样的错误。

非常感谢任何帮助。

最佳答案

此错误消息可能是由于 powerCurve 尝试使用 along 的默认参数,即 getDefaultXname(fit)。如果您为 along 包含显式参数(在功效分析中水平数量会发生变化的变量,例如受试者数量),您的代码应该会按预期运行:

powerCurve(modFullExt, test = fcompare(~ day + group), along = "id")

关于r - SIMR 包 - 当等效的 powerSim 函数不执行时,powerCurve 函数会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68840469/

相关文章:

R 没有列出文件夹中的所有文件

r - "update by reference"vs 浅拷贝

r - 协方差矩阵和相关矩阵之间的转换

r - 如何使用 odbc 执行 "Select * from"查询

r - 使用 sf 快速制作 SpatialPointsDataFrame

r - 如何更有效地重新格式化 R 中的 xts 数据?

按组多次重新排列列并将结果放入新列中

r - R 中按字符串格式过滤

删除r中另一列中具有相同id但不同值的行

r - 在 R 中使用行名和列名获取值?