生物科学研究所 井口研究室
Laboratory of Biology, Okaya, Nagano, Japan
Excel 回帰分析のバグ?定数項なしの補正 R2
井口豊(生物科学研究所,長野県岡谷市)
最終更新:2024 年 6 月 13 日
1. はじめに
まず,回帰分析の決定係数 R2 には,複数の定義があり,ソフトによって,あるいは,同じソフトでもバージョンによって,計算方法が異なり,数値が変わってくるので,その点を念頭に置く必要がある。以下のページを参照してほしい。
- 決定係数 R2 の違い: Excel, OpenOffice, LibreOffice および統計解析ソフト R を用いて
- 決定係数R2の誤解:必ずしも相関の2乗という意味でなく,負にもなるし,非線形回帰には使えない
ここでは Excel 2019 の分析ツールを使い,次のようなデータの回帰分析を実行する。
x | y |
---|---|
1 | 1 |
2 | 30 |
3 | 5 |
4 | 30 |
2. 補正 R2 の計算
補正 R2 (自由度調整済み R2)を計算する。
まず,出力された最初の回帰統計
の表を見る。
回帰統計 | |
---|---|
重相関 R | 0.837423 |
重決定 R2 | 0.701278 |
補正 R2 | 0.367945 |
標準誤差 | 13.48415 |
観測数 | 4 |
補正 R2 は 0.367945 である。
次に,分散分析表
を見る。ここでは,決定係数の計算に必要な部分だけを示す。
自由度 | 変動 | 分散 | |
---|---|---|---|
回帰 | 1 | 1280.533 | 1280.533 |
残差 | 3 | 545.4667 | 181.8222 |
合計 | 4 | 1826 |
ここで,合計分散は出力されないので,次のように計算する。
\begin{align}
合計分散&=\frac{合計変動}{合計自由度}\\
&=\frac{1826}{4}\\
&=456.5
\end{align}
別ページ, 回帰と相関,知っているようで知らない,その本質:Excel の回帰分析を例として
,その中の 7.回帰分析とは
で述べたように,補正 R2 は残差分散の合計分散に対する比を 1 から引いたものである。
\begin{align}
補正R^2&=1-\frac{残差分散}{合計分散}\\
&=1-\frac{181.8222}{456.5}\\
&=0.6017038
\end{align}
これは統計ソフト R で計算しても,そのような値になる。
# R スクリプト
x <- 1:4
y<- c(1, 30, 5, 30)
summary(lm(y ~ x-1))
# 補正 R2
summary(lm(y ~ x-1))$adj.r.squared
# 終了
これは前述の回帰統計表の補正 R2 の 0.367945 とは全く異なる。実は,この補正 R2 は,次のように重決定 R2 を使っても計算できる。
\begin{align}
補正R^2&=1-\frac{合計自由度}{残差自由度}(1-重決定R^2)\\
&=1-\frac{合計自由度}{残差自由度}+\frac{合計自由度}{残差自由度}\times重決定R^2\\
&=1-\frac{4}{3}+\frac{4}{3}\times0.701278\\
&=0.601704
\end{align}
前述の回帰統計表の補正 R2 の 0.367945 は,この計算過程が異なるようだ。
\begin{align}
補正R^2&=1-\frac{合計自由度}{残差自由度}+重決定R^2\\
&=1-\frac{4}{3}+0.701278\\
&=0.3679447
\end{align}
これはバグと言えそうだが,補正 R2 の定義が異なるというケースもありうるので注意が必要だ。