重回帰分析において,重相関係数の二乗(決定係数ともいうが)は独立変数どもが従属変数をどの程度説明するかを表す。
つまり,重相関係数が 0.5 ということは,独立変数どもが挙って従属変数を説明しようとしているが 0.5^2(Python なら 0.5**2であるが)つまり,0.25(つまり 25 %)しか説明できないということ。これは,ヤバいよね。
なお,重回帰分析の最も単純な場合である回帰分析においては,重相関係数は相関係数の絶対値を取ったものであり,重相関係数の二乗は相関係数の二乗に他ならない。
つまり,独立変数と従属変数の間の相関係数が r の場合,重相関係数は abs(r) であり,重相関係数の二乗(決定係数)は r^2 である。
相関係数の絶対値が 0.7 以上であれば,「強い相関がある」というように判断されるが,「独立変数は従属変数の 0.7^2 = 0.49 つまり,半分以下しか説明できていないのだよ」ということだ。
> x = c(3, 2, 4, 5, 1)
> y = c(1, 3, 4, 5, 6)
> ans = lm(y ~ x)
> summary(ans)
Call:
lm(formula = y ~ x)
Residuals:
1 2 3 4 5
-2.8 -0.9 0.3 1.4 2.0
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.100 2.322 1.766 0.176
x -0.100 0.700 -0.143 0.895
Residual standard error: 2.214 on 3 degrees of freedom
Multiple R-squared: 0.006757, Adjusted R-squared: -0.3243
F-statistic: 0.02041 on 1 and 3 DF, p-value: 0.8955
> cor(x, y)^2
[1] 0.006756757
Multiple R-squared: 0.006757 と cor(x, y)^2 = 0.006756757 ということだ