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)
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, ' ) '))
プロットのテーマを変更することもできることに注意してください。
#create ROC plot with minimal theme ggroc(rocobj, color = ' steelblue ', size = 2 ) + ggtitle( paste0 (' ROC Curve ', ' (AUC = ', auc, ' ) ')) + theme_minimal()
最適な ggplot2 テーマのガイドについては、 この記事を参照してください。