• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

マシューズ相関係数

date: 2020-01-03 excerpt: マシューズ相関係数について

tag: statisticsmccマシューズ相関係数metric


マシューズ相関係数について

概要

  • 混合行列から計算できるカイ二乗検定の数式を変形した指標
  • F1などと同様に非対称データに対してロバストであると言われている
  • /ピアソンの相関係数/が連続値を取れるのに対して、マシューズ相関係数は0 ~ 1のバイナリ表現の対応になる

定義

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

これは

\[|\text{MCC}| = \sqrt{\frac{\chi^{2}}{n}}\]

と同じである

最大値は+1で最悪値は-1である

AUCとの比較

from sklearn.metrics import matthews_corrcoef
from sklearn.metrics import roc_auc_score
data = []
for k in range(1, 12):
    minus_num = k
    plus_num = 12 - k
    y_true = [-1] * minus_num + [+1] * plus_num
    for y_pred in itertools.product(*[[+1,-1] for i in range(len(y_true))]):
        mcc = matthews_corrcoef(y_true, y_pred)
        auc = roc_auc_score(y_true, y_pred)
        data.append( (mcc, auc, plus_num) )
df = pd.DataFrame(data)
df.columns = ["mcc", "auc", "plus_num"]
df.sort_values(by=["auc"], ascending=[False], inplace=True)
df

このようなことをすると、以下の散布図が得られる

このことから、あるAUCの値に対してMCCはある程度のブレがある値を取るが概ね一致することがわかった

google colab

  • colab

参考

  • マシューズ相関係数(Matthews Correlation Coefficient)
  • Matthews correlation coefficient


statisticsmccマシューズ相関係数metric Share Tweet