エクセルの回帰分析を自力でやってみる(1)傾きと切片

 エクセルには重回帰分析のツールがあり、解析を行うと下記の表が得られる。

 何回も見た表だが、実際これが何を表しているのかよくわからなかったので、調べてみた。一つずつ解説していこうと思う。

f:id:Chemstat:20200804163141p:plain

データの準備

 とりあえず適当にXとYを定めた以下のデータを用意する。 

 x
 (説明変数)
1 2 3 4 5
 y
(被説明変数)
2 6 6 9 6

 このデータをプロットして近似直線を引くと下のような回帰式が得られる。そして重回帰分析を行うと一番最初の表が得られる。重回帰分析と言えば本当は複数の説明変数があってこそ、みたいなところはあるが計算が出来なくなってしまうので、今回は単純なデータで解析する。

f:id:Chemstat:20200804164539j:plain 

傾きと切片

 まずは最小二乗法を使って傾きと切片を求める。最小二乗法は回帰直線と実際のデータの差 \varepsilon_iとしたとき、その二乗和 \small\begin{align*}\sum_{i=1}^n\varepsilon_i^2\end{align*}が最小になる傾き \hat{a}と切片 \hat{b}を求める。説明変数が一つの単回帰分析であれば、 n個のデータの座標をそれぞれ (x_i, y_i)としてそれぞれ下記式で求めることが出来る。

 

f:id:Chemstat:20200806191422j:plain

 

 yの平均値: \begin{align*} \bar{y} = \frac{1}{n}\sum_{i=1}^ny_i \scriptsize = \frac{2 + 6 + 6 + 9 + 6}{5} \normalsize=5.8\end{align*}

 xの平均値: \begin{align*} \bar{x} = \frac{1}{n}\sum_{i=1}^nx_i = \scriptsize  \frac{1 + 2 + 3 + 4 + 5}{5} \normalsize=3\end{align*}

 x yの偏差積和: \begin{align*} S_{xy}= {\displaystyle \sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})} \end{align*}

 \begin{align*} \scriptsize =(1-3)(2-5.8) + (2-3)(6-5.8) + (3-3)(6-5.8) + (4-3)(9-5.8) + (5-3)(6-5.8) \normalsize=11 \end{align*}

 xの偏差平方和: \begin{align*} S_{xx} = {\displaystyle \sum_{i=1}^n(x_i-\bar{x})^2 }\scriptsize =  (1-3)^2 + (2-3)^2 + (3-3)^2 + (4-3)^2 + (5-3)^2 \normalsize=10 \end{align*}

 

切片: \begin{align*} \hat{a} = \bar{y} - \frac{S_{xy}}{S_{xx}}\bar{x} \scriptsize= 5.8 - \frac{11}{10}\times3 \normalsize= 2.5\end{align*}

傾き: \begin{align*} \hat{b} = \frac{S_{xy}}{S_{xx}} \scriptsize= \frac{11}{10}  \normalsize = 1.1\end{align*}

 

とこのようにして無事 \begin{align*} y = 1.1 x + 2.5 \end{align*}の単回帰直線が得られた。ここまではスタート地点で、ここからその他の統計値を計算していく。

 

次回は回帰統計編。

 

chemstat.hatenablog.com

参考

最小二乗法による傾きと切片の導出: http://www.radio3.ee.uec.ac.jp/ronbun/YK-019_Kukan_Suitei.pdf