各変数において,平均値からの偏差を計算すると,表 1 のようになる。
ケース番号 | $X_{1}$ | $X_{2}$ | $Y$ | $X_{1}-\bar{X}_{1}$ | $X_{2}-\bar{X}_{2}$ | $Y-\bar{Y}$ | $\hat{Y}$ |
---|---|---|---|---|---|---|---|
1 | 1.2 | 1.9 | 0.9 | $-$4.2 | $-$1.4 | $-$1.3 | 0.939 |
2 | 1.6 | 2.7 | 1.3 | $-$3.8 | $-$0.6 | $-$0.9 | 1.250 |
3 | 3.5 | 3.7 | 2.0 | $-$1.9 | 0.4 | $-$0.2 | 1.926 |
4 | 4.0 | 3.1 | 1.8 | $-$1.4 | $-$0.2 | $-$0.4 | 1.856 |
5 | 5.6 | 3.5 | 2.2 | 0.2 | 0.2 | 0.0 | 2.298 |
6 | 5.7 | 7.5 | 3.5 | 0.3 | 4.2 | 1.3 | 3.465 |
7 | 6.7 | 1.2 | 1.9 | 1.3 | $-$2.1 | $-$0.3 | 1.864 |
8 | 7.5 | 3.7 | 2.7 | 2.1 | 0.4 | 0.5 | 2.744 |
9 | 8.5 | 0.6 | 2.1 | 3.1 | $-$2.7 | $-$0.1 | 2.060 |
10 | 9.7 | 5.1 | 3.6 | 4.3 | 1.8 | 1.4 | 3.596 |
平均値 | 5.4 | 3.3 | 2.2 |
正規方程式は,
$71.98\,b_{1} + 6.46\,b_{2} = 16.58$
$6.46\,b_{1} + 35.30\,b_{2} = 11.44$
となり,これを解いて,$b_{1} = 0.20462$,$b_{2} = 0.28663$ となる。
また,$b_{0} = 2.2 - 0.20462\times 5.4 - 0.28663\times 3.3 = 0.14918$ となる。
すなわち,求める重回帰式は $\hat{Y} = 0.20462\, X_{1} + 0.28663\, X_{2} + 0.14918$ である。
標準化偏回帰係数 $b_{1}'$,$b_{2}'$ は,$S_{yy} = 6.7$ であるから,
$b_{1}' = 0.20462\ \sqrt{\displaystyle \frac{71.98}{6.7}} = 0.67067$,
$b_{2}' = 0.28663\ \sqrt{\displaystyle \frac{35.3}{6.7}} = 0.65793$ である。
偏回帰係数が $0$ であるという帰無仮説の検定に用いる $t$ 値は,それぞれ $27.05056$,$26.53645$ となり( 自由度 $7$ の $t$ 分布に従う ),帰無仮説は棄却される。また,定数項が $0$ の検定の $t$ 値は $2.73685$ で,同じく帰無仮説は棄却される( 有意水準 $5\%$ )。
分散分析は表 2 のようになる。
要因 | 平方和 | 自由度 | 平均平方 | $F$ 値 | 有意確率 |
---|---|---|---|---|---|
回帰 | 6.67164 | 2 | 3.33582 | 823.47652 | $\lt$ 0.00001 |
残差 | 0.02836 | 7 | 0.00405 | ||
全体 | 6.70000 | 9 | 0.74444 |
重相関係数の $2$ 乗は,$R^{2} = 1 - \displaystyle \frac{0.02834}{6.70000} = 0.99577$ となる。
> # データ > X1 <- c(1.2, 1.6, 3.5, 4, 5.6, 5.7, 6.7, 7.5, 8.5, 9.7) > X2 <- c(1.9, 2.7, 3.7, 3.1, 3.5, 7.5, 1.2, 3.7, 0.6, 5.1) > Y <- c(0.9, 1.3, 2, 1.8, 2.2, 3.5, 1.9, 2.7, 2.1, 3.6) > X <- cbind(X1, X2) # 独立変数のデータ行列 > cbind(X, Y) X1 X2 Y [1,] 1.2 1.9 0.9 [2,] 1.6 2.7 1.3 [3,] 3.5 3.7 2.0 [4,] 4.0 3.1 1.8 [5,] 5.6 3.5 2.2 [6,] 5.7 7.5 3.5 [7,] 6.7 1.2 1.9 [8,] 7.5 3.7 2.7 [9,] 8.5 0.6 2.1 [10,] 9.7 5.1 3.6 > p <- ncol(X) # 独立変数の個数 > n <- length(Y) # サンプルサイズ > ## 偏回帰係数について > Sxx <- var(X)*(n-1) # 独立変数間の変動・共変動行列 > Sxy <- var(X, Y)*(n-1) # 独立変数と従属変数の共変動ベクトル > b <- solve(Sxx, Sxy) # 偏回帰係数 > b0 <- mean(Y)-sum(colMeans(X)*b) # 定数項 > Y.hat <- X %*% b + b0 # 予測値 > Syy <- var(Y)*(n-1) # 従属変数の変動 > beta <- b*sqrt(diag(Sxx)/Syy) # 標準化偏回帰係数 > Se <- sum((Y-Y.hat)^2) # 誤差変動 > St <- Syy # 従属変数の変動 > Sr <- St-Se # 回帰で説明される変動 > MSe <- Se / (n-p-1) # 誤差の平均平方 > s <- solve(Sxx) # 逆行列 > SE.b <- sqrt(diag(s) * MSe) # 偏回帰係数の標準誤差 > t.b <- abs(b) / SE.b # H0:偏回帰係数=0 の検定統計量 > df <- n-p-1 # t 分布の自由度 > p.b <- pt(t.b, df, lower.tail=FALSE)*2 # P 値(両側検定) > data.frame(b, SE=SE.b, t=t.b, p=p.b, beta) b SE t p beta X1 0.2046172 0.007564251 27.05056 2.419227e-08 0.6706727 X2 0.2866338 0.010801511 26.53645 2.763814e-08 0.6579264 > ## 定数項について > Mean.X <- colMeans(X) # 独立変数の平均値ベクトル > SE.b0 <- sqrt((1/n + Mean.X %*% s %*% Mean.X)*MSe) # 定数項の標準誤差 > t.b0 <- abs(b0) / SE.b0 # H0:定数項=0 の検定統計量 > p.b0 <- pt(t.b0, df, lower.tail=FALSE)*2 # P 値(両側検定) > c(constant=b0, SE=SE.b0, t=t.b0, p=p.b0) constant SE t p 0.14917563 0.05450634 2.73684913 0.02904999 > ## 回帰の分散分析 > MSr <- Sr/p # 回帰で説明される平均平方 > F <- MSr/MSe # 回帰の分散分析の F 値 > p.F <- pf(F, p, df, lower.tail=FALSE) # P 値 > c(F=F, df1=p, df2=df, p=p.F) F df1 df2 p 8.234765e+02 2.000000e+00 7.000000e+00 4.931875e-09 > R2 <- 1-Se/St > R <- sqrt(R2) > MSt = St / (n-1) > R2.adj <- 1-MSe/MSt > c(R=R, R2=R2, "adjusted R2"=R2.adj) R R2 adjusted R2 0.9978816 0.9957677 0.9945585 > ## トレランスとVIF > r <- cor(X) > VIF <- diag(solve(r)) > tolerance = 1/VIF > data.frame(tolerance, VIF) tolerance VIF X1 0.983576 1.016698 X2 0.983576 1.016698これらの計算手順をまとめた関数 mreg を用いると以下のような出力が得られる。
> mreg(cbind(X, Y)) 偏回帰係数 標準誤差 t 値 P 値 標準化偏回帰係数 X1 0.20462 0.0075643 27.0506 2.4192e-08 0.67067 X2 0.28663 0.0108015 26.5365 2.7638e-08 0.65793 定数項 0.14918 0.0545063 2.7368 2.9050e-02 トレランス X1 0.98358 X2 0.98358 定数項 回帰の分散分析表 平方和 自由度 平均平方 F 値 P 値 回帰 6.671644 2 3.3358218 823.48 4.9319e-09 残差 0.028356 7 0.0040509 全体 6.700000 9 0.7444444 重相関係数 = 0.99788 重相関係数の二乗 = 0.99577 自由度調整済重相関係数の二乗 = 0.99456 対数尤度 = 15.13807 AIC = -22.27614