エクセルの回帰分析を自力でやってみる(3)分散分析表

 エクセルの回帰分析、今回は分散分析表の値を計算する。

f:id:Chemstat:20200808193354p:plain

  これまでは、以下のデータを用いて回帰直線の傾きと切片回帰統計の値を求めた。今回の計算でも、平均値や偏差平方和は前回の値を用いているので必要であれば参照してほしい。

 f:id:Chemstat:20200804164539j:plain 

 x

(説明変数)

1 2 3 4 5

 y

(被説明変数)

2 6 6 9 6

 \hat{y}

(回帰による予想値)

3.6 4.7 5.8 6.9 8

 今回は分散分析表の項目について計算をする。この分散分析表は「説明変数の影響がゼロである」ことを帰無仮説として、F検定を用いて有意であるかを判定している。

f:id:Chemstat:20200808224213j:plain

 この有意差を評価するF検定はややこしいのでとりあえず、計算方法を先に説明したいと思う。

 自由度

 回帰の自由度は説明変数の数なので、切片を除くk-1になり1。

 残差の自由度はn-kなので3になる。

 自由度の計算について、なんとなくわかる事にはわかるのだけれど、いまだに腑に落ちていないのでこれは勉強が必要である。

 

変動

 変動は前回示したように

全変動SS_{total} = 回帰の変動SS_{A} + 残差SS_{\varepsilon}

で表され、データのばらつきに対して、回帰の変動と残差がどのように寄与しているかを意味している。それぞれ独立に計算してもちゃんとSS_{total}=SS_{A}+SS_{\varepsilon}が成り立つ。

f:id:Chemstat:20200809234149j:plain

回帰の変動(処理平方和): \begin{align*} SS_{A} = {\displaystyle \sum_{i=1}^n(\hat{y}_i-\bar{y})^2 }\scriptsize =  (3.6-5.8)^2 + (4.7-5.8)^2 + (5.8-5.8)^2 + (6.9-5.8)^2 + (8-5.8)^2 \normalsize= 12.1 \end{align*}

残差の変動(誤差平方和): \begin{align*} SS_{\varepsilon} = {\displaystyle \sum_{i=1}^n(y_i-\hat{y}_i)^2 }\scriptsize =  (2-3.6)^2 + (6-4.7)^2 + (6-5.8)^2 + (9-6.9)^2 + (6-8)^2 \normalsize= 12.7 \end{align*}

 総変動(総平方和): \begin{align*} SS_{total} = SS_{A} +SS_{\varepsilon}={\displaystyle \sum_{i=1}^n(y_i-\bar{y})^2 } \end{align*}

 \begin{align*} \scriptsize =  (2-5.8)^2 + (6-5.8)^2 + (6-5.8)^2 + (9-5.8)^2 + (6-5.8)^2 \normalsize= 24.8 \end{align*}

 

分散

 分散は変動を自由度で割ったものである。「分散」という言葉からわかるように、「回帰の影響」と「残差」の「不偏分散(らしきもの)」を計算している。細かい意味は後で説明し、とりあえず計算結果だけ示すと以下のようになる。

 回帰の分散(処理平方平均): \begin{align*} MS_{A} = \frac{SS_{A}}{k-1} =  \frac{12.1}{2-1} \normalsize= 12.1 \end{align*}

 残差の分散(誤差平方平均): \begin{align*} MS_{\varepsilon} = \frac{SS_{\varepsilon} }{n-k} =  \frac{12.7}{5-2} \normalsize= 4.233333... \end{align*}

 

観測された分散比

 回帰の分散MS_{A}を残差の分散MS_{\varepsilon}で割って、F検定の統計量としている。細かくは後程説明するが、分子が「回帰と誤差の分散」、分母が「誤差の分散」に対応し、回帰の影響が小さければ分子は「誤差の分散」に近づくため、F値が1に近くなる。F値が1に近いと帰無仮説が採用される、つまり「説明変数の影響がゼロである」ことになる。

 自由度k-1n-1のF分布に基づき判定するが、原理上MS_{A}MS_{\varepsilon}よりも大きくなるので、片側検定で実施することも注意が必要だ。

 観測された分散比: \begin{align*} F = \frac{MS_{A}}{MS_{\varepsilon}} =  \frac{12.1}{4.23333} \normalsize= 2.858268... \end{align*}

