1

gamm4モデルからの近似値を利用しようとしていますが、使用しているデータフレームの正しい行と一致する必要があります。
これが私が実行するモデルです:

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

lmerオブジェクトの場合、「na.exclude」オプションはNAを近似値のままにして、fitted(lmer.output)呼び出しがデータフレームと同じ長さと順序のベクトルを返すようにします。しかし、gamm4で試しましたがfitted(gam.outcome$gam)fitted(gam.outcome$mer)どちらの結果にも対処する方法がわかりません。後者は、「na.exclude」オプションにもかかわらず、すべてのNAを省略します。前者にはlmerの2倍のNA値が含まれており、これはある種の手がかりになるはずですが、私はそれを取得するには厚すぎます。私が知っているのは、どちらの方法でも、ベクトルが元のデータと一致しないということだけです。

私の問題を解決する方法は複数あると思います。質問への回答だけでなく、質問の改善やタグ付けにご協力いただき、誠にありがとうございます。ありがとう!

4

1 に答える 1

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います。2番目の解決策は、これを自動的に把握しようとします。

于 2012-11-19T00:27:14.847 に答える