大学・確率統計・データ・統計

回帰分析(最小二乗法)の練習問題

最小二乗法で回帰直線・重回帰を求め、決定係数で当てはまりを評価できる。

考え方

データに最もよく当てはまる直線(回帰直線)を最小二乗法で求めて予測に使い、決定係数で当てはまりのよさを評価できるようになります。広告費から売上を予測する、価格と需要の関係を調べるなど、データ分析で最もよく使う手法です。

回帰直線 y=bx+ay = bx + a
xx から yy を予測する直線。bb が傾き、aa が切片。
残差
実際の値 yiy_i と、直線による予測値との差。
最小二乗法
残差の2乗の和がいちばん小さくなるように、直線を決める方法。
決定係数 R2R^2
yy のばらつきのうち、直線で説明できる割合(0〜1)。

散布図の点のあいだに直線を引くとき、点と直線の縦のずれ(残差)を2乗して足した値がいちばん小さくなるように引くのが最小二乗法です。2乗するのは、プラスとマイナスのずれが打ち消し合わないようにするためです。

計算すると、回帰直線は必ず平均の点 (xˉ,yˉ)(\bar{x}, \bar{y}) を通り、傾きは b=SxySxxb = \dfrac{S_{xy}}{S_{xx}} になります。SxxS_{xx} は xx の偏差の2乗の和、SxyS_{xy} は xx の偏差と yy の偏差の積の和です。切片は a=yˉ−bxˉa = \bar{y} - b\bar{x} です。

xx が 1 ずつ増える5つの値なら、偏差は −2,−1,0,1,2-2, -1, 0, 1, 2 で Sxx=10S_{xx} = 10 です。偏差の和は 0 なので、SxyS_{xy} は yiy_i から yˉ\bar{y} を引かずに ∑(xi−xˉ)yi\sum(x_i - \bar{x})y_i で計算しても同じになります。

説明変数が複数ある重回帰では、データを行列 XX にまとめ、係数を β^=(XTX)−1XTy\hat{\boldsymbol{\beta}} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} で求めます。決定係数 R2R^2 が 1 に近いほど、モデルでよく説明できています。

5つの点 (2, 9)、(3, 12)、(4, 14)、(5, 15)、(6, 20) と回帰直線 y = 2.5x + 4。点と直線の縦のずれ(残差)を点線で示す2462468101214161820Oxy回帰直線 y = 2.5x + 4
点がデータ、直線が回帰直線 y=52x+4y = \dfrac{5}{2}x + 4、点線が残差です。直線は平均の点 (4,14)(4, 14) を通り、残差の2乗の和が最小になるように引かれています。

ポイント

Sxx=∑(xi−xˉ)2S_{xx} = \sum(x_i - \bar{x})^2、Sxy=∑(xi−xˉ)(yi−yˉ)S_{xy} = \sum(x_i - \bar{x})(y_i - \bar{y})

傾き b=SxySxxb = \dfrac{S_{xy}}{S_{xx}}、切片 a=yˉ−bxˉa = \bar{y} - b\bar{x}

決定係数: R2=1−∑(残差)2∑(yi−yˉ)2R^2 = 1 - \dfrac{\sum(\text{残差})^2}{\sum(y_i - \bar{y})^2}

重回帰: β^=(XTX)−1XTy\hat{\boldsymbol{\beta}} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y}

解き方の手順

  1. 平均 xˉ\bar{x}, yˉ\bar{y} を求める。
  2. 偏差 xi−xˉx_i - \bar{x} を書き出し、SxxS_{xx} と SxyS_{xy} を計算する。
  3. 傾き b=SxySxxb = \dfrac{S_{xy}}{S_{xx}} を求める(約分する)。
  4. 切片 a=yˉ−bxˉa = \bar{y} - b\bar{x} を求め、y=bx+ay = bx + a の形で答える。

例

