Ggplot2 を使用して roc 曲線をプロットする方法 (例付き)


ロジスティック回帰は、応答変数がバイナリの場合に回帰モデルを近似するために使用する統計手法です。ロジスティック回帰モデルがデータセットにどの程度適合しているかを評価するには、次の 2 つの指標を確認します。

  • 感度:結果が実際に肯定的な場合に、モデルが観測値に対して肯定的な結果を予測する確率。
  • 特異性:結果が実際には陰性である場合に、モデルが観測値に対して陰性の結果を予測する確率。

これら 2 つの指標を視覚化する簡単な方法は、ロジスティック回帰モデルの感度と特異度を表示するグラフであるROC 曲線 を作成することです。

このチュートリアルでは、ggplot2 視覚化パッケージを使用して R で ROC 曲線を作成および解釈する方法を説明します。

例: ggplot2 を使用した ROC 曲線

次のロジスティック回帰モデルを R に当てはめるとします。

 #load Default dataset from ISLR book
data <- ISLR::Default

#divide dataset into training and test set
set.seed(1)
sample <- sample(c( TRUE , FALSE ), nrow (data), replace = TRUE , prob =c(0.7,0.3))
train <- data[sample, ]
test <- data[!sample, ]

#fit logistic regression model to training set
model <- glm(default~student+balance+income, family=" binomial ", data=train)

#use model to make predictions on test set
predicted <- predict(model, test, type=" response ")

テスト セットでのロジスティック回帰モデルのパフォーマンスを視覚化するには、 pROC パッケージggroc()関数を使用して ROC プロットを作成します。

 #load necessary packages
library (ggplot2)
library (pROC)

#define object to plot
rocobj <- roc(test$default, predicted)

#create ROC plot
ggroc(rocobj) 

ggplot2 の ROC 曲線

Y 軸はモデルの感度 (真陽性率) を表示し、X 軸はモデルの特異度 (真陰性率) を表示します。

プロットにスタイルを追加でき、プロットの AUC (曲線下の面積) を含むタイトルも提供できることに注意してください。

 #load necessary packages
library (ggplot2)
library (pROC)

#define object to plot and calculate AUC
rocobj <- roc(test$default, predicted)
auc <- round (auc(test$default, predicted), 4 )

#create ROC plot
ggroc(rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) 

ggplot2 の AUC を含む ROC 曲線

プロットのテーマを変更することもできることに注意してください。

 #create ROC plot with minimal theme
ggroc(rocobj, color = ' steelblue ', size = 2 ) +
  ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) +
  theme_minimal() 

ggplot2 を使用した R の ROC 曲線

最適な ggplot2 テーマのガイドについては、 この記事を参照してください。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です