R で auc (曲線下面積) を計算する方法


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

  • 感度:結果が実際に肯定的な場合に、モデルが観測値に対して肯定的な結果を予測する確率。これは「真陽性率」とも呼ばれます。
  • 特異性:結果が実際には陰性である場合に、モデルが観測値に対して陰性の結果を予測する確率。これは「真のネガティブ率」とも呼ばれます。

これら 2 つの測定値を視覚化する 1 つの方法は、「受信機動作特性」曲線を表すROC 曲線を作成することです。

これは、感度を Y 軸に、(1 – 特異度) を X 軸に示したグラフです。データの分類におけるロジスティック回帰モデルの有効性を定量化する 1 つの方法は、「曲線の下の面積」を表すAUCを計算することです。

AUC が 1 に近づくほど、モデルは優れています。

次の段階的な例は、R でロジスティック回帰モデルの AUC を計算する方法を示しています。

ステップ 1: データをロードする

まず、 ISLRパッケージからデフォルトのデータセットを読み込みます。このデータセットには、さまざまな人々がローンを滞納したかどうかに関する情報が含まれています。

 #load dataset
data <- ISLR::Default

#view first six rows of dataset
head(data)

  default student balance income
1 No No 729.5265 44361.625
2 No Yes 817.1804 12106.135
3 No No 1073.5492 31767.139
4 No No 529.2506 35704.494
5 No No 785.6559 38463.496
6 No Yes 919.5885 7491.559

ステップ 2: ロジスティック回帰モデルを当てはめる

次に、ロジスティック回帰モデルを当てはめて、個人が債務不履行になる確率を予測します。

 #make this example reproducible
set. seeds (1)

#Use 70% of dataset as training set and remaining 30% as testing set
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
model <- glm(default~student+balance+income, family=" binomial ", data=train)

ステップ 3: モデル AUC を計算する

次に、 pROCパッケージのauc()関数を使用して、モデルの AUC を計算します。この関数は次の構文を使用します。

なし(応答、予測)

この例でこの関数を使用する方法は次のとおりです。

 #calculate probability of default for each individual in test dataset
predicted <- predict(model, test, type=" response ")

#calculate AUC
library (pROC)
auc(test$default, predicted)

Setting levels: control = No, case = Yes
Setting direction: controls < boxes
Area under the curve: 0.9437

モデルの AUC は0.9437であることがわかります。

この値は 1 に近いため、このモデルが個人がローンを滞納するかどうかを非常にうまく予測していることを示しています。

コメントを追加する

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