f:id:Chemstat:20200810023533j:plain

有意F

 有意Fは自由度k-1n-1のF分布から導かれるp値に相当し0.189485が得られる。

f:id:Chemstat:20200810023536j:plain

分散分析の考え方

 ここからは、なぜこの分散分析表が「説明変数の影響がゼロである」ことをの検定に対応するのかを解説したいと思う。私は一元配置分散分析の解説を元に理解し、回帰でも同様という認識でいるので、それが間違っているようならご指摘いただけると嬉しい。

 まず最小二乗法で得られた回帰式y=\hat{b}x+\hat{a}をすべてのデータの平均\bar{x},\bar{y}からの差という考えで下記のように書き換える。

f:id:Chemstat:20200810083602j:plain

 そしてこれに基づき、ここまでの計算で得られた\bar{y}=5.8\bar{x}=3\hat{b}=1.1という数値を用いて、5つのデータを書き直すと下記のようになり、回帰による変動と誤差による変動を分離することが出来る。
データ1:(2-5.8)=1.1\times(1-3)-1.6

データ2:(6-5.8)=1.1\times(2-3)-1.3

データ3:(6-5.8)=1.1\times(3-3)-0.2

データ4:(9-5.8)=1.1\times(4-3)-2.1

データ5:(6-5.8)=1.1\times(5-3)-2.0

 

 複数データがあれば、当然その分散も計算できる。通常不偏分散は下記の式のように、偏差の二乗和をデータ数-1で割って求められる。

 \begin{eqnarray*} u^2=\frac{1}{n-1}\sum_{i=1}^n\left(x_i-\bar{x}\right)^2 \end{eqnarray*}

 今回得られた変動の値について、データ数の代わりに自由度を用いて同様の操作を行い、平方平均MSを得る。これが先ほど出てきた「分散」の項に相当する。

f:id:Chemstat:20200810092737j:plain

 このMS_{total}yの分散の不偏推定量そのものなので、MS_AMS_{\varepsilon}もそれぞれ「回帰の変動」と「誤差の変動」の分散の不偏推定量に相当するのではないかと期待される。

 このため、F検定のパッと見は「回帰による変動」の分散と「誤差による分散」の分散を比べて、誤差に対して回帰の変動が十分に大きいかを検定するイメージになる。

f:id:Chemstat:20200810093934j:plain

 ただややこしいことにこの理解は厳密ではない。MS_{\varepsilon}は「誤差による分散\sigma_{\varepsilon}^2」の不偏推定量であるのに対し、MS_{A}は「変動による分散\sigma_{A}^2」」そのものではなく、n\sigma_{A}^2+\sigma_{\varepsilon}^2」の不偏推定量になる。(これは一元配置分散分析の値なのだが、回帰に適用できるのかよくわからなかったので、ご存じの方がいたら教えていただきたい。)

 なのでF検定の式の意味は、下記の分散を比較していることになる。帰無仮説は、説明変数による影響が0、つまり(y_i-\bar{y})=0\times(x_i-\bar{x})+\varepsilon_iを仮定しているため、\sigma_{A}^2=0となり、回帰の寄与が大きくなるほど、Fが大きくなり帰無仮説が棄却される方向に向かう、ということになる。 

f:id:Chemstat:20200810203337j:plain

 

 ずいぶんと長くなってしまったが、ようやくF検定の計算を終えることが出来た。今回は説明変数1の単回帰だったが、重回帰の場合も考え方は大きくは変わらない。「回帰の変動」の項がすべての係数をまとめた変動になり、「係数のすべてがゼロである」ことを帰無仮説とする。

 

次回はt検定編。

chemstat.hatenablog.com

 

 

参考

各種計算式: https://keijisaito.info/econ/jp/excel_ols/whole.htm

分散分析表の考え方:http://elsur.jpn.org/resource/anova.pdf

平方平均の期待値の計算:http://lbm.ab.a.u-tokyo.ac.jp/~omori/noko/linearmodel.html

回帰分析の分散分析:http://lbm.ab.a.u-tokyo.ac.jp/~omori/zikken13/anova3.html