我正在尝试使用gamm4模型中的拟合值,并且需要它们与我正在使用的数据框中的右侧行匹配。
这是我运行的模型:
gam.outcome <- gamm4(formula = outcome ~ male + s(gpa),
random = ~ (1|school),
data=avr, na.action="na.exclude")
使用lmer对象时,“na.exclude”选项会在拟合值中保留NAs,以便fit(lmer.output)调用返回与数据帧长度和顺序相同的向量。但是在gamm4中我尝试了fitted(gam.outcome$gam)
和fitted(gam.outcome$mer)
,但不知道如何处理两者的结果。尽管有“na.exclude”选项,后者省略了所有NA。前者包括两倍于lmer的NA值,这应该是某种线索,但是我太厚了不能得到它。我所知道的是,无论哪种方式,矢量都不与原始数据对齐。
我想有不止一种方法可以解决我的问题。我非常感谢帮助改进或标记我的问题以及回答它。谢谢!
答案 0 :(得分:1)
大约(未经测试):
myfitted <- numeric(nrow(avr))
myfitted[!complete.cases(avr)] <- NA
myfitted[complete.cases(avr)] <- fitted(gam.outcome$mer)
或(也未经测试)
avrframe <- model.frame(outcome~male+gpa+school,na.action=na.exclude)
napredict(attr(avrframe,"na.action"),fitted(gam.outcome$mer))
第一个解决方案假设NA
中的所有avr
值都位于您感兴趣的列中,或者与列中的NA
值位于同一行中我们很感兴趣。第二次试图自动解决这个问题。