web-dev-qa-db-ja.com

Rのglm(..)で95%の信頼区間を取得します

ここにいくつかのデータがあります

_dat = data.frame(y = c(9,7,7,7,5,6,4,6,3,5,1,5), x = c(1,1,2,2,3,3,4,4,5,5,6,6), color = rep(c('a','b'),6))
_

必要に応じて、これらのデータのプロット

_require(ggplot)
ggplot(dat, aes(x=x,y=y, color=color)) + geom_point() + geom_smooth(method='lm')
_

関数MCMCglmm()…でモデルを実行する場合

_require(MCMCglmm)
summary(MCMCglmm(fixed = y~x/color, data=dat))
_

推定値の95%の下限と上限の間隔を取得して、2つの勾配(色= aと色= b)が大幅に異なるかどうかを知ることができます。

この出力を見ると...

_summary(glm(y~x/color, data=dat))
_

...信頼区間がわかりません!

私の質問は:

関数glm()を使用する場合、推定値のこれらの95%の下限と上限の信頼区間をどのように取得できますか?

12
Remi.b

confintを使用します

 
 mod = glm(y〜x/color、data = dat)
 summary(mod)
 Call:
 glm(formula = y 〜x/color、data = dat)
 
逸脱度残差:
最小1Q中央値3Q最大
-1.11722 -0.40952 -0.04908 0.32674 1.35531 
 
係数:
推定標準エラーt値Pr(> | t |)
(切片)8.8667 0.4782 18.540 0.0000000177 
 x -1.2220 0.1341 -9.113 0.0000077075 
 x:colorb 0.4725 0.1077 4.387 0.00175 
 
(ガウス家族の分散パラメーターは0.5277981と見なされます)
 
帰無仮説:11自由度で48.9167 
残差逸脱度:9自由度で4.7502 
 AIC:30.934 
 
フィッシャースコアリングの反復回数:2 
 
 confint(mod)
プロファイリングが行われるのを待っています... 
 2.5%97.5%
(インターセプト)7.9293355 9.8039978 
 x -1.4847882 -0.9591679 
 x:colorb 0.2614333 0.6836217 
10
alex keil

@alexのアプローチでは信頼限界が得られますが、解釈には注意してください。 glmは基本的に非線形モデルであるため、係数は通常大きな共分散を持ちます。少なくとも95%の信頼楕円を確認する必要があります。

_mod <- glm(y~x/color, data=dat)
require(ellipse)
conf.ellipse <- data.frame(ellipse(mod,which=c(2,3)))
ggplot(conf.ellipse, aes(x=x,y=x.colorb)) + 
  geom_path()+
  geom_point(x=mod$coefficient[2],y=mod$coefficient[3], size=5, color="red")
_

これを生成します。これは、xと交互作用項の95%信頼楕円です。

confint(...)によって生成された信頼限界が楕円とどのように一致しているかに注意してください。その意味で、楕円は信頼限界のより保守的な推定値を提供します。

3
jlhoward