我有一个小数据,其中有3组(A,B,C),每组5名参与者.所有这些参与者在7个不同的考试中每一次都被测量了6次,所以每个参与者总共得到了6*7=42分.建立了一个简单的线性混合模型.使用anova(mylmm)和多重比较函数,我可以获得ANOVA结果和分组、考试以及它们之间的交互的后组两两比较.

但是,数据非常小(只有5名参与者),残差为mylmm是不正常的,因此效力不足.我知道稳健混合模型使用robustlmm,残差自举混合模型使用lmeresampler.然而,我无法使用这些方法进行方差分析和多重比较.有人能帮我回答以下问题吗?我真的很感激.

  1. 是否有方法和可用的R包来执行线性混合模型的Bootstrap ANOVA(和事后比较)?
  2. 是否仍有必要计算Bootstrap或非参数ANOVA的幂?如果是,如何计算功率?
  3. 我能够使用simr和ANOVA方法来计算测试小组、考试和lme模型对象的交互作用的能力.另外,simr是否也可以用来发现事后两两比较的力量,或者应该使用emmeans呢?谢谢

推荐答案

从统计上看,这略有些深.基于重采样的推理有两种基本方法:

  • bootstrapping(参数或非参数)模拟所需数量的采样分布,从中可以计算confidence intervals.(您还可以通过倒置置信度区间来计算双尾p值,其结果为prob_lt_0 = mean(bootsamp<0); p_val = 2*min(prob_lt_0, 1-prob_lt_0).)事后比较稍微复杂一些,因为它们不仅涉及比较测试,还涉及某种多重比较校正(Tukey等).
  • permutation tests模拟检验统计量在零假设下的抽样分布,得到p值.

ParametricBootstrapping是一种方便的重采样方法,特别是如果我们有复杂的分组 struct (空间/时间或交叉随机效应),这使得重采样独立组变得困难,或者如果我们正在判断GLMM,其中剩余Bootstrapping不起作用.然而,它假设模型是"正确的",这在这里失败了,因为您不想依赖条件分布的正态分布.

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

您可以进行置换测试,但您必须通过比较嵌套模型(例如,完整模型与没有Days效果的模型),一次一个项目地进行测试:

library(predictmeans)
fm0 <- update(fm1, . ~ . - Days)
p1 <- permlmer(fm0, fm1)
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

对于权力,我可能只会假设正态分布进行分析,然后将其视为略微乐观的估计;无论如何,权力分析总是猜测/近似.

另外,人们建议其他 Select (稳健的LMM、序数模型等)的部分原因是,这些都是一种麻烦.

R相关问答推荐

使用gggplot 2在R中重新调整面板和y轴文本大小

用黄土法确定区间

用相同方法得到不同函数的ROC最优截断值

如何在编辑列时更新可编辑数据表,并使用该表在Shiny中执行连续计算

使用ggsankey调整Sankey图中单个 node 上的标签

如何在ggplot图中找到第二轴的比例

如何使用ggplot对堆叠条形图进行嵌套排序?

如何将R中数据帧中的任何Nas替换为最后4个值

将重复项转换为NA

在GG图中绘制射线的自动程序

将选定的索引范围与阈值进行比较

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

多元正态分布的计算

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

我需要使用ggplot2制作堆叠条形图

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

位置_道奇在geom_point图中不躲避

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

将某个阈值以下的列中的值分类到不同的列中,否则保持该列的原样

通过分析特定列中的字符串在数据框中创建新的行和列