ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

決定係数R2の誤解: 必ずしも相関の2乗という意味でなく,負にもなるし,非線形回帰には使えない

ライターさん(最終更新日時:2016/10/25)投稿日:

  • ナイス!:

    8

  • 閲覧数:76650

印刷用のページを表示する

R2乗値
執筆責任:井口豊(長野県岡谷市・生物科学研究所

複数の定義があり,注意すべき統計量として,ここに述べる決定係数以外にも, 四分位数がある。それについては,以下の知恵ノート参照。

決定係数を回帰直線からのデータのバラツキ指標だと誤解する場合があるので,そうではないことを示す解説を別の知恵ノートに記述した。

決定係数の算出において,群馬大・青木繁伸氏が Excel のバグとして紹介したウェブページ,および,産総研の工藤祐揮氏が「Excel のバグを確認してみる」として書いたウェブページは,現在では存在しない。しかしながら,決定係数の定義を検討する上で,これらのページのデータや考察は重要な問題を提起しているので,ここで改めて取り上げている。

タイトルにも書いたが,2乗と言っても,計算式が必ずしも2乗となるわけではなく,便宜上,決定係数(coefficient of determination)をR2乗と表記するのである。その点をまず,きちんと理解しておいてほしい。

この問題に関しては,私の研究室のウェブページ解説も参照してほしい。


R2は負にならないと安易に思う人,言う人は,勉強不足であり,特に,大学教員がそれでは困る。

例えば,高崎経済大学経済学部の阿部圭司氏のように,自分で決定係数の定義や計算式をチェックせずに,他人(後述する青木氏)の意見の受け売りで,Excelのバグだと決め付けてしまう(阿部氏による,Excelによる回帰分析のページ,上から1/3あたり※注意1),お粗末な教員がいると情けなく思う。大学の先生なら,他人のウエブページのコピペみたいな話で済ませずに,その定義や計算式を示して,どこが間違いだと言うのか,正確に述べて欲しいものである。あるいは,複数の定義に従って決定係数を学生に計算させてみて,それぞれの結果の特徴を論じさせるようなことがあっても良いはずである。そのようなことをせずに,バグで片付けてしまい,それでExcelの使い方を学生に教えているとしたら,ちょっと恥ずかしい。

決定係数に関して,最大の誤解は,
「決定係数は相関係数の二乗だから負(マイナス)にならない」
という解釈である。

しかしこの解釈は二点で明らかな間違いである。

まず第一に,後述するように,決定係数には複数の定義が存在し,必ずしも相関係数の二乗とはならない。第二に,負にならない定義の決定係数であっても,それは相関係数の二乗とは限らない。これらの点を考慮すると,ウィキペディアの決定係数の説明で,決定係数に複数の定義があることを指摘している点は正しいと言える。

この点に関しては,統計学の基礎的な教科書をよく読んでほしい。
「相関係数の二乗は,決定係数」
と書かれることは,しばしばあるが
「決定係数は,相関係数の二乗」
と書かれることは,ほとんどないはずである。正しく説明されている教科書ならば,後者のように説明されていないはずである。このニュアンスを理解して欲しい。

前述の私のウェブページの補遺1で,定数項ありの回帰直線モデルと,定数項なし(y切片ゼロ,原点通過)の回帰直線モデルの適合度を比較した。おかしな結果を出すのはExcelではなく,むしろ統計ソフトRによる決定係数であることを示した。 

LibreOfficeで,LINEST関数から算出される決定係数は,OpenOfficeとは異なり,ExcelのLINEST関数から算出される決定係数と同じ定義で計算されていることも知ってほしい。

この問題に関しては,青木氏がEXCELのバグとして報告したため,ネット上でも話題を呼んだようである。しかし,この「バグ」という意味を誤解している人も多いようである。青木氏に伺ったところ,計算ミスとかプログラムエラーというよりも,決定係数で負の値が出る定義を採用しているのを,青木氏としては支持しない,という意味で,「バグ」と呼んだようである。ところが,この記述を見た多くの人は,前者(計算ミスとかプログラムエラー)の意味と捉えているようなのである。

これは,どのような定義を採用するか,という主義主観の問題とも言え,負になる決定係数の定義でも構わない,と主張することもできる。青木氏は,メールの中で,「個人個人がどう考えるかということ」,と述べていたが,結局のところ,そうしか言いようがない問題であり,どの決定係数の定義が正しく,どれが正しくない,といった問題ではないのである。

例えば,Kvalseth (1985)は,R2の定義として8種類挙げているが,このうち,原点通過(y切片ゼロ,定数項なし)の回帰直線に対して,ソフトによって以下のような定義が使われる。ただし,バージョンによって変更があるかもしれない。

  • R2-1・・・Excelグラフや医療統計解析ソフトウェア GraphPad Prism
  • R2-5・・・OpenOffice calcや生物・古生物統計ソフトPAST
  • R2-7・・・Excelワークシート,統計ソフトR,SPSS,LibreOffice calc
このうち,R2-1は負の値も取る。Prismにおいては,原点通過回帰直線のR2は意味が曖昧なのでという理由で,デフォルトではR2を算出しない。R2-1とR2-7の定義を挙げ,どちらも問題点があることを指摘している。しかし,あくまで求めたい場合は,非線形回帰のオプションで求めるようになっている。その場合,R2-1を使うので,Excelグラフと同じく,負の決定係数も出てくる。 GraphPad Curve Fitting Guide の p.189 には,わざわざ
と書いてある。負になることを承知の上で使う典型例である。

相関係数の二乗として定義されているのは,R2-5である。決定係数が負にならない理由として,相関係数の二乗だから,という説明の仕方は,一般論としては正しくないと分かる。

また,Excelとの互換性を追及しているはずのOpenOffice calcで,Excelと異なる定義が使われるのも興味深い。

後述するように,R2-7は負にならないが相関係数の二乗でもない。定義式を確認せずに,ソフトウエアだけを頼りにして,このR2-7を算出した場合,これが相関係数の二乗だと思っている(思い込んでいる)人が多いようだ。

産総研の工藤氏も,ウェブページ「Excelのバグを確認してみる」で,ExcelグラフでのR2の計算例を示した上で,「R2の値は正しくでない」と結論したが,R2に複数の定義があることには全く言及しなかった。もしかしたら,彼もまた,その複数定義の存在を知らなかったのかもしれない。後述するように,Excelでは,ワークシートとグラフで,異なる定義のR2を採用しているのである。

決定係数の定義には複数(多数)あることを理解すべきであるし,この件に関し質問されたら,それを説明した上で,自らの見解を述べるべきだろう。以下は,そのような観点からの私の解説である。

決定係数R2は,回帰モデルの適合度を表す指標とされる。しかし,それを単純に,相関係数の2乗と考えてしまう例が,しばしば認められる。それが決定係数に関する誤解の第一点である。

知恵袋の回答でも,そのような説明を与えている場合がある。

マイクロソフト コミュニティ(Microsoft Community)でも,R2は絶対負にならない,という回答があった。

これは,特に,原点通過,定数項なし,つまり,切片ゼロの回帰直線での,R2を考えるとき問題となる。

y方向の変動を,yの平均を基準とするか,y=0を基準とするかで,二通りの定義があるからだ。もちろん,定義によって,R2も異なってくる。

後者は,EXCELの回帰直線グラフでの定義。もちろん,EXCEL以外でも使われる定義である。ただし,最新のEXCELではどう定義されているか知らない。

しかし,この後者の場合,R2が負になる場合もあるのだ。これを,バグと言うべきかどうかでも議論がある。

この知恵ノートに,数式を書ききれないので,私のHPの解説を参考にしてほしい。

ここでは,青木氏がバグであると指摘した計算データで,統計解析ソフトRを使い,相関係数と決定係数の関係を具体的に調べてみよう。

以下のデータ

x: 1 2 3 4 5 6 7 8 9 10
y: 1 2 2 4 3 3 2 2 3 4

まず,相関係数を求める。

EXCELなら,CORREL関数で求められる。

統計解析ソフトRを使えば,
x=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
y=c(1, 2, 2, 4, 3, 3, 2, 2, 3, 4)
cor(x, y)  # 相関係数

いずれでも,
0.531816
と算出される。

したがって,相関係数の2乗は,
cor(x, y)^2
0.2828283

この相関係数の2乗値は,当然ながら,統計解析ソフトRを使っても,EXCELを使っても同じになる。

一方,統計解析ソフトRでは,原点通過の回帰式を求めると,決定係数R2も算出される。この場合,lm関数にオプション-1を入れれば良い。

reg<- lm(formula = y ~ x-1) 
summary(reg)

あるいは,R2だけ取り出すなら
summary(reg)$r.squared

そうすると,R2は
0.8424129

これは,青木氏が示したSPSSの計算結果と同じであり,しかも,相関係数の2乗でないどころか,大きさも全く異なる数値だと分かる。

ただし,困ったことに,統計解析ソフトRの決定係数の説明でも,例えば,九大・粕谷英一氏の解説のように,「r.squaredは相関係数rの二乗つまり決定係数」という安易な説明を与えている場合があるので注意が必要である。本人は承知の上で,簡単に述べているのだろうが,初学者は,この言葉を鵜呑みにして,いつでもそうなるものと思い込んでしまうだろう。

では,EXCEL回帰直線の原点通過グラフは,負の決定係数R2が出るので,計算にバグがあるのだろうか?このとき,統計ソフトRの計算のほうが正しいのだろうか?

私個人としては,EXCEL回帰分析のバグ?で述べたように,バグと言うより,定義の違いに由来すると考える。

例えば,以下のデータを,EXCEL2003を使って分析してみよう。このEXCELは,青木氏のデータを使うと,原点通過の回帰直線のグラフでは,負の決定係数R2が出てくるバージョンである。

x y
10 30
20 10
30 30
40 50
50 30
60 60
70 90
80 110
90 90
100 110

回帰直線で,y切片有りと,y切片無しで,比較したのが下図。

定数項の有無の回帰直線

小数点以下14桁まで出しても,決定係数は同じ
R2 = 0.83938642003158

両方のグラフ自体が全く同じに見えるが,実は,このデータを使うと,定数項有りのモデルでも切片はゼロなのである。

手計算は面倒だと思う人は,例えば,数式処理ソフトMaximaを使って分析すると良い。

M: matrix(
   [10, 30], 
   [20, 10], 
   [30, 30], 
   [40, 50], 
   [50, 30], 
   [60, 60], 
   [70, 90], 
   [80, 110], 
   [90, 90], 
   [100, 110] );

lsquares_estimates (
   M, [x,y], y = a*x+b, [a, b]);
Maximaによる定数項有りの回帰
Maximaでは,パラメータが正確に分数で出力され,定数項もゼロと分かる。

このデータを,統計ソフトRを使って,単純に,定数項有りの計算で行うと,パラメータは次のように出力される。

(Intercept)   -2.696e-14
x                 1.109e+00

つまり,y切片は
0.00000000000002696
となって,完全にはゼロ表示されない。

余談だが,このように,データをモデル式にフィティングさせるなら,統計ソフRトより,Maximaのほうが優れているかもしれない。最近の私の論文
Iguchi (2013)
でも,不連続線形回帰モデルの分析にMaximaを使った。

話を元に戻して,上のデータを使って,EXCEL分析ツールの回帰分析で計算すると

定数項有り
重決定 R2  0.83938642

定数項無し
重決定 R2  0.9606122073

両者が異なると分かる。

一方,統計ソフトRを使って分析すると

定数項有り
Multiple R-squared: 0.8394
  
定数項無し
Multiple R-squared: 0.9606

やはり両者は異なり,EXCEL分析ツールの結果と一致する。

EXCEL分析ツールの回帰分析や統計ソフトRでは,原点通過するかしないか,つまり,y切片が有るか無いかで,決定係数R2の定義が全く異なるのである。したがって,上図のように,同一データに対して,y切片が有っても無くても同一の回帰式が得られ,同一の残差となっても,決定係数は異なるという奇妙な状態も起きうるのである。

これは極端な例だが,元の式のy切片がゼロに近いと,EXCEL分析ツールの回帰分析や統計ソフトRでは,切片ゼロのオプションにすると,決定係数R2が極端に変化しすぎることを示唆している。

このような場合は,むしろ,バグと言われるEXCELグラフの決定係数R2のほうが妥当である気がする。

次の論文の p.35 では,R2が負になる定義を認めた上で,それは不適当なモデルを選んだときと説明しているが,私もそのような解釈に賛成である。
Motulsky H. and Christopoulos A. (2004)
Oxford University Press

決定係数に関する誤解の二点目は,決定係数は,線形モデルであることを仮定しており,非線形モデルの適合度評価には使えない,ことである。これも案外知られてないようだ。

例えば,煙 草の問題を考 えよう,というサイトの中の,統計情報の評価というページでも,
>決定係数を使用すれば、非線形のモデル式を評価 することができる
と間違えて説明している。

青木氏が,この誤用を何度も指摘したこと,学術論文でも,その誤用が指摘されていることを,以下に示した。


また一方で,決定係数はXYデータが直線関係でなければ使えない,というのも必ずしも正確な表現ではない

例えば,以下のようなデータを考えてみよう。

x y
1 5
2 1
3 15
4 10
5 30
6 28
7 60
8 58
9 85
10 110

これを
放物線1
という二次関数(放物線)で多項式(polynomial)近似してみる。

EXCELでやると,
 放物線2
と近似されてしまう?そうとも限らない。

なお,このような多項式は,パラメータに関して線形であり,最小二乗法は,回帰と相関の式(1a)(1b)に示したように,パラメータを偏微分するので,線形回帰(linear regression)として扱って良い。

まず,統計ソフトRを使い,相関係数の2乗と決定係数を比べてみる。

x<- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
y<- c(5, 1, 15, 10, 30, 28, 60, 58, 85, 110)
reg<- lm (formula = y ~ 1 + I(x^2))   # y=a*x^2 + b

cor(x,y)^2  #相関係数の2乗
0.8955722

summary(reg)$r.squared  #決定係数
0.9675653・・・(1)

相関係数の2乗は,上記データをEXCELのCORREL関数で求めて2乗しても同じである。つまり,相関係数の2乗と決定係数は,2次関数の場合は異なる。

このとき,グラフは下図のようになる。
 多項式回帰(放物線)

では,この決定係数を機械的に求めるには,どうすれば良いだろうか?

それには,まずxの2乗のデータを計算する。

x x^2 y
1 1 5
2 4 1
3 9 15
4 16 10
5 25 30
6 36 28
7 49 60
8 64 58
9 81 85
10 100 110

そうして,
 変換式
と変数変換する。

その上で, 
直線1
という直線近似すれば良いのである。

統計ソフトRを使うと
X<- x^2
reg<- lm (formula = y ~ X)  # X=x^2 とおいて,y=a*X+b
とすれば良い。

その上で,
cor(X,y)^2  #相関係数の2乗
0.9675653

summary(reg)$r.squared  #決定係数
0.9675653

見事に,両者が一致し,前述の(1)の決定係数とも一致した。グラフは,下図のようになる。先ほどのグラフと比べると,パラメータが全く同じであると分かる。
 直線回帰(変数変換)

つまり,多項式回帰における決定係数とは,データ分布が直線になるように変数変換し,その回帰直線の相関係数の2乗を求めたことになる

EXCELで同様な分析をするなら,xの2乗とyの直線回帰式をSLOPE関数とINTERCEPT関数で求め,決定係数もその変換データを使い,CORREL関数の2乗値を求めれば良い。

回帰と相関に述べたように,通常最小二乗法(Ordinary Least Square: OLS)では,y軸方向の変動しか問題とならないため,このようなxの変数変換が可能なわけである。

なお,原点通過の回帰直線で,統計ソフトによって,R2が異なる問題に関しては,次の論文でも指摘されていて,R2の定義が複数存在することも分かる。

J. G. Eisenhauer (2003)
Teaching Statistics 25: 76–80.

さらに,次の論文では,歴史的に8種類の異なる定義のR2が使われてきたことを紹介していて,頻繁に引用される論文である。

T. O. Kvalseth (1985)
Cautionary Note about R2
The American Statistician 39: 279-285

この8種類の定義の中で,ピアソン積率相関係数の2乗と定義されるのが式(5)の決定係数であり,これならば負にならない。しかし,8種類のうちの一つの定義だけ取り上げて,決定係数は絶対負にならない,というマイクロソフト コミュニティの回答は,短絡的と言うべきだろう。

次の論文では,最初のページで,非線形回帰では,全変動が回帰変動と残差変動の和にならない,ことを指摘している。

Spiess and Neumeyer (2010)
An evaluation of R2 as an inadequate measure for nonlinear models in pharmacological and biochemical research: a Monte Carlo approach
BMC Pharmacology 10:6  (オープンアクセス, 全文閲覧可)

さらに,UCLA のSAS Libraryの中のNonlinear Regressionの解説では,通常のR2に代わり,偽R2(Pseudo-R2)が定義されている。

この解説をしているUCLA のThe Institute for Digital Research and Education (IDRE) は,以下のページで,非常に多くの擬R2(Pseudo-R2)を紹介している。


逆に言えば,通常の決定係数でさえ様々な定義があるのに,ましてや偽R2では,それをかなり慎重に扱わないと,トンチンカンな結論を出しかねない。

以上,数式がさっぱり分からない,とか,それを見るのも面倒,という人は,R2を使うとき,このような問題点があることだけでも理解しておいてほしい。


このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

この知恵ノートのライター

グレード

グレード知恵ノートのグレード:2-3

iguchi_yuさん男性

ピックアップ

【パズドラ】無課金プレイで強...
無課金で、あまり無茶なリセマラをせずにパズドラで強くなり...
Android向けアプリ Yahoo!ブラ...
基本的な使い方(メニュー・操作)便利な使い方オススメの使...
幼稚園の補助金について -私立...
この知恵ノートについて 私が幼稚園の補助金、「私立幼稚園就...
本文はここまでです このページの先頭へ