統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

EZRで回帰直線のグラフに95%信頼区間を付ける方法

EZRで回帰直線のグラフに95%信頼区間を付けるにはどうしたらよいか?

predict()を使う。

EZRで線形回帰(単回帰)を実行する

まずEZRで単回帰を実行する。

サンプルデータはEZR公式マニュアルのデータを借りる。

#####線形回帰(単回帰、重回帰)#####
library(aod, pos=18)
RegModel.1 <- lm(LogCD34perBW~WBC.entry, data=GCSF_CD34)

新しい変数を作成する

新しい独立変数newxを作成する。

先ほどの単回帰で使った変数 WBC.entry の最小値から最大値までを200に区切った変数を作成する。

欠損値があると変数が作成できないので、欠損値がある行は削除してから作成する。

newx <- data.frame(WBC.entry=
  seq(min(GCSF_CD34$WBC.entry), max(GCSF_CD34$WBC.entry), 
  length=200))

単回帰モデルと新しい独立変数で予測信頼区間を計算する

先ほどの単回帰のモデル RegModel.1 を使って、新しい独立変数 newx に対する予測信頼区間を計算する。

特に指定しなければ、95%信頼区間が計算される。

confint <- predict(RegModel.1, newx, interval="confidence")

confintは、200行3列の行列になる。

fit, lwr, uprの3列だが、fitは推定値、lwrは信頼区間下限値、uprは信頼区間上限値である。

> str(confint)
 num [1:200, 1:3] 0.0412 0.0441 0.047 0.0499 0.0528 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:200] "1" "2" "3" "4" ...
  ..$ : chr [1:3] "fit" "lwr" "upr"

plot()で散布図を描きmatlines()で回帰直線と信頼区間の下限・上限を描き入れる

サンプルを描くには、plot()を使う。

~(チルダ)の左がY軸の値、右がX軸の値だ。

plot(LogCD34perBW ~ WBC.entry, data=GCSF_CD34)

f:id:toukeier:20220414223337p:plain

回帰直線 fit、信頼区間下限 lwr、信頼区間上限 upr、の3本の線をいっぺんに描かせられるのがmatlines()である。

X軸はnewx, Y軸はconfintを指定する。

col=1 は色の指定で、1は黒である。

ltyは線の種類で、1が実線、2が破線になる。

matlines(newx, confint, col=1, lty=c(1,2,2))

こんなふうに描ける。

f:id:toukeier:20220414223529p:plain

まとめ

EZRで散布図に回帰直線を描き入れて、さらに95%信頼区間を付ける方法を紹介した。

plot()で散布図を描いて、predict()で推定した回帰直線と信頼区間上限・下限をmatlines()で描かせる方法。

お試しあれ。

参考PDF

中澤先生 R演習本 91ページ目

https://minato.sip21c.org/msb/medstatbookx.pdf

EZR公式マニュアル