混合効果モデルの予測:ランダム効果をどうするか?


13

この架空のデータセットを考えてみましょう。

set.seed(12345)

num.subjects <- 10

dose <- rep(c(1,10,50,100), num.subjects)
subject <- rep(1:num.subjects, each=4)
group <- rep(1:2, each=num.subjects/2*4)

response <- dose*dose/10 * group + rnorm(length(dose), 50, 30)

df <- data.frame(dose=dose, response=response, 
                 subject=subject, group=group)

lmeランダム効果モデルで応答をモデル化するために使用できます。

require(nlme)
model <- lme(response ~ dose + group + dose*group, 
             random = ~1|subject, df)

predictこのモデルの結果を使用して、たとえば、グループ1の一般的な被験者の用量10に対する応答を取得します。

pred <- predict(model, newdata=list(dose=10, group=1))

ただし、このコードでは次のエラーが発生します。

Error in predict.lme(model, newdata = list(dose = 10, group = 1)) : 
cannot evaluate groups for desired levels on 'newdata'

それを取り除くために、例えばする必要があります

pred <- predict(model, newdata=list(dose=10, group=1, subject=5))

しかし、これは本当に私にはあまり意味がありません...主題は私のモデルの迷惑要因ですので、どの意味にそれを含める必要がありpredictますか?データセットに存在しない件名を入力すると、predictが返されますNA

これはpredict、この状況での望ましい動作ですか?私は本当に明白な何かを見逃していますか?


modelバツβ+ZγyNバツβ+Zγσ2Z
usεr11852は回復モニック言う

@ user11852:明確にするために、これは、たとえば同じ主題に対して繰り返し測定が行われる場合に使用されるモデルとして考えています。
ニコ

Z

2
@ user11852:同じテーマについての見積もりは探していません。人口の推定値を取得するために、さまざまなテーマで繰り返し測定を行います。私はすでに実験的な答えを持っているので、すでにテストした被験者を気にしません...特定のグループの新しい被験者が刺激にどのように反応するかを予測できるようにしたいと思います。グレッグの答えは確かに問題を解決します。
ニコ

回答:


17

ヘルプをpredict.lme見るとlevel、予測を行うレベルを決定する引数があることがわかります。デフォルトは最高または最も内側です。つまり、レベルを指定しないと、サブジェクトレベルで予測しようとします。level=0最初のpredict呼び出しの一部として(なしでsubject)指定すると、人口レベルで予測が行われ、件名番号は不要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.