我在 R 中具有级别 1 和级别 2 变量的纵向数据 我的dataframe (df)
:
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))
我不明白如何使DepressionScore
和MemoryScore
在Year
内变化,同时保持Gender
和Race
不变,尤其是在fix2
中。另外,我不知道fix2
是否正在捕获我的数据中发生的Year
和ID
变化。有没有办法重组它?
在这种情况下,数学分数在 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))
您可以通过交互进行扩展
PS:您使用的软件包不是lme4
而是nlme
。也许您可以将问题的标签更改为nlme
或lme4-nlme
P.P.S: I.m.o 这个网站提供了使用 LME4 或 NLME 进行纵向数据分析的优秀示例:http://rpsychologist.com/r-guide-longitudinal-lme-lmer,应该是一个很大的帮助