R 言語 CalibrationCurves パッケージは、信頼区間を使用して検量線を描画します

16740598:

検量線グラフは予測値と実際の値の差を表し、予測モデルの重要な部分として、現在多くの関数で検量線を描くことができます。一般に 2 種類に分けられ、1 つは Hosmer-Lemeshow 検定に合格し、P 値を 10 等分し、各等分における予測値と実際の値の差を求めるものです。1 つは、連続的な検量線を描くことです。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
これまで何度も連続・等値の検量線の描画について紹介してきましたが、今回はCalibrationCurvesパッケージを紹介します名前を見ただけで、検量線を描画するためのRパッケージであることが分かります。信頼区間を持った検量線を描けるのが特徴です。次に操作してみましょう。

library(CalibrationCurves)
bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)

ここに画像の説明を挿入します
これは低出生体重児の未熟児に関するデータです(公開アカウントの返信: 早産データ、このデータは入手できます)。2500g未満は低体重児とみなされます。データは次のように説明されます。 low は赤ちゃんが未熟児で体重 2500g 未満の低体重児であるかどうかを示し、age は母親の年齢、lwt 最終月経体重、人種レース、smoke は妊娠中の喫煙を示し、ptl は早産歴を示します ( count)、htは高血圧の既往歴、uiは子宮アレルギー、ftvは妊娠初期を表し、受診回数、bwtは新生児の体重の値です。まずカテゴリ変数を因子に変換しましょう

bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)

データを按分して分割する

set.seed(123)
tr1<- sample(nrow(bc),0.6*nrow(bc))##随机无放抽取
bc_train <- bc[tr1,]#60%数据集
bc_test<- bc[-tr1,]#40%数据集

モデリングセットデータを使用してモデルを構築する

fit<-glm(low ~ age + lwt + race + smoke + ptl + ht + ui + ftv,
         family = binomial("logit"),
         data = bc_train )

検量線は主に予測値と実際の値の関係を比較するため、予測確率と実際の値を生成する必要があります。私たちのラインは予測値を生成します

pr1<- predict(fit,type = c("response"))

予測確率の生成に加えて、実際の終了 Y 値も生成する必要があります。

yval<-bc_train$low

検量線の描画は実際には非常に簡単です。必要なコードは 1 文だけです。最初に確率を入力し、最後に結果を入力するだけです。

valProbggplot(pr1, yval)

ここに画像の説明を挿入します
ここに画像の説明を挿入します
色や線の形状などのグラフィックも変更できます。

valProbggplot(pr1, yval, CL.smooth = TRUE, logistic.cal = TRUE, lty.log = 2,
              col.log = "red", lwd.log = 1.5)

ここに画像の説明を挿入します

valProbggplot(pr1, yval, CL.smooth = TRUE, logistic.cal = TRUE, lty.log = 9,
              col.log = "red", lwd.log = 1.5, col.ideal = colors()[10], lwd.ideal = 0.5)

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/dege857/article/details/132892250