🎃

マシューズ相関係数とピアソンの積率相関係数の一致を示す計算過程

4 min read

1. マシューズ相関係数

マシューズ相関係数(Matthews Correlation Coefficient)は、機械学習における二値分類タスクの評価指標の一つです。観測値と同じく、予測値が二値である場合に用います。

0と1の割合が大きく偏った不均衡データに対して、正解率(Accuracy)で予測性能を測るのは適切でない、というのはよく知られている事実です。

一方、不均衡データにも用いられる評価指標であるF1-scoreについても、1が多数を占めるようなデータ(普通はそのようにラベル付けしませんが)に対しては、問題が生じる可能性があります。具体的には、常に1を返すモデルのF1-scoreが高くなってしまいます。

そのような問題を生じない評価指標として、マシューズ相関係数が挙げられます。
これは、混同行列の要素を用いて以下のように定義されます。

\mathrm{MCC} = \frac{TP \times TN - FP \times FN}{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}

マシューズ相関係数は-1から1の範囲の値を取り、予測値と観測値が完全に一致する場合に1となるため、大きいほど予測モデルの性能がよいとみなせます。

統計学において、二値変数同士の相関を測る指標として、四分点相関係数あるいは\phi係数と呼ばれるものがありますが、それを混同行列に適用したものはマシューズ相関係数と同じです。

上式の定義は直感的に理解しにくいですが、何の事は無い、単に予測値と観測値の(ピアソンの積率)相関係数を取ると、マシューズ相関係数に一致します。

その事実に言及している記事はインターネット上にも見られますが、計算過程まで示しているものは簡単に見付からなかったので、本記事で記述します。

余談ですが、不均衡データに用いる評価指標としては、よりシンプルな以下のBalanced Accuracyもあります。

\text{Balanced Accuracy} = \frac{1}{2} \left( \frac{TP}{TP+FN} + \frac{TN}{TN+FP} \right)

2. 一致を示す計算過程

まず、2変数(x, y)のデータ列があったとき、x, yのピアソンの積率相関係数は以下のように定義されます。

r_{xy} = \frac {\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})} {\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2}}

これを予測値\hat{y}と観測値yについて計算したr_{\hat{y}y}が、マシューズ相関係数に一致することを示します。

(1) 分母の左部分に相当する\sqrt{\sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})^2}
(2) 分母の右部分に相当する\sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2}
(3) 分子に相当する\sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})(y_i - \bar{y})

のそれぞれについて、混同行列の要素を使って地道に計算するだけです。

  • (1) \sqrt{\sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})^2}

\hat{y}_iが1であるものの数は(TP+FP)、0であるものの数は(TN+FN)ですから、以下のように計算できます。

\sqrt{\sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})^2} = \sqrt{(TP+FP)(1 - \bar{\hat{y}})^2 + (TN+FN)(0 - \bar{\hat{y}})^2}

そして、\bar{\hat{y}} = \frac{TP+FP}{TP+TN+FP+FN}と表せるので、これを代入すると、

\begin{aligned} \sqrt{\sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})^2} &= \sqrt{ (TP+FP)\left(1 - \frac{TP+FP}{TP+TN+FP+FN}\right)^2 + (TN+FN)\left(0 - \frac{TP+FP}{TP+TN+FP+FN}\right)^2 } \\ &= \sqrt{ \frac{(TP+FP)(TN+FN)^2}{(TP+TN+FP+FN)^2} + \frac{(TN+FN)(TP+FP)^2}{(TP+TN+FP+FN)^2} } \\ &= \sqrt{\frac{(TP+FP)(TN+FN)}{TP+TN+FP+FN}} \end{aligned}

となります。

  • (2) \sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2}

y_iが1であるものの数は(TP+FN)、0であるものの数は(TN+FP)ですから、以下のように計算できます。

\sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2} = \sqrt{ (TP+FN)(1 - \bar{y})^2 + (TN+FP)(0 - \bar{y})^2}

そして、\bar{y} = \frac{TP+FN}{TP+TN+FP+FN}と表せるので、これを代入すると、

\begin{aligned} \sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2} &= \sqrt{(TP+FN)(1 - \frac{TP+FN}{TP+TN+FP+FN})^2 + (TN+FP)(0 - \frac{TP+FN}{TP+TN+FP+FN})^2} \\ &= \sqrt{\frac{(TP+FN)(TN+FP)^2}{(TP+TN+FP+FN)^2} + \frac{(TN+FP)(TP+FN)^2}{(TP+TN+FP+FN)^2}} \\ &= \sqrt{\frac{(TP+FN)(TN+FP)}{TP+TN+FP+FN}} \end{aligned}

となります。

(1)と(2)の結果から、r_{\hat{y}y}の分母は、

\frac{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}{TP+TN+FP+FN}

となります。マシューズ相関係数の片鱗が見えますね。

  • (3) \sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})(y_i - \bar{y})

以下のように、混同行列の各要素に関して和を計算すると、

\begin{aligned} \sum_{i=1}^{n} (\hat{y}_i - \bar{\hat{y}})(y_i - \bar{y}) &= TN \left(0 - \bar{\hat{y}} \right) \left(0 - \bar{y} \right) + FP \left(1 - \bar{\hat{y}} \right) \left(0 - \bar{y} \right) + FN \left(0 - \bar{\hat{y}} \right) \left(1 - \bar{y} \right) + TP \left(1 - \bar{\hat{y}} \right) \left(1 - \bar{y} \right) \\ &= \frac {TN(TP+FP)(TP+FN) - FP(TN+FN)(TP+FN) - FN(TP+FP)(TN+FP) + TP(TN+FN)(TN+FP)} {(TP+TN+FP+FN)^2} \\ &= \frac {(TP \times TN - FP \times FN)(TP+FN) + (TP \times TN - FP \times FN)(TN+FP)} {(TP+TN+FP+FN)^2} \\ &= \frac{TP \times TN - FP \times FN}{TP+TN+FP+FN} \end{aligned}

となります。

(1)(2)(3)を合わせると、

r_{\hat{y}y} = \frac{TP \times TN - FP \times FN}{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}

となり、マシューズ相関係数の定義に一致することが示せました。

以上です。