x23456y912141520\begin{array}{c|ccccc} x & 2 & 3 & 4 & 5 & 6 \\ \hline y & 9 & 12 & 14 & 15 & 20 \end{array} の回帰直線 y=bx+ay = bx + a を求めてください。

  1. xˉ=4\bar{x} = 4、yˉ=9+12+14+15+205=14\bar{y} = \dfrac{9 + 12 + 14 + 15 + 20}{5} = 14
  2. 偏差は −2,−1,0,1,2-2, -1, 0, 1, 2 なので Sxx=4+1+0+1+4=10S_{xx} = 4 + 1 + 0 + 1 + 4 = 10
  3. Sxy=(−2)⋅9+(−1)⋅12+0⋅14+1⋅15+2⋅20=25S_{xy} = (-2) \cdot 9 + (-1) \cdot 12 + 0 \cdot 14 + 1 \cdot 15 + 2 \cdot 20 = 25
  4. b=2510=52b = \dfrac{25}{10} = \dfrac{5}{2}、a=14−52×4=4a = 14 - \dfrac{5}{2} \times 4 = 4。回帰直線は y=52x+4y = \dfrac{5}{2}x + 4

見る

計算例

5か月分の広告費 xx(万円)と売上 yy(万円)のデータから、最小二乗法で回帰直線 y=bx+ay = bx + a を求め、売上の予測に使います。

問いx23456y3640404851\begin{array}{c|ccccc} x & 2 & 3 & 4 & 5 & 6 \\ \hline y & 36 & 40 & 40 & 48 & 51 \end{array} の回帰直線を y=bx+ay = bx + a の形で求めてください。

途中の式

  1. xˉ=4\bar{x} = 4、yˉ=43\bar{y} = 43
  2. Sxx=∑(xi−xˉ)2=(−2)2+(−1)2+02+12+22=10S_{xx} = \sum (x_i - \bar{x})^2 = (-2)^2 + (-1)^2 + 0^2 + 1^2 + 2^2 = 10
  3. Sxy=∑(xi−xˉ)(yi−yˉ)=(−2)⋅36+(−1)⋅40+0⋅40+1⋅48+2⋅51=38S_{xy} = \sum (x_i - \bar{x})(y_i - \bar{y}) = (-2)\cdot 36 + (-1)\cdot 40 + 0\cdot 40 + 1\cdot 48 + 2\cdot 51 = 38(∑(xi−xˉ)=0\sum (x_i - \bar{x}) = 0 なので、yiy_i から yˉ\bar{y} を引かずに計算しても同じ)
  4. 傾き b=SxySxx=3810=195b = \dfrac{S_{xy}}{S_{xx}} = \dfrac{38}{10} = \frac{19}{5}
  5. 切片 a=yˉ−bxˉ=43−195×4=1395a = \bar{y} - b\bar{x} = 43 - \frac{19}{5} \times 4 = \frac{139}{5}
  6. 回帰直線: y=195x+1395y = \frac{19}{5}x + \frac{139}{5}

答え回帰直線 y = bx + a(分数は 1/2 のように)は 195x+1395\frac{19}{5}x + \frac{139}{5}

一緒にやる

小さく分けて、一緒に解く

1つずつ答えを確かめながら進みます。間違えても大丈夫です。

5か月分の広告費 xx(万円)と売上 yy(万円)のデータから、最小二乗法で回帰直線 y=bx+ay = bx + a を求め、売上の予測に使います。

x678910y4350495859\begin{array}{c|ccccc} x & 6 & 7 & 8 & 9 & 10 \\ \hline y & 43 & 50 & 49 & 58 & 59 \end{array} の回帰直線を y=bx+ay = bx + a の形で求めてください。

小さな問いに分けて、1つずつ一緒に進めます。

ステップ 1 / 4

(xˉ,yˉ)(\bar{x}, \bar{y}) を答えてください。

かっこの中に、カンマで区切って順番に入力します。

読み取り:(入力すると、ここに数式で表示されます)

自分でやる

練習問題

数字は毎回変わります。2〜3問続けて解けたら、次の単元や元のレッスンに進みましょう。

問題を準備しています…

学び直しマップ

前後の単元

分からないところがあったら前提まで戻り、分かったら使う先へ進みましょう。

学び直しマップで、この単元のまわりを見る