Instant Engineering

エンジニアの仕事効率を上げる知識をシェアするブログ/QC統計手法/公差設計・解析/TPS(トヨタ生産方式)

【単回帰分析】回帰式y=a+bxの求め方と最小二乗法

単回帰分析とは

単回帰分析では、2つの変数xとyのデータに

 y=a+bx 1次式(直線)を当てはめることを考える。この式を回帰式という。

回帰式を求める問題は、直線回帰の問題と呼ばれる。

 

この1次式はxからyを予測しようとしていることになるが、

予測されるyを目的変数、予測するのに使うxのことを説明変数と呼んでいる。

またaを切片(あるいは定数項)、bを回帰係数、両者を合わせて回帰母数と呼んでいる。

 

単回帰分析の構造式は以下で表される。

y_i = β_0 + β_1x_1 + ε_i 

ここでβ_0は前述の切片a、β_1は回帰係数bに該当する。

 

また、ε_iは誤差を表し、以下の4つの仮定を満たすものとする。

1.不偏性(誤差の期待値は0である)

2.等分散性(各x_iでの誤差のばらつきの大きさが等しい)

3.無相関性(誤差同士は無相関である)

4.正規性(誤差は正規分布に従う)

これらの仮定をまとめると、誤差ε_iは互いに独立に平均0、分散σ^2の正規分布に従うということである。

 

単回帰係数の『単』とは1つという意味で、説明変数が1つであることを意味する。

説明変数が2つ以上の場合は、重回帰分析を用いる。

 

回帰式は最小二乗法で求める

最小二乗法とは以下のような考え方である。

例として下図のような5個のデータがあったとする。

最小二乗法でこの5点の回帰式を考える場合、以下の緑色の直線あたりの位置に来るであろうことは感覚的に分かるが、計算によって導く場合、

生データy_iと予測値\hat{y}_iとの差e_i残差と呼ぶ。

e_i = y_i - \hat{y}_i

残差e_iは上のグラフで示した通り、データの個数分だけ存在する。

この残差を2乗したものをすべてのデータ個数分だけ加算したものを残差平方和といい、この残差平方和が最も小さくなる直線を求める方法が最小二乗法である。

残差平方和S_eの構造式を以下に示す。

 S_e = \sum\limits_{i=1}^n  e_{i}^2 = \sum\limits_{i=1}^n (y_i - \hat{β}_0 - \hat{β}_1x_i)^2

 

最小二乗法の推定値は、あるデータの組に対してただ一つ求まる。

また、データの数は最低2個以上あれば算出できるが、データ群に対して回帰式を求めることが有効であるかどうかは、事前に散布図プロットを確認したりして判断する必要がある。

 

切片aと回帰係数bの計算

回帰式 y=a+bx における切片aと回帰係数bは、次の式で計算することができる。

b = \dfrac{S_{xy}}{S_{xx}}

 

a = \bar{y} -b\bar{x}

では、実際に例題を使って回帰式を求めてみる。

 

【例題】ある製品の強度yと、製造工程における熱処理時間xのデータを用いて、xに対するyの回帰式を求める。データは以下の10個がある。

散布図にデータをプロットすると以下のようになる。強い正の相関がありそうということがわかる。

切片aと回帰係数bを計算するにあたって、偏差平方和S(xx)と偏差積和S(xy)が必要になるので、問題の最初に提示された10個のデータ表の以下のように追記する。

xとy、それぞれの2乗と積を表の右側に列追加し、さらに各列の合計を行追加した。

 

切片aと回帰係数bの計算手順

\bar{x}\bar{y}の計算

xの平均値\bar{x}、yの平均値\bar{y}を計算する。

\bar{x} = \dfrac{178}{10} = 17.8

 

\bar{y} = \dfrac{446}{10} = 44.6



②S(xx)とS(xy)の計算

xの偏差平方和S(xx)と、xとyの偏差積和S(xy)を計算する。

 S_{xx} = \sum\limits_{i=1}^n  (x_i - \bar{x})^2 = \sum\limits_{i=1}^n x_{i}^2 - \dfrac{\left(\sum\limits_{i=1}^n x_i \right)^2}{n}=3312 - \dfrac{178^2}{10} = 3312 - 3168.4 = 143.6

 

 S_{xy} = \sum\limits_{i=1}^n  (x_i - \bar{x})(y_i - \bar{y}) = \sum\limits_{i=1}^n x_iy_i - \dfrac{\left(\sum\limits_{i=1}^n x_i \sum\limits_{i=1}^n y_i \right)}{n}=8260 - \dfrac{178×446}{10} = 8260 - 7938.8 = 321.2

 

③切片aと回帰係数bの計算

b = \dfrac{S(xy)}{S(xx)} = \dfrac{321.2}{143.6} = 2.24

 

a =  \bar{y} -b\bar{x} = 44.6 - 2.237 × 17.8 = 4.79

 

よって、xに対するyの回帰式は

 y = 4.79 + 2.24x

となる。

ここまで、偏差平方和と偏差積和を使って順次計算で回帰式を求めたが、エクセルで散布図グラフをプロットできれば、「近似曲線の追加」を使って同じ値の回帰式を確認することができる。

散布図グラフを描かずにエクセルでデータ表から直接、回帰式を求めたい場合は以下の関数を用いる。

切片a → INTERCEPT関数

support.microsoft.com

 

回帰係数b → SLOPE関数

support.microsoft.com

 

単回帰分析の回帰式は、上記の関数でエクセルさえあれば簡単に求めることができるが、どのように導かれた数値なのかを確認するため、あえて今回順次計算を行った。

 

JUSE‐StatWorksによる回帰分析入門 (StatWorksによる新品質管理入門シリーズ)