• 统计学
  • 如何使用线性混合模型检验基线变量与变化率之间的关系

假设我们测量了每个被试(Subject)的身高(Height),每一年测量一次(Time)。除了身高,还有一个变量为被试父母的平均身高(ParentHeight),这个变量是不随时间变化的(或者只在基线测量的),想检验的问题是,被试父母的平均身高和被试身高的变化率是否存在关联(比如,父母平均身高越高,被试身高随时间的变化率越大)。当然,这是完全假想的例子,举身高的例子只是为了避免引入专业知识。

这里似乎有两种做法:第一种是算出每个被试身高的变化率,然后和父母的平均身高进行皮尔逊相关(或者其他相关);第二种是在LME模型中检验时间和父母的平均身高的交互效应。这两种做法得到的结果的解读是很不一样的,如果是第一种,那么我们可以说父母的平均身高与子女的身高变化率是否显著相关,比如相关系数为0.6;如果是第二种,按照交互作用的常规解读,我们可以说子女的身高变化率跟父母的平均身高有关,当父母的平均身高不同时,子女身高的变化率也不同,但是我们无法得到子女的身高变化率与父母的平均身高的相关系数。不知道各位老师如何看待这个问题?这个问题是我前面提的一个问题的延伸,感兴趣的朋友可以查看:https://d.cosx.org/d/424939-ru-he-shi-yong-xian-xing-hun-he-xiao-ying-mo-xing-jian-yan-bian-hua-lu-zhi-jian-de-guan-lian/8

下面是一个示例代码,希望补充上面的文字描述:

library(lme4)

## Method 1
## Fit LME for height
height_mod <- lme4::lmer(Height ~ Time +  (1+Time|Subject), data = mydat)
## Extract random slope
height_rs <- coef(height_mod)$Subject[['Time']]
## Correlation between random slope and ParentHeight
cor.test(height_rs, ParentHeight) 

## Method 2
## Examine  the interaction between Time and ParentHeight
height_mod <- lme4::lmer(Height ~ Time + ParentHeight + Time:ParentHeight + (1+Time|Subject), data = mydat)
## Using likelihood ratio test to get the p-value
height_mod_null <- lme4::lmer(Height ~ Time + ParentHeight + (1+Time|Subject), data = mydat)
anova(height_mod_null, height_mod)
15 天 后

coef这个方法。。真没有看过。。
也觉得很难理解!

系数为什么和一个变量再比较?

    5 天 后

    worldhello122 我的理解是,这个系数反映的是身高变化率,即单位时间身高的变化。至于为什么检验变化率和基线变量的关系,是因为这两者在某些场景下可能是有关系的,只是我这里举的例子可能不够合理。

      huyang
      如果您只是想求“身高变化率”,那直接求回归系数就行了啊。
      身高的系数,恰恰就是“单位时间身高的变化”啊!!
      确实平时大家都不写具体公式了,当前所有软件都不给出完整表达式。

      恕我直言,coef这个函数真的很少应用,
      因为这个本来就是针对两变量的简单分析,现实多种情况就是多因素分析啊!!!

      其实你分析其他任意两个变量,都有结果,但确实不一定有意义!!
      至于合理性。。。这个真需要长篇大论来分析了。

      我个人觉得您可能没理解透相关的定义。。!!
      真的,
      也许课本上很简单,但这并不代表随意拉两个变量来分析。

      如果您真感兴趣,那请苦修概率论基础,再严谨地用公式来推导您的上述想法。

        worldhello122 嗯嗯,谢谢您的回复。我补充一下我为什么不直接在每个被试内部计算身高变化率,而是用线性混合模型中的随机效应,是因为线性混合模型可以处理缺失值。