我正在尝试使用嵌套随机效果和随机系数来构建模型
R中使用lmer()
的交互术语。
如下面创建的数据所示,我有一个二进制响应和两个解释变量。 时间是连续的,二元是一个因素。这些数据来自6个人(AAA:FFF) 在三个StudyAreas(CO,UT,MT)。因为个人只出现在一个StudyArea,所以IndID是 嵌套在StudyArea中。
#Make data
Response <- as.factor(round(runif(150, 0, 1)))
Time <- round(runif(150, 2,50))
Binary <- round(runif(150, 0, 1))
IndID <- as.factor(rep(c("AAA", "BBB", "CCC", "DDD", "EEE", "FFF"),25))
StudyArea <- as.factor(rep(c("CO", "UT", "MT"),50))
Data <- data.frame(Response, Time, Binary, IndID, StudyArea)
head(Data)
> head(Data)
Response Time Binary IndID StudyArea
1 0 44 1 AAA CO
2 1 16 0 BBB UT
3 1 43 0 CCC MT
4 0 13 1 DDD CO
5 0 34 1 EEE UT
6 1 10 1 FFF MT
因为我想考虑IndID和StudyArea之间的差异,所以我已经包含了这两个术语 作为随机效应,调整下面模型中的截距。
require(lme4)
lmer1 <- lmer(Response ~ Time + Binary + (1|StudyArea) + (1|IndID), data=Data, family=binomial)
summary(lmer1)
让我们说在GLM结构中Time和StudyArea之间的相互作用(即(Time * StudyArea)) 是一个重要的术语。因此,除了对拦截的调整外,我还需要进行调整 到坡度来考虑作为StudyArea函数的时间差异。
虽然我在贝茨的书中看过很多例子(http://lme4.r-forge.r-project.org/book/Ch4.pdf) 和其他添加随机系数的帖子,我还没有看到用于交互项的rand coef。
从我从其他帖子中收集的内容来看,模型结构应该看起来像模型 下面,但我期待着别人的反馈和建议。此代码适合模型, 虽然我不确定它在理论上是否正确
lmer2 <- lmer(Response ~ Time + Binary + (0+Time|StudyArea) + (1|StudyArea) + (1|IndID), data=Data, family=binomial)
注意:这些是由数据组成的,结果/ p值显然没有意义。
提前致谢。