例題の答え     Last modified: Aug 19, 2015

 各変数において,平均値からの偏差を計算すると,表 1 のようになる。

表 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 のようになる。

表 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$ となる。


R を用いると以下のようになる。
> # データ
> 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


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI