【データサイエンス】ROC曲線とAUCとは何か

AI/データサイエンス

前回は検査や予測の精度に関する様々な概念や指標について説明しました。前回の記事は以下を参照ください。

【データサイエンス】正解率・適合率・再現率・F値とは何か
一言で精度と言っても、精度の測り方にはいくつか種類があります。今回は正解率・適合率・再現率・F値などについて説明します。

ROC曲線とAUCも、検査や予測の精度に関する指標の1つです。今回は、前回紹介した内容をベースとして、縦軸に感度、横軸に偽陽性率を取るグラフであるROC曲線と、ROC曲線からAUCを求める方法を説明します。

スポンサーリンク

感度と偽陽性率

今回登場する感度と偽陽性率を、前回説明したPCR検査結果の混合配列を使って説明します。

感度(真陽性率)

感染者の中で、検査結果も陰性であった人の割合のことです。以下の赤枠の中の黄色部分に該当し、信用性率とも呼びます。ここが最も検出したい場所であり、そこをどのくらいの”感度”で検知できているか、という指標であると言えます。

偽陽性率

前回記事で特異度(真陰性率)という概念が、非感染者の中で検査結果も陰性であった人の割合のことだと説明しました。

偽陽性率は(1-特異度)で計算できる、非感染者の中で検査結果も陰性であった人の割合のことです。以下の赤枠の中の黄色部分に該当します。

スポンサーリンク

ROC曲線

それでは上記の概念を用いて、ROCについて説明します。

ROC曲線(receiver operating characteristic curve)は元々レーダー工学の用語のためreceiverという単語が含まれています。以下が今日使用するROC曲線の例です。

TPFとFPF

グラフ上に出てくるTPFとFPFは、上で説明した感度と偽陽性率の英語表記です。感度(真陽性率)を英語にするとTPF(True Positive Fraction)、偽陽性率を英語にするとFPF(False Positive Fraction)です。以下ではグラフに合わせてTPF・FPFを使って説明します。

次にTPFとFPFを具体的にどのように計算するのかを説明します。以下のように、ある果物がリンゴかどうかを果物の大きさに従って予測するモデルがあるとします。

予測モデルを使って以下の9個の果物がそれぞれリンゴかどうかを判定します。以下の図では大きい順に並べています。

今回はリンゴとリンゴ以外の境目がわかりやすいので、境目より大きいものをリンゴ、小さいものをリンゴではないと判定すると、以下のように表記できます。

この状態で、TPFとFPFはそれぞれ以下のように計算されます。

TPF(感度)

計算式は以下の通りです。TP=真陽性のりんごが6個、FN=偽陰性は0なので、TPFは6/6=1と計算できます。

FPF(感度)

計算式は以下の通りです。FP=偽陽性が0個、TN=真陰性は3なので、FPFは0/3=0と計算できます。

閾値

次に問題になるのは、どこで線引きをするかということです。陽性と陰性をわける線を閾値と呼びます。今回の例では9個のデータ(果物)があるので、合計10通りの線の引き方があります。以下では、閾値を動かすことによってTPFとFPFがどのように動くかを図示します。閾値を右に動かしていくほど、TPFもFPFも値が小さくなっていくのがわかると思います。

グラフ化する

上で示した閾値ごとのTPFとFPFを、グラフにプロットしてみます。

これを曲線でつなぐことで、ROC曲線が完成です。

最適なTPFとFPFを考える

この曲線にどんな意味があるのか、AUCの項目で口述しますが、この項目ではまずは最適なTPFとFPFについて考えてみます。

TPF(真陽性率)は真陽性をどれだけ補足できているかの指標ですから、高ければ高いほど望ましいことがわかると思います。一方のFPF(偽陽性率)は、分子が偽陽性であることからもわかる通り、低い方が望ましい指標です。

それを踏まえると、TPF/FPFの最適な値はTPF=1、FPF=0であると言えます。言い換えると、陽性判定はすべて真陽性、陰性判定はすべて真陰性ということです。偽陽性や偽陰性が含まれない状態と言えます。これは先ほどのリンゴの図やグラフ上のプロットからも直感的に理解できるかと思います。

グラフ上では以下の赤い点が該当します。

綺麗に線引きできないケース

上の例ではリンゴとそうでない果物の境目がはっきりしていましたが、実際の予測モデルでは対象物(リンゴ)と非対象物(リンゴ以外)は混在しているのが普通です。以下のように、リンゴとリンゴ以外を綺麗に線引できない例を想定してみます。

上の図を例にして、TPFやFPFがどのように変化するのかを見てみましょう。

上のTPFとFPFをグラフにプロットします。

これを線でつなぐを以下のようになります。TPFとFPFの最適値である赤い点を通っていないことがわかると思います。

AUC (Area Under Curve)

上で見てきたようにROC曲線というのはTPFとFPFの値をグラフ化したものです。AUC(Area Under Curve)というのは、このグラフの曲線の下部分の面積を指します。この面積は、広い方がモデルの精度が高いと判定できます。

例えば最初に例として挙げた、リンゴとリンゴ以外がはっきり分かれている場合のAUCをみてみましょう。

左が上述のROC曲線、右側の色塗り部分がAUCです。TPF=1、FPF=0の点を通っていて、AUCは最大化されています。

一方2例目の、綺麗に線引きできないケースではどうでしょうか?

ROC曲線の下側を塗ると、上の例よりもAUCの面積が小さいことがわかると思います。

コメント

タイトルとURLをコピーしました