重复测量方差分析、方差分析和线性混合效应模型之间的差异

机器算法验证 方差分析 混合模式 重复测量 线性模型 安乔娃
2022-04-03 09:04:54

分析这些数据的最佳方法是什么:

受试者分为两个“组”(治疗 A 和 B)。

“体重”记录在治疗前和治疗后3个月。

结果变量:体重减轻百分比

主要问题是:whether there is any difference between 2 treatments in terms of percent reduction in weight?

以下哪一项适合于此(或它们会给出相同的结果)?

  1. 重复测量方差分析(以“体重”作为结果,[“组”、“时间”] 作为内部因素并针对“主题”进行调整)。但是我们可以在这里使用“重量减少百分比”吗?

  2. ANCOVA(以“体重减轻百分比”作为结果,“组”作为间因子,“基线体重”作为协变量)

  3. 线性混合效应方法,以“权重”为结果,[组、时间、组*时间]为固定效应,[主题]为随机效应。同样,我们可以在这里使用“重量减少百分比”吗?

  4. 具有交互作用的线性模型:“重量减少百分比”~“组”*“基线重量”

编辑:如评论中所问,添加的信息是关于 N。每组中有 100 名受试者使用随机化。

1个回答

首先是使用百分比变化作为结果是否可以的问题。在以基线作为回归量的回归模型中,这是一个非常糟糕的主意,因为结果在数学上与回归量耦合,这将导致实际不存在的相关性(即统计上显着的关联)(或掩盖实际变化)。这很容易通过模拟显示:

我们模拟 2 组,每组 100 组,在第一个实例中,任何一组中的基线都没有变化:

set.seed(15)
N <- 200
x1 <- rnorm(N, 50, 10)
trt <- c(rep(0, N/2), rep(1, N/2))  # allocate to 2 groups
x2 <- rnorm(N, 50, 10)   # no change from baseline

所以我们希望找不到任何感兴趣的东西:

summary(lm(x2 ~ x1 * trt))

Coefficients:
Estimate Std. Error t value Pr(>|t|)    
(Intercept) 45.75024    5.37505   8.512 4.43e-15 ***
x1           0.06776    0.10342   0.655    0.513    
trt          3.25135    7.12887   0.456    0.649    
x1:trt      -0.01689    0.13942  -0.121    0.904

正如预期的那样。但是现在我们创建一个百分比变化变量并将其用作结果:

pct.change <- 100*(x2 - x1)/x1
summary(lm(pct.change ~ x1 * trt))

Coefficients:
Estimate Std. Error t value Pr(>|t|)    
(Intercept)  97.5339    12.7814   7.631 9.93e-13 ***
x1           -1.9096     0.2459  -7.765 4.44e-13 ***
trt          45.1394    16.9519   2.663  0.00839 ** 
x1:trt       -0.7662     0.3315  -2.311  0.02188 *  

一切都很重要!因此,我们将其解释为:基线体重为零的对照组受试者的预期体重变化百分比为 97;对于每增加一个基线体重单位,对照组受试者体重百分比变化的预期变化为-1.91;对于基线体重为零的受试者,对照组和治疗组之间体重百分比变化的预期差异为 45;并且对于每增加一个基线体重单位,治疗组和对照组之间体重百分比变化的预期差异是-0.77 ....完全出乎意料!!!!另请注意,对于“百分比变化”变量,我们必须使用诸如“百分比变化的预期变化”之类的语言,这无助于理解。

现在来介绍一个10的实际治疗效果,

x3 <- x1 + rnorm(N, 0, 1) + trt*10  
summary(lm(x3 ~ x1 * trt))

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.95933    0.54404  -1.763   0.0794 .  
x1           1.01921    0.01047  97.365   <2e-16 ***
trt         10.78643    0.72156  14.949   <2e-16 ***
x1:trt      -0.01126    0.01411  -0.798   0.4260    

...都好。

现在,我们再次创建一个百分比变化变量并将其用作结果:

pct.change.trt <- 100*(x3 - x1)/x1
summary(lm(pct.change.trt ~ x1 * trt))

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.77928    1.23337  -1.443    0.151    
x1           0.03439    0.02373   1.449    0.149    
trt         49.11734    1.63580  30.027   <2e-16 ***
x1:trt      -0.54947    0.03199 -17.175   <2e-16 ***

..更虚假的结果。

至于具体型号:

重复测量方差分析(以“体重”作为结果,[“组”、“时间”] 作为内部因素并针对“主题”进行调整)。

这是一种可行的选择。

ANCOVA(以“体重减轻百分比”作为结果,“组”作为间因子,“基线体重”作为协变量)

除了数学耦合问题,这不能控制重复测量

线性混合效应方法,以“权重”为结果,[组、时间、组*时间]为固定效应,[主题]为随机效应。同样,我们可以在这里使用“重量减少百分比”吗?

这将是我的首选选项,但同样不能减少百分比。这应该等同于重复测量方差分析。例如,您的数据:

lmer(wt ~ group*time + age + gender + (1 |Subject, data=mydata)
lme(wt ~ group*time + age + gender, random= ~ 1 | Subject, data=mydata)

如果理论、研究设计合理且数据支持,您可能希望通过将一个或多个在受试者内(仅time在本例中)不同的固定效应放置在 左侧来添加随机斜率。|就我个人而言,我总是从只有随机截距的模型开始。

具有交互作用的线性模型:“重量减少百分比”~“组”*“基线重量”

由于数学耦合问题,应该避免这种情况。即使基线作为回归量被删除,这也只是一个方差分析模型,虽然重复测量由百分比变量处理,但残差可能不会接近正常值,因此可能会影响推断。