【问题标题】:R Ordering of LME covariates for level 1 and level 2 variables?R对1级和2级变量的LME协变量排序?
【发布时间】:2026-02-13 06:25:06
【问题描述】:

我在 R my dataframe (df) 中有 1 级和 2 级变量的纵向数据:

ID       Year  Gender Race MathScore DepressionScore MemoryScore
1        1999   M      C     80            15            80
1        2000   M      C     81            25            60
1        2001   M      C     70            50            75
2        1999   F      C     65            15            99
2        2000   F      C     70            31            98
2        2001   F      C     71            30            99
3        1999   F      AA    92            10            90
3        2000   F      AA    89            10            91
3        2001   F      AA    85            26            80

我试过这些:

summary(fix  <- lme(MathScore ~ Gender+Race+DepressionScore+MemoryScore,
        random= Year|ID, data=df, na.action="na.omit")

summary(fix2 <- lme(MathScore ~ 1+Gender+Race+DepressionScore+MemoryScore,
        random=~1|Year, data=df, na.action=na.omit)) 

我不明白如何使DepressionScoreMemoryScoreYear 内变化,同时保持GenderRace 不变,尤其是在fix2 中。另外,我不知道fix2 是否正在捕获我的数据中发生的YearID 变化。有没有办法重组它?

【问题讨论】:

    标签: r panel-data nlme longitudinal


    【解决方案1】:

    在这种情况下,数学分数在 ID 内变化(年份嵌套在 ID 内),因此 ID 成为您的分组变量,您可以指定:

    summary(fix2 <- lme(MathScore ~ 1+Gender+Race+DepressionScore+MemoryScore,
            random=list( ID = ~ 1), data=df, na.action=na.omit)) 
    

    获取随机截距模型或

    summary(fix2 <- lme(MathScore ~ 1+Gender+Race+DepressionScore+MemoryScore,
            random=list( ID = ~ Year), data=df, na.action=na.omit)) 
    

    要获得一个随机斜率的年份。如果您对数学分数随时间的变化感兴趣,那么您可能需要指定一年的固定效应。

    summary(fix2 <- lme(MathScore ~ 1+Gender+Race+DepressionScore+MemoryScore+Year,
            random=list( ID = ~ Year), data=df, na.action=na.omit)) 
    

    你可以通过交互来扩展它

    附: : 你使用的包不是lme4,而是nlme。也许您可以将问题的标签更改为nlmelme4-nlme

    P.P.S:I.m.o 这个网站提供了使用 lme4 或 nlme 进行纵向数据分析的优秀示例:http://rpsychologist.com/r-guide-longitudinal-lme-lmer,应该会有很大帮助

    【讨论】: