ROC曲線のAUCの95%信頼区間を計算することで、「たまたま」得られたデータの結果から、AUCがとるであろう値の範囲を推測することができます。
そのため信頼区間は、論文中にも必ず示されています。
この記事では、ROC-AUCの95%信頼区間を求める方法について解説し、その計算をPython言語により実装する方法を紹介します。
オンラインで自動計算
艮電算術研究所の自動計算Webアプリ「AutoCalc」では、この記事で解説する方法にもとづいて、ROC曲線のAUCがとりうる値の信頼区間をオンラインで算出できます。
その他にも様々な計算機能を用意しているので、いろいろ試してみてください!
ROC-AUCとは
ROC曲線(Receiver Operating Characteristic Curve)は、検査の感度(真陽性率)と偽陽性率のトレードオフをプロットし、検査の分類性能を調べる方法です。
曲線の下にできる面積をAUC(Area Under the Curve)といい、ROC曲線のAUC(ROC-AUC)がおよそ0.8を超えている場合、その検査は優れていると判断することができます。
ROC曲線の性質や、PR曲線との使い分けについては、以下の記事に詳しく書いてあります。
ROC-AUCの信頼区間
信頼区間とは
信頼区間(Confidence Interval; CI)は、厳密にいうと以下のように定義されます。
正規分布にしたがう母集団から繰り返しサンプリングを行い、そのたびに一定の方法で区間を計算する。
このとき得られた複数の区間のうち、x%の区間が母平均を区間内に含んでいるとき、
この方法によって求めららた区間をx%信頼区間という。
ただし、統計学の論文を書くような場面以外では、もう少し簡単に考えて良いでしょう。
今回扱う「ROC-AUCの95%信頼区間」については、「ROC-AUCは大体このあたりの値になる」を意味する指標として活用してください。
ROC-AUCの信頼区間の式
得られたデータから計算したROC-AUCの値を \(A\) とします。
また、 \(A\) の標準誤差を \(SE(A)\) と書きます(計算方法は後に示します)。
このとき、ROC-AUCのx%信頼区間 \(C(x)\) は、
$$C(x)=A\pm z\left(\frac{1-x}{2}\right)SE(A)$$
と、あらわされます。
ここで、 \(z(a)\) は、正規分布の上側a%点を返す関数です。
統計でよく基準となる、95%信頼区間( \(x=0.95\) )を求める際には、正規分布表より
$$z\left(\frac{1-x}{2}\right)=z(0.025)=1.96$$
となるため、
$$C(x)=A\pm 1.96SE(A)$$
と求めることができます。
ROC-AUCの標準誤差
信頼区間の式で用いた \(SE(A)\) は、Hanley et al. (1982)の文献によると、
$$SE(A)=\sqrt{\frac{A(1-A)+(n_P-1)(Q_1-A^2)+(n_N-1)(Q_2-A^2)}{n_P\cdot n_N}}$$
で計算することができます。
ここで、 \(n_P,n_N\) はそれぞれ、ROC曲線を描いたデータのうち、
- \(n_P\) :「真に陽性が出るべきだった人数(=例:病気の人数)」
- \(n_N\) :「真に陰性が出るべきだった人数(=例:健康な人数)」
を意味します。これらを今後、陽性例・陰性例と呼ぶことにします。
\(Q_1,Q_2\) は、ROC曲線を描いた検査から計算される、以下のような確率値です。
- \(Q_1\) :2つの陽性例を無作為に選んだ時、その両方が、無作為に選んだ1つの陰性例よりも、検査で「陽性の疑いが強い」と判断される確率
- \(Q_2\) :2つの陰性例を無作為に選んだ時、その両方が、無作為に選んだ1つの陽性例よりも、検査で「陰性の疑いが強い」と判断される確率
同文献中では、この2つの確率はおおよそ、
$$Q_1=\frac{A}{2-A}$$
$$Q_2=\frac{2A^2}{1+A}$$
で計算できることが示されています。
Pythonによる実装
以上の理論にしたがい、ROC-AUCの95%信頼区間を計算するプログラムをPythonで実装します。
コード内の変数の意味は次のとおりです。
y_true
:データが陽性例または陰性例のどちらであるかを記録した、ラベルの配列y_score
:データに対して検査が判断した、陽性確率の配列- 例:検査値の値など
positive
:陽性例を表すラベルの文字- デフォルト設定では、陽性=
1
、陰性=0
を想定
- デフォルト設定では、陽性=
以下のコードはsklearn
ライブラリの関数を用いてROC曲線を計算し、同時にROC-AUCの95%信頼区間を出力します。
参考文献
[1] J. A. Hanley and B. J. McNeil. The Meaning and Use of the Area under a Receiver Operating Characteristic (ROC) Curve. Radiology, 1982.
Comments