2012-11-18 96 views
1

我正在尝试使用gamm4模型中的拟合值,并且需要它们与我正在使用的数据框中的正确行匹配。
这是我运行模式:尽管使用NAs,我如何使DF与DF(gamm4.model)值相匹配?

gam.outcome <- gamm4(formula = outcome ~ male + s(gpa), 
        random = ~ (1|school), 
        data=avr, na.action="na.exclude") 

随着对象11聚物的“na.exclude”选项留下来港的拟合值,使得拟合(lmer.output)调用返回一个矢量相同的长度和顺序作为数据帧。但在gamm4中,我试过fitted(gam.outcome$gam)fitted(gam.outcome$mer),但不知道如何处理结果。尽管有“na.exclude”选项,后者省略了全部NA。前者包含的NA值是lmer的两倍,应该是某种线索,但我太难以获得了。我所知道的是,无论是哪种方式,矢量都不与原始数据对齐。

我想有多种方法可以解决我的问题。我非常感谢帮助改进或标记我的问题以及回答问题。谢谢!

回答

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值位于同一行中。第二次尝试自动计算出此值。

+0

对于这个缺失拟合值的来源缺少预测因子有何建议?这很烦人,因为我适合很多模型,并且他们有不同的缺失值,所以我希望比测试是否有大量预测变量缺失更方便。谢谢! –

+0

见编辑? ..... –