混合モデルの結果を視覚化する


15

混合モデルで私が常に抱えていた問題の1つは、結果が得られたら、データの視覚化(紙やポスターに掲載されるようなもの)を把握することです。

現在、私は次のような式のポアソン混合効果モデルに取り組んでいます:

a <- glmer(counts ~ X + Y + Time + (Y + Time | Site) + offset(log(people))

glm()に適合するものを使用すると、predict()を使用して簡単に新しいデータセットの予測を取得し、それから何かを構築できます。しかし、このような出力では-Xからのシフト(およびおそらくYの設定値)を使用して、経時的なレートのプロットのようなものをどのように構築しますか?固定効果の推定値からフィットを十分に予測できると思いますが、95%CIはどうですか?

他の誰かが結果を視覚化するのに役立つと考えることができるものはありますか?モデルの結果は以下のとおりです。

Random effects:
 Groups     Name        Variance   Std.Dev.  Corr          
 Site       (Intercept) 5.3678e-01 0.7326513               
            time        2.4173e-05 0.0049167  0.250        
            Y           4.9378e-05 0.0070270 -0.911  0.172 

Fixed effects:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -8.1679391  0.1479849  -55.19  < 2e-16
X            0.4130639  0.1013899    4.07 4.62e-05
time         0.0009053  0.0012980    0.70    0.486    
Y            0.0187977  0.0023531    7.99 1.37e-15

Correlation of Fixed Effects:
         (Intr) Y    time
X      -0.178              
time    0.387 -0.305       
Y      -0.589  0.009  0.085

1
(+1)@EpiGrad:モデルの固定効果部分からの予測のCI(つまり標準誤差)を心配するのはなぜですか?
boscovich

1
@andrea知的な答え、そして実際的なもの:知的には、私は可能な限り不確実性の定量化と視覚化を好む。実際には、レビュアーがそれを求めることはかなり確実だからです。
Fomite

ええ、確かに、私は何か違うことを意味しました。私のコメントは十分に明確ではありませんでした、申し訳ありません。「95%CIについてはどうですか?」という質問を書きます。私のコメントは、なぜモデルの固定効果部分から予測の標準誤差を計算しないのですか?固定効果部分から予測値を計算できる場合は、SE、つまりCIも計算できます。@EpiGrad
boscovich

@andreaああ。心配なのは、私が予測したいことの1つである時間もランダムな効果を持っているということです。
Fomite

まあ、あなたは予測したいのcountsではなくtime。あなたは、の値を修正しXYそしてtime、あなたは予測モデルの固定効果の一部を使用しましたcountstimeモデルにランダム効果としても含まれていることは事実です(切片およびのようにY)が、予測にモデルの固定効果部分のみを使用することはランダム効果を0に設定するようなものなので、ここでは重要ではありません。 @EpiGrad
boscovich

回答:


4

countsモデルの固定効果部分を使用して予測することは、ランダム効果をゼロ(つまり、その平均)に設定することを意味します。これは、それらについて「忘れる」ことができ、標準機械を使用して予測と予測の標準誤差を計算できることを意味します(信頼区間を計算できます)。

これはStataを使用した例ですが、R言語に簡単に「翻訳」できると思います。

webuse epilepsy, clear
xtmepoisson seizures treat visit || subject: visit
predict log_seiz, xb
gen pred_seiz = exp(log_seiz)
predict std_log_seiz, stdp
gen ub = exp(log_seiz+invnorm(.975)*std_log_seiz)
gen lb = exp(log_seiz-invnorm(.975)*std_log_seiz)

tw (line pred_seiz ub lb visit if treat == 0, sort lc(black black black) ///
 lp(l - -)), scheme(s1mono) legend(off) ytitle("Predicted Seizures") ///
 xtitle("Visit")

グラフが参照しtreat == 0、それは例であることを意図しています(visit実際に連続した変数ではありませんが、単にアイデアを得るためです)。破線は95%の信頼区間です。

ここに画像の説明を入力してください

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