【統計のモヤモヤ #2】決定係数R²が低いとフィッティングしてはいけない?実例で理解するR²の本当の意味

統計・機械学習

はじめに

 実験データを元にフィッティングを行い、グラフを描いたときに決定係数 $R^2$(R2、coefficient of determination)がよく併記されています。
もし $R^2 = 0.99$ のように1に近い値なら安心ですが、もし $0.4$ くらいだったらどうでしょうか。
先生や共同研究者から、こんなツッコミを受けたことはありませんか?

  • 「こんなに決定係数が低いのに、このフィッティングは本当に正しいの?」
  • 「別のモデルを探したほうがいいんじゃない?」

このツッコミに対してあなたならどう答えますか?
修士の頃に実験を本格的にやり始めた僕はボコボコにされた記憶があります。

この記事を読めば、$R^2$ の本当の意味を理解でき、フィッティング関数の選択の正しさは決定係数$R^2$では判断できないことが理解できます。
ツッコミに対しても適切に答えることができるようになります。

おさらい : 決定係数$R^2$の定義

決定係数は、よく分からないまま使っている人が多い印象です。
wikipediaから引用すると、下記です。

決定係数
けっていけいすう
: coefficient of determination、R2)は、統計学において、独立変数(説明変数)が従属変数(目的変数)のどれくらいを説明できるかを表す値である[1]寄与率と呼ばれることもある。標本値から求めた回帰方程式(モデル)のあてはまりの良さの尺度として利用される[2]

式で表すとこうなるようです。

R21i=1N(yifi)2j=1N(yjy¯)2

僕はすぐには理解できなかったです。次節以降で解析する場面を踏まえつつ解説していきます。

ばらつきは情報を持っている

日本人に対する統計的なデータが手元にあるとします。
イメージはこんな感じです。

例えば、“地毛の色”という項目があったとします
日本人の殆どは黒髪なので、このデータには殆ど変化がありません。
上の表だと1列がほぼ”黒”で埋まるわけで、ここから何か情報を引き出すのは難しそうです。

“身長”という項目はどうでしょうか?
身長は人によって違うので、ばらつきが大きいです
例えば、平均身長は重要な意味を持ちます。色んな身長の人がいる中で平均は一つの基準として考えられるからです。
また、”女性”と”男性”に分けて”身長”の値を見ても色々な意味のある傾向をひきだせそうです。

解析では、「ばらつきの中にある規則性を見つける」ことが重要です。
そのためにフィッティングを行うのです。

フィッティングにより分散を説明する

ある条件xを振りながら、yの値を10点取得したとします。
yをxに対してプロットしたとします。こんなイメージです。

取得データの例。線形フィットしたくなるはず。
x=0-10、y=1.5x +2として、ノイズを載せてデータ生成

 この例だとyの分散は26.6で、これがyの持つ情報を表していると考えられます。
y= ax +bという関数を仮定してフィッティングを行ってaとbの値を求める、とします。
この例ではa= 1.48,b=3.44と求まりました。

 求めたaとbの値とxを使って新しいデータy’を生成できます。(y’= 1.48x +3.44 )
y’の分散は22.3と求まります。この値は、y= ax +bという関数で説明できる分散といえます。

今回のような切片を含む線形回帰では、フィッティングモデルによって説明された分散を元の分散で割った値が決定係数$R^2$と一致します。一般には、決定係数は「残差平方和」(yとy’の差分の二乗和)と「全平方和」(yとyの平均の差の二乗和)から定義されます。

$R^2$が悪いとダメなのか?

 最初の例で決定係数が0.4ということは、分散の40%はフィッティングで説明できて残りの60%は説明できないということです。説明できない部分の原因は様々ですが、例えば取得したデータは外乱によりノイズが載っているだけかもしれません。そうであれば、測定にノイズが載ることとフィッティング関数の選択の正しさは関係ありません。

決定係数$R^2$はフィッティングによる分散の説明できる割合いであって、フィッティング関数の選択の正しさを表してはいないのです。

フィッティング関数が正しいかどうかはどうやって判断すればいいでしょうか?
ざっと思いつくものでは、AIC(Akaike’s Information Criterion,情報基準量)を基準にして複数モデルを比較する、ドメイン知識を活用して物理的な妥当性を主張する、正則化してモデルの複雑さを抑えることでフィッティングを改善する等があります。

ただし、これさえ確認すれば大丈夫という万能なものはなく、最後は解析している人の考えとそれを適切に人に説明できるかという点が一番大事です。
この点は、モデル選択の話にもなるので、別記事で詳しく解説出来ればと思います。

まとめ

本記事では決定係数の$R^2$の定義と意味について解説しました。
・データのばらつきは情報をもっている
・決定係数はデータのばらつきをフィッティングで、どこまで説明できるかを表している
・決定係数$R^2$だけではフィッティング関数の選択の正しさは判断できない

 冒頭で書いたような指摘を受けた時は、「決定係数からフィッティングの正しさは議論できません!」と言うのは、正しいですが雰囲気がぴりっとしそうなので、あまりおススメしません。
 「–という理由でデータにノイズがのっているようで、そのために決定係数は悪くでていますが、フィッティング関数の選択は妥当だと考えています」くらいの回答がいいと思います。

参考文献

 スタンダードな統計の教科書です。永田先生は他にも教科書を執筆されていますが、どれも記述が簡潔でわかりやすい印象があります。この本も他の統計の教科書よりもとっつきやすいと思います。
本記事はイメージ優先で数式はきちんと説明しなかったので、そちらを抑えたい方にも良いです。

実際の統計解析ではPythonやRといったプログラミング言語の活用が必須と言えます。
体系的に学びたい方は、オンライン講座を活用するのも一つの方法です。

本ブログでは、データ解析する時につまりそうな統計の話題についても解説していきます。

コメント

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