重回帰分析の回帰式が導出できる
「重回帰分析の回帰式がわからない、傾きやy切片の公式が覚えられない」と困っていませんか?
こういう疑問に答えます。
本記事のテーマ
おさえておきたいポイント
- ①回帰式は誤差を最小にする条件で導出
- ➁回帰式を導出
- ➂【実例】回帰式を作る
①回帰式は誤差を最小にする条件で導出
データの構造式を作る
本記事は、説明変数が2つ(\(x_1,x_2\))、目的変数\(y\)についての回帰式を作ります。
回帰式をなす、データの構造式は
\(y=a+bx_1+cx_2\)
として、定数\(a,b,c\)を求めていきます。回帰式となる定数\(a,b,c\)を
●\(a\)=\(β_0\)
●\(b\)=\(β_1\)
●\(c\)=\(β_2\)
でよく表現します。
回帰式は誤差を最小にする条件で導出
ここで、同じ\(x_1,x_2\)について、実測値\(y_i\)と回帰式で求められる\(\hat{y_i}\)の2つを考えます。
図は、理解しやすくするために、あえて2次元で描いています。
\(Q(a,b,c)\)と定義して
\(Q(a,b,c)\)=\(\sum_{i=1}^{n}(y_i – \hat{y_i})^2\)
が最小となる条件が、重回帰分析の回帰式を求める条件となります。
つまり、実測値と予測値の差(誤差)を最小にする条件から回帰式を作ります。
複雑な計算になりますが、エッセンスは、「(誤差)を最小にする条件」です。
➁回帰式を導出
2乗和を展開(導出過程すべて見せます!)
\(Q(a,b,c)\)=\(\sum_{i=1}^{n}(y_i – \hat{y_i})^2\)
を
\(Q(a,b,c)\)=\(\sum_{i=1}^{n}((y_i -\bar{y}) –(\hat{y_i}-\bar{y}))^2\)
と間に\(\bar{y}\)を入れます。
また、\(\bar{y}\)と\(\hat{y_i}\)は回帰式を通るので、
●\(\bar{y}\)=\(a_+b \bar{x_1}+c \bar{x_2}\)
●\(\hat{y}\)=\(a_+b x_{1i}+c x_{2i}\)
が成り立つので、\(Q(a,b,c)\)に代入します。
代入すると、
\(Q(a,b,c)\)= \(\sum_{i=1}^{n}((y_i -\bar{y})\) –\(b(x_{1i}-\bar{x_1})\)-\( c(x_{2i}-\bar{x_2}))^2\)
さらに、意図的に
●\(\bar{y}\)=\(a_+b \bar{x_1}+c \bar{x_2}\)を
0=\(\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}\))
として、\(Q(a,b,c)\)に代入します。
よって、
\(Q(a,b,c)\)= \(\sum_{i=1}^{n}((y_i -\bar{y})\)
-\(b(x_{1i}-\bar{x_1})\)
-\( c(x_{2i}-\bar{x_2})\)
+\((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2})))^2\)
となります。
2乗和を整理
この長い2乗式を展開します。
\(Q(a,b,c)\)
= \(\sum_{i=1}^{n}\) \( ((y_i -\bar{y})^2 \) →(1)
+\(b^2(x_{1i}-\bar{x_1})^2\) →(2)
+\(c^2(x_{2i}-\bar{x_2})^2\) →(3)
+\(((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\) →(4)
-\(2b(y_i -\bar{y})(x_{1i}-\bar{x_1})\) →(5)
-\(2c (y_i -\bar{y})(x_{2i}-\bar{x_2})\) →(6)
+\(2(y_i -\bar{y})(\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))\) →(7)
+ \(2bc(x_{1i}-\bar{x_1})(x_{2i}-\bar{x_2})\) →(8)
-\(2b(x_{1i}-\bar{x_1})\)\((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))\) →(9)
-\(2c(x_{2i}-\bar{x_2})\)\((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2})))\) →(10)
と展開します。長いですが、頑張りましょう。
上の計算式を(1)~(10)に分けて、それぞれ見ていきましょう。
●(1)は
\(\sum_{i=1}^{n}\) \( (y_i -\bar{y})^2 \)=\(S_{yy}\)と置けます。
以下、Sは平方和を使って式を簡単に書いていきます。
●(2)は
\(\sum_{i=1}^{n}\) \(b^2(x_{1i}-\bar{x_1})^2\) =\(b^2 S_{11}\)と置けます。
●(3)は
\(\sum_{i=1}^{n}\) \(c^2(x_{2i}-\bar{x_2})^2\) =\(c^2 S_{22}\)と置けます。
●(4)はちょっとややこしいですが、定数を∑するので、
\(\sum_{i=1}^{n}\)\(((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\)
=\(n((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\)
となります。あとで定数\(a\)を求めるための大事な式になります。
●(5)は
\(\sum_{i=1}^{n}\)\(2b(y_i -\bar{y})(x_{1i}-\bar{x_1})\)
=\(2b S_{1y}\)と置けます。
●(6)は
\(\sum_{i=1}^{n}\)\(2c (y_i -\bar{y})(x_{2i}-\bar{x_2})\)
= \(2c S_{2y}\)と置けます。
●(7)は、
\(\sum_{i=1}^{n}\)\(2(y_i -\bar{y})(\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))\)
=2\((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))\)\(\sum_{i=1}^{n}\)\((y_i -\bar{y})\)
と定数を∑の外に出せて、かつ、
\(\sum_{i=1}^{n}\)\((y_i -\bar{y})\)=0
なので、
(7)=0になります。
●(8)は、
\(\sum_{i=1}^{n}\) \(2bc(x_{1i}-\bar{x_1})(x_{2i}-\bar{x_2})\)
=\(2bc S_{12}\)
と置けます。
●(9)は、
\(\sum_{i=1}^{n}\)\(2b(x_{1i}-\bar{x_1})\)\((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))\)
=\(2b(\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))\)\(\sum_{i=1}^{n}\)\((x_{1i}-\bar{x_1})\)
と定数を∑の外に出せて、かつ、
\(\sum_{i=1}^{n}\)\((x_{1i}-\bar{x_1})\)=0
なので、
(9)=0になります。
●(10)は、
\(\sum_{i=1}^{n}\)\(2c(x_{2i}-\bar{x_2})\)\((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2})))\)
=\(2c(\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2})))\)\(\sum_{i=1}^{n}\)\((x_{2i}-\bar{x_2})\)
と定数を∑の外に出せて、かつ、
\(\sum_{i=1}^{n}\)\(\sum_{i=1}^{n}\)\((x_{2i}-\bar{x_2})\)=0
なので、
(10)=0になります。
誤差を最小にする条件
(1)~(10)をまとめると、
+\(n((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\)
-\(2b S_{1y}\)- \(2c S_{2y}\)+\(2bc S_{12}\)
と整理できます。
だいぶスッキリしましたね。機械的に計算しているだけなので、公式暗記の前に一回はなぞって理解しましょう。
回帰式を導出
ここで、回帰式の係数とy切片を求めます。つまり、
●\(a\)=\(β_0\)
●\(b\)=\(β_1\)
●\(c\)=\(β_2\)
の各値です。
回帰式は\(Q(a,b,c)\)が最小となる条件です。
y切片 \(β_0\)の導出
(Q(a,b,c))が最小となる条件で、定数(a)が有る項は、
+\(n((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\)
-\(2b S_{1y}\)- \(2c S_{2y}\)+\(2bc S_{12}\)
の
\(((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\)
の部分ですね。
黄色マーカの2乗が最小になるのは、中身が0の時ですね。
よって、
\(\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2})\)=0
が条件となり、変形すると、
\(β_0\)=\(a\)=\(\bar{y}\)-(\(b \bar{x_1}+c \bar{x_2})\)
が求める式となります。
傾き\(β_1\)、\(β_2\)の導出
+\(n((\bar{y}\)-(\(a_+b \bar{x_1}+c \bar{x_2}))^2\)
-\(2b S_{1y}\)- \(2c S_{2y}\)+\(2bc S_{12}\)
は、\(b,c\)の変数なので、
偏微分=0
から求めます。
●\(\displaystyle \frac{\partial Q(b,c)}{\partial b}\)=0
●\(\displaystyle \frac{\partial Q(b,c)}{\partial c}\)=0
から条件式を作ります。
●\(\displaystyle \frac{\partial Q(b,c)}{\partial b}\)
=\(2bS_{11}-2S_{1y}+2cS_{12}\)=0
●\(\displaystyle \frac{\partial Q(b,c)}{\partial c}\)
=\(2cS_{22}-2S_{2y}+2bS_{12}\)=0
となる連立方程式ができます。
よって、
\(S_{11}b+S_{12}c\)=\(S_{1y}\)
\(S_{12}b+S_{22}c\)=\(S_{2y}\)
を満たす連立方程式から、
傾き\(b\)=\(β_1\)、\(c\)=\(β_2\)が導出できます。
【結論】回帰式の導出
\(β_0\)=\(a\)=\(\bar{y}\)-(\(b \bar{x_1}+c \bar{x_2})\)
から計算し、
●傾き\(β_1\)、\(β_2\)の導出
\(S_{11}b+S_{12}c\)=\(S_{1y}\)
\(S_{12}b+S_{22}c\)=\(S_{2y}\)
を満たす連立方程式から、\(β_1\)、\(β_2\)が導出できます!
ちゃんと、導出できましたね!一切途中経過を端折っていないので、なぞるだけでも理解が深まります!
では、具体的な数字を使って回帰式を作ってみましょう。
➂【実例】回帰式を作る
データ例
以下のデータを使って重回帰分析の回帰式を作ってみましょう。
x1 | x2 | y |
3 | 1 | 3 |
2 | 4 | 4 |
4 | 2 | 4 |
4 | 5 | 7 |
5 | 4 | 7 |
6 | 2 | 5 |
導出式から回帰式を計算する
\(β_0\)=\(a\)=\(\bar{y}\)-(\(b \bar{x_1}+c \bar{x_2})\)
から計算し、
●傾き\(β_1\)、\(β_2\)の導出
\(S_{11}b+S_{12}c\)=\(S_{1y}\)
\(S_{12}b+S_{22}c\)=\(S_{2y}\)
を満たす連立方程式から、\(β_1\)、\(β_2\)が導出できます!
なので、
●平均\(\bar{x_1},\bar{x_2},\bar{y}\)と
●平方和\(S_{11}\),\(S_{12}\),\( S_{1y}\),\( S_{22}\),\( S_{2y}\)
を計算しましょう。結構、計算が必要ですね。
下表に結果をまとめましょう。
– | x1 | x2 | y | A= \(x_1\)-\(\bar{x_1}\) |
B= \(x_2\)-\(\bar{x_2}\) |
C= \(y-\bar{y}\) |
\(A^2\)=\(S_{11}\) | \(AC\)=\(S_{1y}\) | \(AB\)=\(S_{12}\) | \(B^2\)=\(S_{22}\) | \(BC\)=\(S_{2y}\) | \(C^2\)=\(S_{yy}\) |
– | 3 | 1 | 3 | -1 | -2 | -2 | 1 | 2 | 2 | 4 | 4 | 4 |
– | 2 | 4 | 4 | -2 | 1 | -1 | 4 | 2 | -2 | 1 | -1 | 1 |
– | 4 | 2 | 4 | 0 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | 1 |
– | 4 | 5 | 7 | 0 | 2 | 2 | 0 | 0 | 0 | 4 | 4 | 4 |
– | 5 | 4 | 7 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | 4 |
– | 6 | 2 | 5 | 2 | -1 | 0 | 4 | 0 | -2 | 1 | 0 | 0 |
合計 | 24 | 18 | 30 | 0 | 0 | 0 | 10 | 6 | -1 | 12 | 10 | 14 |
平均 | 4 | 3 | 5 | – | – | – | ↑\(S_{11}\) | ↑\(S_{1y}\) | ↑\(S_{12}\) | ↑\(S_{22}\) | ↑\(S_{2y}\) | ↑\(S_{yy}\) |
よって、
●y切片 \(β_0\)の導出
\(β_0\)=\(a\)=\(\bar{y}\)-(\(b \bar{x_1}+c \bar{x_2})\)
から計算し、
●傾き\(β_1\)、\(β_2\)の導出
\(10b-c\)=6
\(-b+12c\)=10
から、
\(b=β_1\)=\(\frac{82}{119}\)
\(c=β_2\)=\(\frac{106}{109}\)
\(β_0\)=\(a\)=\(\bar{y}\)-(\(b \bar{x_1}+c \bar{x_2})\)
から
5-\(\frac{82}{119}\)×4-\(\frac{106}{109}\)×3=-\(\frac{51}{109}\)
以上、
\(y\)=-\(\frac{51}{109}\)+\(\frac{82}{119}x_1\)+\(\frac{106}{109}x_2\)
=-0.429+0.689\(x_1\)+0.891\(x_2\)
となります。
Excelから回帰式を計算する
関数を使って一発で出せます。
「=LINEST(D3:D8,B3:C8,TRUE,TRUE)」
の関数を入力して
「ctrl+shift」を同時に押して、「enter」すると自動計算されます。
自動計算は一瞬でできて、下図の結果になります。
確かに、手計算で求めた
\(y\)=-\(\frac{51}{109}\)+\(\frac{82}{119}x_1\)+\(\frac{106}{109}x_2\)
=-0.429+0.689\(x_1\)+0.891\(x_2\)
と一致します。
当然、手計算でもExcel関数からでも結果は一致します。Excel関数の方が楽チンですが、意味を理解するためにも手計算で一度解くことを勧めます。
まとめ
「重回帰分析の回帰式が導出できる」を解説しました。
- ①回帰式は誤差を最小にする条件で導出
- ➁回帰式を導出
- ➂【実例】回帰式を作る
Warning: count(): Parameter must be an array or an object that implements Countable in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 119