上級マクロ経済学
第8回 回帰分析
1 単回帰モデル
回帰関数
線形単回帰モデル
- 単回帰モデルは、変数が一つ。
- 線形モデルは1次関数。
- 単回帰分析はこれを仮定しています。
例:能力と賃金
E(実質賃金| 労働生産性) = \beta_0 + \beta_1 労働生産性
- 労働生産性
- 労働者一人が1時間でどれだけの価値を生産できるか。
誤差項と回帰モデル
実際の変数間の関係が1次関数であるとは限らない。 そのため、誤差項uを用いて、次のようにモデルを仮定する。
Y = \beta_0 + \beta_1 X + u
- 両辺について、Xを条件づけた期待値を取れば、
. . .
E(Y|X) = \beta_0 + \beta_1 X + E(u|X)
- E(u|X)=0が成立すると仮定すると、
. . .
E(Y|X) = \beta_0 + \beta_1 X
となり、線形回帰モデルとして解釈できる。
回帰モデルの用語
Y = \beta_0 + \beta_1 X + u
- Xは説明変数あるいは独立変数と呼ばれる。
- Yは被説明変数あるいは従属変数と呼ばれる。
- 回帰係数\beta_1がわかれば、Xが1単位上昇したときに、Yがどれくらい増える(減る)かがわかる。
. . .
\beta_1の値に関心がある
- これをデータから推計するのが回帰分析
2 直線の当てはめ
最小二乗法
データが与えられた時に、最も当てはまりの良い直線を選ぶのが、最小二乗法。
2020年 | 労働生産性(円/時間) | 賃金所得(千円) | |
---|---|---|---|
0 | 北海道 | 8997.702921 | 4232.5 |
1 | 青森 | 8946.026251 | 3667.9 |
2 | 岩手 | 8336.011457 | 3790.4 |
3 | 宮城 | 8875.070576 | 4459.4 |
4 | 秋田 | 8700.560140 | 3758.0 |
5 | 山形 | 8154.747457 | 3868.4 |
6 | 福島 | 9391.495832 | 4126.0 |
7 | 茨城 | 10961.847154 | 4828.8 |
8 | 栃木 | 9837.563869 | 4570.5 |
9 | 群馬 | 9363.880300 | 4566.1 |
10 | 埼玉 | 9399.600963 | 4665.6 |
11 | 千葉 | 10106.490775 | 4756.1 |
12 | 東京 | 10052.449825 | 5952.4 |
13 | 神奈川 | 9230.573427 | 5369.7 |
14 | 新潟 | 8258.925215 | 3981.7 |
15 | 富山 | 8927.186234 | 4585.0 |
16 | 石川 | 8293.178123 | 4510.7 |
17 | 福井 | 10523.762093 | 4340.2 |
18 | 山梨 | 11092.570139 | 4620.2 |
19 | 長野 | 9867.076495 | 4475.1 |
20 | 岐阜 | 9516.513560 | 4549.4 |
21 | 静岡 | 9724.677147 | 4651.9 |
22 | 愛知 | 10036.033945 | 5133.8 |
23 | 三重 | 11038.813552 | 4755.0 |
24 | 滋賀 | 11684.668761 | 4862.2 |
25 | 京都 | 9967.990688 | 4900.6 |
26 | 大阪 | 8074.419289 | 5042.4 |
27 | 兵庫 | 10482.963000 | 4848.7 |
28 | 奈良 | 10584.334912 | 4610.7 |
29 | 和歌山 | 10983.142948 | 4347.5 |
30 | 鳥取 | 7679.885745 | 4014.7 |
31 | 島根 | 9470.007380 | 4010.3 |
32 | 岡山 | 8600.643622 | 4421.0 |
33 | 広島 | 8879.207215 | 4668.1 |
34 | 山口 | 11201.411321 | 4536.7 |
35 | 徳島 | 12309.294291 | 4236.5 |
36 | 香川 | 8999.513429 | 4419.3 |
37 | 愛媛 | 8365.670733 | 4082.0 |
38 | 高知 | 9352.010593 | 3922.4 |
39 | 福岡 | 8388.697603 | 4435.6 |
40 | 佐賀 | 8592.664745 | 3973.1 |
41 | 長崎 | 8652.119309 | 3955.7 |
42 | 熊本 | 8628.955241 | 4106.3 |
43 | 大分 | 9964.425198 | 4049.3 |
44 | 宮崎 | 8014.619457 | 3840.2 |
45 | 鹿児島 | 9279.043083 | 3979.1 |
46 | 沖縄 | 8043.928221 | 3740.3 |
データとモデル
いま、(Y,X)について得られたN個のデータを(y_i, x_i )とする。 このiについての誤差項をu_iとすれば、仮定したモデル Y = \beta_0 + \beta_1 X + u
に従って、
y_i = \beta_0 + \beta_1 x_i + u_i
が得られる。
直線の方程式
当てはめる直線を
Y = \beta_0 + \beta_1 X
としてやれば、X=x_iの時のYの値を\hat{y}_iとして、
\hat{y}_i = \beta_0 + \beta_1 x_i
とできる。
- このとき、一般にy_i = \hat{y}_i(観測値=推測値)となるとは限らない。
誤差
y_iと\hat{y}の差が誤差として考えられる。
- y_iはデータから得られている。
- \hat{y}_iは、\beta_0と\beta_1を適当に定めれば、X_iから計算される。
. . .
\begin{aligned} y_i - \hat{y}_i &= (\beta_0 + \beta_1 x_i + u_i)- (\beta_0 + \beta_1 x_i ) \\ &= u_i \end{aligned}
最小二乗法の目的関数
最小二乗法の目的関数Oは、次のように定められる。 \begin{aligned} O(\beta_0, \beta_1) &= \sum_{i=1}^{N} u_i^2 \\ &= \sum_{i=1}^{N} (y_i - \beta_0 - \beta_1 x_i)^2 \end{aligned}
- このOを最小化するように(\beta_0, \beta_1)を定める。
- 最小二乗法によって推定された(\beta_0, \beta_1)をそれぞれ(\hat{\beta}_0, \hat{\beta}_1)と表す。
- (\hat{\beta}_0, \hat{\beta}_1)は最小二乗推定量、あるいはOLS推定量とか呼ばる。
最小二乗推定量の導出
Oを最小化するための条件(一階の条件)は、
\begin{aligned} \frac{\partial O(\beta_0, \beta_1)}{\partial \beta_0} = - \sum_{i} 2 (y_i - \beta_0 - \beta_1 x_i) &= 0 \\ \frac{\partial O(\beta_0, \beta_1)}{\partial \beta_1} = - \sum_{i} 2 x_i (y_i - \beta_0 - \beta_1 x_i) &= 0 \end{aligned}
- O(\beta_0, \beta_1)は\beta_0、\beta_1それぞれについて下に凸なので、二階の条件も満たされる。
OLS推定量
\hat{\beta}_1 = \frac{\sum_{i=0}^N (y_i-\bar{y})(x_i-\bar{x}) }{\sum_{i=0}^N (x_i-\bar{x})^2} \hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x}
- データの集合\{(x_i, y_i)\}_iが得られれば、これらは計算可能。
- \{(x_i, y_i)\}_iは、母集団から確率的にドローされた集合だと考えられるので、(x_i, y_i)は確率変数。
- 確率変数の関数になっている\hat{\beta}_0, \hat{\beta}_1も確率変数である。
推定量の求め方についてはこちら
一本目の式から、
\begin{aligned} \sum_i (y_i - \beta_0 - \beta_1 x_i ) &= 0 \\ \Longrightarrow ~ \sum_i y_i - \beta_0 N - \beta_1 \sum_i x_i &= 0 \\ \Longrightarrow ~ \frac{\sum_i y_i}{N} - \beta_0 - \beta_1 \frac{\sum_i x_i}{N} &= 0 \\ \Longrightarrow ~ \bar{y} = \beta_0 + \beta_1 \bar{x} & \\ \end{aligned}
二本目の式にこれを代入して計算すれば、
\begin{aligned} 左辺 &= \sum_{i} x_i \left[ y_i - (\bar{y} - \beta_1 \bar{x}) - \beta_1 x_i \right] \\ &= \sum_{i} x_i \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] 0 \\ &= \sum_{i} (x_i - \bar{x}) \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] \\ & ~ + \sum_{i} \bar{x} \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] \\ &= \sum_{i} (x_i - \bar{x}) \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] \\ & ~ + \bar{x} \left[ \left(\sum_{i} y_i - N\bar{y}\right) - \beta_1 \left( \sum_{i} x_i - N \bar{x}\right) \right] \\ &= \sum_{i} (x_i - \bar{x}) \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] \\ & ~ + \bar{x} N \left[ \underbrace{\left(\bar{y} - \bar{y}\right) - \beta_1 \left( \bar{x} - \bar{x}\right)}_{=0} \right] \\ &= \sum_{i} (x_i - \bar{x}) \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] \\ \therefore &\sum_{i} (x_i - \bar{x}) \left[ (y_i - \bar{y}) - \beta_1 ( x_i - \bar{x}) \right] = 0 \end{aligned} これを整理して、 \begin{aligned} \beta_1 \sum_{i} (x_i - \bar{x})^2 = \sum_{i} (x_i - \bar{x}) (y_i - \bar{y}) \\ \beta_1 = \frac{\sum_{i} (x_i - \bar{x}) (y_i - \bar{y})}{\sum_{i} (x_i - \bar{x})^2} \\ \end{aligned}
OLSの仮定
いくつかの仮定のもと、OLS推定量は統計的に望ましい性質を持つ。
OLS推定量の性質
先の仮定のもと、次の性質が成り立つ。
さらに、標本のサイズが十分に大きければ、次の性質が成り立つ。
V_0、V_1の推定値
V_0、V_1は、実はデータからは計算できない。
データから計算できる値でこれらを置き換えれば、 \sqrt{\frac{N}{V_1}} (\hat{\beta}_1 - \beta_1)が計算できる。 これらは、次のように計算される。 \hat{V}_1 = \frac{\frac{1}{N} \sum_{i} (x_i - \bar{x})^2 \hat{u}_i^2}{\left[ \frac{1}{N} \sum_{i} (x_i - \bar{x})^2 \right]^2}
\hat{V}_0 = \frac{\frac{1}{N} \sum_i \hat{H}_i^2 \hat{u}_i^2}{\left( \frac{1}{N} \sum_i \hat{H}^2 \right)^2} ただし、 \hat{H}_i \equiv 1 - \left( \frac{\bar{x} }{\frac{1}{N}\sum_j x_j^2}\right) x_i
こんなの計算して何が嬉しいの?
- これが計算できると、統計検定ができる。
3 回帰係数の検定
OLSの復習
我々が推計するのは、次の式の係数\beta_0, \beta_1だった。 Y = \beta_0 + \beta_1 X + u
最小二乗法(OLS)によって、\beta_0, \beta_1の推計値である\hat{\beta}_0, \hat{\beta}_1が推計できた。
検定の例
- 得られたデータから回帰係数\hat{\beta}_1および\hat{V}_1を計算。
OLSで推計された\hat{\beta}_1は、次の性質を持っていた(前回内容)。 t = \sqrt{\frac{N}{\hat{V}_1}} (\hat{\beta}_1 - \beta_1) \sim \mathcal{N}(0,1) \hspace{12pt} (N \to \infty)
ちなみに、\sqrt{\frac{\hat{V}_1}{N}}は標準誤差(の推計値)と呼ばれ、\hat{SE}(\hat{\beta_1})と表される。 これを用いると、 t = \frac{\hat{\beta}_1 - \beta_1}{\hat{SE}(\hat{\beta_1})} \sim \mathcal{N} (0,1) \hspace{12pt} (N \to \infty)
真の値は何か
- いま、データのサンプルサイズは100(N=100)であるとする。
- 真の値\beta_1が1だと仮定しよう。
- このとき、N=100が十分に大きいと考えれば、 t = \frac{\hat{\beta}_1 - 1}{\hat{SE}(\hat{\beta_1})} \sim \mathcal{N}(0,1) となっているはず。
検定のアイデア
- 推計された\hat{\beta}_1が2.5、\hat{SE}(\hat{\beta_1})が0.5であったとしよう。 t = \frac{2.5 - 1}{0.5} = 3.0
となる。
- t \sim \mathcal{N}(0,1)より、このt=3.0は、平均0、分散1の正規分布に従って確率的に現れた値であるはず。
「仮定」を疑う
- 一方で、正規分布\mathcal{N}(0,1)のなかで、t \ge 3.0となる確率は、0.1%程度。
- これは、ほとんど生じないケースなので、もとの仮定\beta_1=1が妥当でなかった、と考えられる。
- したがって、「モデルの真の値\beta_1は1ではない」と考えられる。
標準誤差とt統計量
t \equiv \frac{\hat{\beta}_1 - \beta_1}{\hat{SE}(\hat{\beta_1})} をt統計量と呼びます。
- サンプルサイズNが大きければ、t統計量は標準正規分布\mathcal{N}(0,1)に従うとみなせます。
- OLS推定量の漸近正規性
- サンプルサイズNが小さいとき、t統計量は自由度N-1のt分布に従います。
t分布と標準正規分布
- N\le 30程度になると、どちらを用いてもほとんど結果に違いはでない。
- 近年ではサンプルサイズNがあまりにも少ない推計はほとんどない。
- あまり神経質にならず、標準正規分布を用いて良い。
例:能力と賃金(再考)
E(実質賃金| 労働生産性) = \beta_0 + \beta_1 労働生産性
を思い出そう。
実質賃金をY、労働生産性をXと考える。
Y_i = \beta_0 + \beta_1 X_i + u_i
という関係を仮定しよう。
労働生産性が実質賃金に影響を与えるならば、真のモデルの係数は、
\beta_1 \neq 0
であるはず。
帰無仮説と対立仮説
統計検定は背理法のアイデアで行われていた。 \beta_1 \neq 0 を示したいならば、検定においては、はじめに次の仮説H_0を立てる。 H_0:~\beta_1 = 0 を仮定する。 この仮説H_0を帰無仮説と呼ぶ。
. . .
一方、H_0が成立しない時の仮説がH_1。 H_1:~\beta_1 \neq 0 この仮説H_1を対立仮説と呼ぶ。
- 検定では、帰無仮説が成り立つとして議論を始める。
有意水準
次の問題は、「どれくらいの確率なら妥当でないだろうと判断するか」。
- 統計学では経験的に1%、5%、10%などがその確率として使われている。
- これらの値のことを有意水準と呼ぶ。
- 有意水準は\alpha = 0.05などで表されることが多い。
- 片側検定(\beta_1 > 0)と両側検定(\beta_1 \neq 0)ができるが、両者で少し閾値の計算が異なる。
- この講義では、両側検定を主に扱います。
両側検定の閾値
有意水準\alphaの時の閾値を\alphaパーセントポイント点といったりする。
検定の手順
- 仮説を立てる。
- 「AがBに影響を与えているはずだ」というようなもの。
- モデルを設定して、帰無仮説と対立仮説を設定する。
- 真の(\beta_0, \beta_1)などについて、仮説を設定。
- 有意水準\alphaを定める。
- 先に定めることが重要です。
- データ(X_i,Y_i)を集める。
- 回帰係数(\beta_0,\beta_1)を求める。
- 回帰係数のt値を計算する。
- 有意水準\alphaでの閾値を検証して、tがまれにしか発生しない値になるかどうかを検定する。
- 例えば、\alpha=0.05と定めていてたら、閾値の下限は-1.960で上限は1.960。
- t<-1.960またはt>1.960であれば、帰無仮説を棄却して、対立仮説を採択する。
- そうでなければ、帰無仮説を棄却しない。
Pythonでの実装とstatsmodels
Pythonのライブラリ、「statsmodels」を使えば、
- データさえあれば
- 回帰係数を計算し
- t値も(そしてその他の値もいろいろ)計算してくれる
. . .
したがって、Pythonで回帰分析を行うのはかなり簡単。
- 帰無仮説と対立仮説を立て、有意水準を定めれば、あとはデータを放り込んだらパソコンがやってくれます。
まとめ
- 回帰分析の初歩を概説。
- 基本は散布図に直線を当てはめるだけ。
- データがあれば、OLS推定量が計算できる。
- 検定によって、推定されたモデルの係数が統計的に有意かどうかを判断する。
- 実際の推定については、pythonがやってくれるから、心配せずにいれば良い。