裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

アドバイス:オンラインヘルプはよく読もう

2013年01月16日 | ブログラミング

Rでlmコマンドの結果からStd. Errorを取得する」に書いてあることについて

回帰分析の係数の区間推定を求めたいときがあり,そのためには,回帰係数の標準誤差を求める必要があるということですが。

その後,自分で計算式を書いて求めているのだけど,

回帰係数の信頼区間を求めるための confint という関数があるよということがオンラインヘルプに書いてある(See Also の項)。

> r <- lm(Sepal.Length~., iris[-5]) # expressionは任意の推定式です
> coef(summary(r))[, 2]
 (Intercept)  Sepal.Width Petal.Length  Petal.Width
  0.25077711   0.06664739   0.05671929   0.12754795
> # 例えば3番目の係数の95%信頼区間を求めたいときは、以下のようにしてください。
> a <- 0.05/2 # 両側検定
> df <- summary(r)$df[2] # 自由度
> b <- coef(r)[3] # 3番目の係数
> se <- coef(summary(r))[, 2][3] # 3番目の標準誤差
> sprintf("%.3f(95%%信頼区間%.3f~%.3f)", b, b-se*qt(a, df), b+se*qt(a, df))

[1] "0.709(95%信頼区間0.821~0.597)"

信頼区間を求めるには,

> confint(r)
                  2.5 %     97.5 %
(Intercept)   1.3603752  2.3516197
Sepal.Width   0.5191189  0.7825554
Petal.Length  0.5970350  0.8212289
Petal.Width  -0.8085615 -0.3044038

だけでよい。summary する必要も,その結果から SE を抽出する必要も,結果を計算する必要もない。返されるのは matrix

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村