执行线性混合模型方差分析和功效计算的非参数方法

DrX*_*DrX 3 r resampling anova random-effects mixed-models

我有一个小数据,其中有 3 组(A、B、C),每组有 5 名参与者。所有这些参与者在 7 项不同的考试中每项都被测量 6 次,因此每个参与者总共得到 6*7=42 分。建立了简单的线性混合模型mylmm<-lmer(score ~1+group+exam+group*exam+(1|participant), data = mydata)anova(mylmm)我可以使用多重比较函数获得分组、考试及其交互的方差分析结果和事后成对比较。

但数据量很小(只有5个参与者),残差mylmm也不正常,所以威力不足。我知道使用稳健的混合模型robustlmm和使用残差引导混合模型lmeresampler。但是,我无法使用这些方法进行方差分析和多重比较。有人可以帮我解决以下问题吗?真的很感激。

  1. 是否有方法和可用的 R 包来执行线性混合模型的引导方差分析(和事后比较)?
  2. 是否还需要计算引导程序或非参数方差分析的功效?如果可以的话,功率怎么计算呢?
  3. 我能够使用simranova 方法来计算测试组、考试和模型对象交互的功效lme。另外,simr还可以用于查找事后成对比较的功效还是emmeans应该使用?谢谢

Ben*_*ker 5

这在统计上有点深奥。基于重采样的推理有两种基本方法:

  • 自举(参数或非参数)模拟所需数量的采样分布,您可以从中计算置信区间。(您还可以通过反转置信区间来计算双尾 p 值,结果为prob_lt_0 = mean(bootsamp<0); p_val = 2*min(prob_lt_0, 1-prob_lt_0)。)事后比较稍微复杂一些,因为它们不仅涉及比较测试,还涉及某种多重比较校正(图基等)
  • 排列检验模拟原假设下检验统计量的抽样分布,从中我们可以得到p值。

参数自举是一种方便的重采样方法,特别是如果我们有复杂的分组结构(空间/时间或交叉随机效应),这使得对独立组进行重采样变得困难,或者如果我们正在评估残差自举不起作用的 GLMM。但是,它假设模型是“正确的”,这在这里失败,因为您不想依赖条件分布的正态性。

library(lmerTest)
library(lmeresampler)

ss <- transform(sleepstudy, oddsub = factor((as.numeric(Subject) %% 2 == 1)))
fm1 <- lmer(Reaction ~ Days + oddsub + (Days | Subject), ss)

set.seed(101)
boot1 <- reb_bootstrap(fm1,
                       .f = fixef,
                       B = 1000,
                       reb_type = 2)

## not sure why reb_bootstrap seems to ignore the .f specification?
## but we get something useful anyway

confint(boot1, type = "perc")
## 1 beta1   253.   232.    273.  perc   0.95
## 2 beta2    10.5    7.24   13.5 perc   0.95
## 3 beta3    -3.56 -32.3    26.0 perc   0.95

 
pval <- function(x) { plt0 <- mean(x<0); 2*min(plt0, 1-plt0) }
apply(boot1$replicates[,1:3], 2, pval)
## beta1 beta2 beta3 
## 0.000 0.000 0.802
Run Code Online (Sandbox Code Playgroud)

Days您可以进行排列测试,但必须通过比较嵌套模型(例如,完整模型与没有 影响的模型)一次进行一项测试:

library(predictmeans)
fm0 <- update(fm1, . ~ . - Days)
p1 <- permlmer(fm0, fm1)
Run Code Online (Sandbox Code Playgroud)
Data: ss
Models:
lmer0: Reaction ~ oddsub + (Days | Subject)
lmer1: Reaction ~ Days + oddsub + (Days | Subject)
      npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq) Perm-p
lmer0    6 1787.4 1806.6 -887.70   1775.4                            
lmer1    7 1765.9 1788.2 -875.94   1751.9 23.537  1 1.2256e-06  0.003
Run Code Online (Sandbox Code Playgroud)

对于功效,我可能会在假设正态性的情况下进行分析,然后将其视为稍微乐观的估计;无论如何,功率分析始终是猜测/近似值。

PS 人们建议其他选择(稳健的 LMM、序数模型等)的部分原因是这些有点麻烦。