(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【サルでも分かる】ROC曲線入門(前編)

スポンサーリンク

f:id:mtiit:20190529190855p:plain

はじめに

ROC曲線とは、ある検査のカットオフ値を連続的に変化させた際の真陽性率偽陽性率の値をプロットした曲線です。

本記事では

カットオフ?真?偽?

程度の知識でもROC曲線について理解できるよう、わかりやすい入門記事を書いてみました。
丁寧に書いたので記事を分割していますが、最後まで読み切っていただければROC曲線のミソは掴めると思います。

所要時間目安 : 10分

ROC曲線?

ROC曲線とは受信者動作特性曲線(Receiver Operating Characteristic curve)の略であり、もともとは無線信号検出器に関する曲線です。

まずは、偽陽性率と真陽性率について説明します。

偽陽性率?

ある検査によって陽性か陰性か判断が行われるとします。
ただし、これはあくまで検査結果なので、実態と検査結果が異なる場合があります。

そのような事象を扱うため、統計学用語として
陽性と判断され、実際に陽性であることを真陽性と呼び、
陽性と判断され、実際は陰性であることを偽陽性と呼びます。

陽性と判断すれば結果はどうあれX陽性なんだね

逆も然りで、
陰性と判断され、実際は陽性であることを偽陰性と呼び、
陰性と判断され、実際は陰性であることを真陰性と呼びます。

図にすると以下のようになります。

実態 : 陽性 実態 : 陰性
検査 : 陽性 真陽性 偽陽性
検査 : 陰性 偽陰性 真陰性

そして偽陽性率とは本当は陰性なのに検査が誤って陽性と判断したものの割合を指します。

分母が陰性の人で分子が間違えて陽性にした人ってことか

先ほどの表に数値を入れてみました。偽陽性率を計算してみます。

実態 : 陽性 実態 : 陰性
検査 : 陽性 80 20
検査 : 陰性 10 460

実態が陰性なものは20+460=480あり、その中の20を誤って陽性とカテゴライズしたので偽陽性率は

> 20/480
[1] 0.04166667

約4%ということになります。

同じように、真陽率とは検査で正しく陽性と判断したものの割合です。

上の例では、実態が陽性なものは80+10=90であり、その中で80を正しく陽性とカテゴライズしたので真陽性率は

> 80/90
[1] 0.8888889

約89%ということになります。

偽陽性率は低い方が嬉しくて、真陽性率は高い方が嬉しいんだね


この偽陽性率と真陽性率ですが、検査の基準を変更すれば変わってきます。

例えば、極論ですが、診察者がどんなデータでも陽性と判断してしまう検査基準を用意した場合、

実態 : 陽性 実態 : 陰性
検査 : 陽性 90 480
検査 : 陰性 0 0

高い値を出して欲しい真陽性率は1ですが、低い値を出して欲しい偽陽性率も1になってしまいます。

逆に、偽陽性率を下げるためにどんなデータでも陰性と判断してしまう検査基準を用意した場合、

実態 : 陽性 実態 : 陰性
検査 : 陽性 0 0
検査 : 陰性 90 480

偽陽性率は確かに0ですが、高い値を出して欲しい真陽性率も0になってしまいます。

なるほど。データは同じでも基準を変えれば真陽性率や偽陽性率も変わるんだね

データは変わらないが基準を変えれば陽性率及び陰性率が変わる、これがここまでのポイントです。

ROC曲線の定義を再掲します。

ROC曲線とは、ある検査のカットオフ値を連続的に変化させた際の真陽性率偽陽性率の値をプロットした曲線

真陽性率と偽陽性率は分かったけどカットオフ値ってなんなの?

...

続編に続きます。