ROC曲線やAUCを求める手法について、pythonを用いたプログラムを提示します。
以下の手法で、複数のファイル(複数のROC曲線)を同じ図上に表示し、同時にAUCも求めることができます。
ROC曲線とは
独立変数(連続変数)とアウトカム(二分変数)の関係の強さを評価する方法です。
診断検査の有用性を検討する手法として利用されることがあります。
例題
それぞれ別の独立変数とアウトカムを持つ2つのファイル(ファイル1とファイル2)があります。
そこで、ファイル1とファイル2のROC曲線とAUCを求め、かつ同じ図内で表示できるプログラムを作ります。
※架空のデータの提示が難しいため、プログラムのみ提示します。
プログラム
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("ファイル1.csv")
y_true = df["X1"]
y_score = df["Y1"]
df2 = pd.read_csv("ファイル2.csv")
y2_true = df2["X2"]
y2_score = df2["Y2"]
fpr, tpr, thresholds = roc_curve(y_true, y_score)
fpr2, tpr2, thresholds2 = roc_curve(y2_true, y2_score)
plt.plot(fpr, tpr, label='X1 (AUC=%.3f)'%auc(fpr, tpr))
plt.plot(fpr2, tpr2, label='X2 (AUC=%.3f)'%auc(fpr2, tpr2))
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.legend(loc="lower right")
plt.show()
結果
上記プログラムからファイル1とファイル2のROC曲線とそれぞれのAUCが出力されます。
独学でPythonを学ぶ方におすすめ
リンク
まとめ
上記プログラムをコピー&ペーストで用いることができます。
ファイル数はファイル2と同様にプログラムを追加していくことで、複数追加可能です。