ROC曲線からAUCとGini(AR値)を求める
この記事は逆引き8-5(ROC曲線)と関連付いています。そちらも参照ください。
1.想定される利用目的
・予測モデルの性能評価
・実装後のモデルメンテナンスのための性能指標の算出
2.サンプルストリームのダウンロード
3.サンプルストリームの説明
a.入力するデータは以下の通りです。故障有無と予測、傾向スコアの3列のデータです。
*ROC曲線でカットオフポイントを決めるためこの時点では予測列[$R-故障]は全て1にしています。
精度分析ノードでAUCとGiniを求める
ROC曲線の座標からAUC(Area Under Curve:曲線の下の面積)を求める
c.この時点でのデータを確認します。赤枠は逆引き8-5を参照ください。
曲線の下の面積を求めるためには以下のように12に分割した長方形の面積を個別に計算します。横の長さはここでは全て1/12 = 0.0833 です。12は故障の無いレコード数です。縦の長さは1単位 1/8 = 0.125です。8は故障したレコード数です。
d.[フィールド作成]ノードを編集します。関数@OFFSET(フィールド,1)で1レコード上の値を参照します。
[プレビュー]します。2レコード目だけ注目すると縦の辺が0.125でこのあと作る横の辺(1-特異度)が0.0083。2辺を掛けると曲線の最初に作られる長方形の面積(例ではオレンジ)が求められます。
e.[フィールド作成]ノードを編集します。長方形の横の辺は1/12で固定したくなりますが全レコード数は20で長方形を作れるのは右スライドした場合のみ。差が出現した時だけになるよう左の座標からの引き算にします。
f.[フィールド作成]ノードを編集します。個別の長方形の面積を求めます。
g.[レコード]ノードを編集します。長方形の面積を合計します。
AUCからGini(AR値)を求める
そもそもGini係数はROC曲線ではなくゲインチャートの以下の面積を示します。企業の倒産リスクを判定する際にAR値として利用されるこの値はAUCからシンプルな式で求めることができます。
h.[レコード結合]ノードを編集します。GiniをAUCから求めます。 (AUC - 0.5) * 2 で計算できます。
注意事項
別の目的でストリームにアレンジしやすいように、今回は直接計算に不要な処理(TNとFN)をストリームに含めています。精度分析で求められるAUCやGiniをあえて手計算しているのはCADSなどの自動処理でモデル性能を監視する際に判断基準として利用するからです。
4.参考情報
モデルの性能指標について解説した記事
SPSS StatisticsでROC分析を行う
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)