回帰モデルの考え方と推定
(Press ?
for help, n
and p
for next and previous slide)
村田 昇
VINT | LPRICE2 | WRAIN | DEGREES | HRAIN | TIME_SV |
---|---|---|---|---|---|
1952 | -0.99868 | 600 | 17.1167 | 160 | 31 |
1953 | -0.45440 | 690 | 16.7333 | 80 | 30 |
1954 | NA | 430 | 15.3833 | 180 | 29 |
1955 | -0.80796 | 502 | 17.1500 | 130 | 28 |
1956 | NA | 440 | 15.6500 | 140 | 27 |
1957 | -1.50926 | 420 | 16.1333 | 110 | 26 |
1958 | -1.71655 | 582 | 16.4167 | 187 | 25 |
1959 | -0.41800 | 485 | 17.4833 | 187 | 24 |
1960 | -1.97491 | 763 | 16.4167 | 290 | 23 |
1961 | 0.00000 | 830 | 17.3333 | 38 | 22 |
1962 | -1.10572 | 697 | 16.3000 | 52 | 21 |
1963 | -1.78098 | 608 | 15.7167 | 155 | 20 |
1964 | -1.18435 | 402 | 17.2667 | 96 | 19 |
1965 | -2.24194 | 602 | 15.3667 | 267 | 18 |
Figure 1: 価格と気候の散布図
回帰式
\begin{equation} \text{LPRICE2} = \beta_{0} + \beta_{1}\times\text{WRAIN} + \beta_{2}\times\text{DEGREES} + \beta_{3}\times\text{HRAIN} + \beta_{4}\times\text{TIME SV} \end{equation}
Characteristic | Beta | 95% CI1 | p-value |
---|---|---|---|
(Intercept) | -12.15 | -15.65, -8.644 | <0.001 |
WRAIN | 0.0012 | 0.0002, 0.0022 | 0.024 |
DEGREES | 0.6164 | 0.4190, 0.8138 | <0.001 |
HRAIN | -0.0039 | -0.0055, -0.0022 | <0.001 |
TIME_SV | 0.0238 | 0.0090, 0.0387 | 0.003 |
R² = 0.828; Adjusted R² = 0.796; Statistic = 26.4; p-value = <0.001 | |||
1 CI = Confidence Interval |
Figure 2: 重回帰による予測値と実際の価格
回帰式 : \(y\) を \(x_1,\dotsc,x_p\) で説明するための関係式
\begin{equation} y=f(x_1,\dotsc,x_p) \end{equation}
観測データ : n個の \((y,x_1,\dotsc,x_p)\) の組
\begin{equation} \{(y_i,x_{i1},\dotsc,x_{ip})\}_{i=1}^n \end{equation}
\(f\) として 1次関数 を考える
ある定数 \(\beta_0,\beta_1,\dots,\beta_p\) を用いた式 :
\begin{equation} f(x_1,\dots,x_p)=\beta_0+\beta_1x_1+\cdots+\beta_px_p \end{equation}
線形回帰式
\begin{equation} y=\beta_0+\beta_1x_1+\cdots+\beta_px_p \end{equation}
確率モデル : データのばらつきを表す項 \(\epsilon_i\) を追加
\begin{equation} y_i=\beta_0+\beta_1 x_{i1}+\cdots+\beta_px_{ip}+\epsilon_i\quad (i=1,\dots,n) \end{equation}
回帰係数 \(\boldsymbol{\beta}=(\beta_0,\beta_1,\dotsc,\beta_p)^{\mathsf{T}}\) を持つ回帰式の残差
\begin{equation} e_i(\boldsymbol{\beta})= y_i-(\beta_0+\beta_1 x_{i1}+\dotsb+\beta_px_{ip}) \quad (i=1,\dotsc,n) \end{equation}
残差平方和 (residual sum of squares)
\begin{equation} S(\boldsymbol{\beta}) = \sum_{i=1}^ne_i(\boldsymbol{\beta})^2 \end{equation}
最小二乗推定量 (least squares estimator)
残差平方和 \(S(\boldsymbol{\beta})\) を最小にする \(\boldsymbol{\beta}\)
\begin{equation} \boldsymbol{\hat{\beta}} = (\hat{\beta}_0,\hat{\beta}_1,\dotsc,\hat{\beta}_p)^{\mathsf{T}} = \arg\min_{\boldsymbol{\beta}}S(\boldsymbol{\beta}) \end{equation}
デザイン行列 (design matrix)
\begin{equation} X= \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1p} \\ 1 & x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{np} \end{pmatrix} \end{equation}
目的変数,誤差,回帰係数のベクトル
\begin{equation} \boldsymbol{y}= \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{pmatrix},\quad \boldsymbol{\epsilon}= \begin{pmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{pmatrix},\quad \boldsymbol{\beta}= \begin{pmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_p \end{pmatrix} \end{equation}
確率モデル
\begin{equation} \boldsymbol{y} =X\boldsymbol{\beta}+\boldsymbol{\epsilon} \end{equation}
残差平方和
\begin{equation} S(\boldsymbol{\beta}) =(\boldsymbol{y}-X\boldsymbol{\beta})^{\mathsf{T}} (\boldsymbol{y}-X\boldsymbol{\beta}) \end{equation}
解 \(\boldsymbol{\beta}\) では残差平方和の勾配は零ベクトル
\begin{equation} \frac{\partial S}{\partial\boldsymbol{\beta}}(\boldsymbol{\beta}) = \Bigl( \frac{\partial S}{\partial\beta_0}(\boldsymbol{\beta}), \frac{\partial S}{\partial\beta_1}(\boldsymbol{\beta}),\dotsc, \frac{\partial S}{\partial\beta_p}(\boldsymbol{\beta}) \Bigr)^{\mathsf{T}} =\boldsymbol{0} \end{equation}
残差平方和を展開しておく
\begin{align} S(\boldsymbol{\beta}) &= (\boldsymbol{y}-X\boldsymbol{\beta})^{\mathsf{T}} (\boldsymbol{y}-X\boldsymbol{\beta})\\ &= \boldsymbol{y}^{\mathsf{T}}\boldsymbol{y} -\boldsymbol{y}^{\mathsf{T}}X\boldsymbol{\beta} -(X\boldsymbol{\beta})^{\mathsf{T}}\boldsymbol{y} +(X\boldsymbol{\beta})^{\mathsf{T}}X\boldsymbol{\beta}\\ &= \boldsymbol{y}^{\mathsf{T}}\boldsymbol{y} -\boldsymbol{y}^{\mathsf{T}}X\boldsymbol{\beta} -\boldsymbol{\beta}^{\mathsf{T}}X^{\mathsf{T}}\boldsymbol{y} +\boldsymbol{\beta}^{\mathsf{T}}X^{\mathsf{T}}X\boldsymbol{\beta}\\ \end{align}
ベクトルによる微分を行うと以下のようになる
\begin{align} \frac{\partial S}{\partial\boldsymbol{\beta}}(\boldsymbol{\beta}) &= -(\boldsymbol{y}^{\mathsf{T}}X)^{\mathsf{T}} -X^{\mathsf{T}}\boldsymbol{y} +(X^{\mathsf{T}}X+(X^{\mathsf{T}}X)^{\mathsf{T}})\boldsymbol{\beta}\\ &= -2X^{\mathsf{T}}\boldsymbol{y} +2X^{\mathsf{T}}X\boldsymbol{\beta} \end{align}
したがって \(\boldsymbol{\beta}\) の満たす条件は以下となる
\begin{equation} -2X^{\mathsf{T}}\boldsymbol{y} +2X^{\mathsf{T}}X\boldsymbol{\beta} =0 \quad\text{ より } \end{equation}\begin{equation} X^{\mathsf{T}}X\boldsymbol{\beta} = X^{\mathsf{T}}\boldsymbol{y} \end{equation}
成分ごとの計算は以下のようになる
\begin{equation} \frac{\partial S}{\partial\beta_j}(\boldsymbol{\beta}) = -2\sum_{i=1}^n\Bigl(y_i-\sum_{k=0}^p\beta_kx_{ik}\Bigr)x_{ij} =0 \end{equation}ただし, \(x_{i0}=1\; (i=1,\dotsc,n)\), \(j=0,1,\dotsc,p\)
\begin{equation} \sum_{i=1}^nx_{ij}\Bigl(\sum_{k=0}^px_{ik}\beta_k\Bigr) = \sum_{i=1}^nx_{ij}y_i\quad(j=0,1,\dotsc,p) \end{equation}\(x_{ij}\) は行列 \(X\) の \((i,j)\) 成分であることに注意
正規方程式 (normal equation)
\begin{equation} X^{\mathsf{T}}X\boldsymbol{\beta} =X^{\mathsf{T}}\boldsymbol{y} \end{equation}
Gram行列 (Gram matrix)
\begin{equation} X^{\mathsf{T}}X \end{equation}
正規方程式の解
\begin{equation} \boldsymbol{\hat{\beta}} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} \end{equation}
最小二乗推定量がただ一つだけ存在する条件
これらは同値条件
あてはめ値 / 予測値 (fitted values / predicted values)
\begin{equation} \boldsymbol{\hat{y}} = X\boldsymbol{\hat{\beta}} = \hat{\beta}_{0} X_\text{第0列} + \dots + \hat{\beta}_{p} X_\text{第p列} \end{equation}
Figure 3: \(n=3\) , \(p+1=2\) の場合の最小二乗法による推定
残差 (residuals) \(\boldsymbol{\hat{\epsilon}}=\boldsymbol{y}-\boldsymbol{\hat{y}}\) はあてはめ値 \(\boldsymbol{\hat{y}}\) に直交
\begin{equation} \boldsymbol{\hat{\epsilon}}\cdot\boldsymbol{\hat{y}}=0 \end{equation}
説明変数および目的変数の標本平均
\begin{align} \boldsymbol{\bar{x}} &=\frac{1}{n}\sum_{i=1}^n\boldsymbol{x}_i, &\bar{y} % \overline{\boldsymbol{x}^2}&=\frac{1}{n}\sum_{i=1}^n\boldsymbol{x}_i\boldsymbol{x}_i^{\mathsf{T}},& &=\frac{1}{n}\sum_{i=1}^ny_i,& % \overline{\boldsymbol{x}y}&=\frac{1}{n}\sum_{i=1}^n\boldsymbol{x}_iy_i \end{align}
\(\boldsymbol{\hat{\beta}}\) が最小二乗推定量のとき以下が成立
\begin{equation} \bar{y} = (1,\boldsymbol{\bar{x}}^{\mathsf{T}})\boldsymbol{\hat{\beta}} \end{equation}
残差の標本平均が0となる
目的変数や残差のベクトルについて以下を示せばよい
\begin{equation} \boldsymbol{1}^{\mathsf{T}}(\boldsymbol{y}-\boldsymbol{\hat{y}}) =\boldsymbol{1}^{\mathsf{T}}\boldsymbol{\hat{\epsilon}} =0 \end{equation}ただし \(\boldsymbol{1}=(1,\dotsc,1)^{\mathsf{T}}\) とする
回帰式が標本平均を通る
\begin{equation} \bar{y} = (1,\boldsymbol{\bar{x}}^{\mathsf{T}})\boldsymbol{\hat{\beta}} \end{equation}
残差の表現を整理する
\begin{align} \boldsymbol{\hat{\epsilon}} &= \boldsymbol{y}-\boldsymbol{\hat{y}} = \boldsymbol{y}-X\boldsymbol{\hat{\beta}}\\ &= \boldsymbol{y}-X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} \end{align}
左から \(X^{\mathsf{T}}\) を乗じる
\begin{equation} X^{\mathsf{T}}\boldsymbol{y}-X^{\mathsf{T}}X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} = X^{\mathsf{T}}\boldsymbol{y}-X^{\mathsf{T}}\boldsymbol{y} =0 \end{equation}
説明変数の標本平均をデザイン行列で表す
\begin{equation} \boldsymbol{1}^{\mathsf{T}}X = n(1,\boldsymbol{\bar{x}}^{\mathsf{T}}) \end{equation}
したがって以下が成立する
\begin{align} n(1,\boldsymbol{\bar{x}}^{\mathsf{T}})\boldsymbol{\hat{\beta}} &= \boldsymbol{1}^{\mathsf{T}}X\boldsymbol{\hat{\beta}}\\ &= \boldsymbol{1}^{\mathsf{T}}\boldsymbol{\hat{y}} = \boldsymbol{1}^{\mathsf{T}}\boldsymbol{y}\\ &= n\bar{y} \end{align}
観測値と推定値 \(\boldsymbol{\hat{\beta}}\) による予測値の差
\begin{equation} \hat{\epsilon}_i= y_i-(\hat{\beta}_0+\hat{\beta}_1 x_{i1}+\dotsb+\hat{\beta}_px_{ip}) \quad (i=1,\dotsc,n) \end{equation}
残差ベクトル
\begin{equation} \boldsymbol{\hat{\epsilon}} =\boldsymbol{y}-\boldsymbol{\hat{y}} =(\hat{\epsilon}_1,\hat{\epsilon}_2,\dotsc,\hat{\epsilon}_n)^{\mathsf{T}} \end{equation}
3つのばらつき(平方和)の関係
\begin{equation} (\boldsymbol{y}-\bar{\boldsymbol{y}})^{\mathsf{T}} (\boldsymbol{y}-\bar{\boldsymbol{y}}) = (\boldsymbol{y}-\boldsymbol{\hat{y}})^{\mathsf{T}} (\boldsymbol{y}-\boldsymbol{\hat{y}})+ (\boldsymbol{\hat{y}}-\bar{\boldsymbol{y}})^{\mathsf{T}} (\boldsymbol{\hat{y}}-\bar{\boldsymbol{y}}) \end{equation}\begin{equation} S_y=S+S_r \end{equation}
あてはめ値と残差のベクトルが直交する
\begin{equation} \boldsymbol{\hat{y}}^{\mathsf{T}}(\boldsymbol{y}-\boldsymbol{\hat{y}}) = \boldsymbol{\hat{y}}^{\mathsf{T}}\boldsymbol{\hat{\epsilon}} =0 \end{equation}
残差平方和の分解が成り立つ
\begin{equation} S_y=S+S_r \end{equation}
残差の表現を整理する
\begin{align} \boldsymbol{\hat{\epsilon}} &= \boldsymbol{y}-X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y}\\ &= (I-X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}})\boldsymbol{y} \end{align}
左から \(\boldsymbol{\hat{y}}\) を乗じる
\begin{align} \boldsymbol{\hat{y}}^{\mathsf{T}}\boldsymbol{\hat{\epsilon}} &= \boldsymbol{\hat{\beta}}^{\mathsf{T}}X^{\mathsf{T}} (I-X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}})\boldsymbol{y}\\ &= \boldsymbol{\hat{\beta}}^{\mathsf{T}} (X^{\mathsf{T}}-X^{\mathsf{T}}X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}})\boldsymbol{y}\\ &= \boldsymbol{\hat{\beta}}^{\mathsf{T}} (X^{\mathsf{T}}-X^{\mathsf{T}})\boldsymbol{y}=0 \end{align}
以下の関係を用いて展開すればよい
\begin{equation} \boldsymbol{y}-\bar{\boldsymbol{y}} =\boldsymbol{y}-\boldsymbol{\hat{y}}+\boldsymbol{\hat{y}}-\bar{\boldsymbol{y}} \end{equation}ただし \(\bar{\boldsymbol{y}}=\bar{y}\boldsymbol{1}\)
このとき以下の項は0になる
\begin{equation} (\boldsymbol{\hat{y}}-\bar{\boldsymbol{y}})^{\mathsf{T}} (\boldsymbol{y}-\boldsymbol{\hat{y}}) = \boldsymbol{\hat{y}}^{\mathsf{T}} (\boldsymbol{y}-\boldsymbol{\hat{y}}) - \bar{y}\boldsymbol{1}^{\mathsf{T}} (\boldsymbol{y}-\boldsymbol{\hat{y}}) =0 \end{equation}
ばらつきの分解
\begin{equation} S_y\;\text{(目的変数)} =S\;\text{(残差)} +S_r\;\text{(あてはめ値)} \end{equation}
回帰式で説明できるばらつきの比率
\begin{equation} \text{(回帰式の寄与率)} = \frac{S_{r}}{S_{y}} = 1-\frac{S}{S_{y}} \end{equation}
決定係数 (R-squared)
\begin{equation} R^2 = 1-\frac{\sum_{i=1}^n\hat{\epsilon}_i^2}{\sum_{i=1}^n(y_i-\bar{y})^2} \end{equation}
自由度調整済み決定係数 (adjusted R-squared)
\begin{equation} \bar{R}^2 = 1-\frac{\frac{1}{n{-}p{-}1}\sum_{i=1}^n\hat{\epsilon}_i^2} {\frac{1}{n{-}1}\sum_{i=1}^n(y_i-\bar{y})^2} \end{equation}
日付 | 気温 | 降雨 | 日射 | 降雪 | 風向 | 風速 | 気圧 | 湿度 | 雲量 |
---|---|---|---|---|---|---|---|---|---|
2023-09-01 | 29.2 | 0.0 | 24.01 | 0 | SSE | 4.3 | 1012.1 | 71 | 2.0 |
2023-09-02 | 29.6 | 0.0 | 22.07 | 0 | SSE | 3.1 | 1010.3 | 72 | 8.0 |
2023-09-03 | 29.1 | 3.5 | 18.64 | 0 | ENE | 2.8 | 1010.6 | 74 | 9.3 |
2023-09-04 | 26.1 | 34.0 | 7.48 | 0 | N | 2.6 | 1007.5 | 96 | 10.0 |
2023-09-05 | 29.3 | 0.0 | 22.58 | 0 | S | 3.5 | 1005.2 | 77 | 3.5 |
2023-09-06 | 27.5 | 0.5 | 13.17 | 0 | SSW | 2.6 | 1003.6 | 79 | 10.0 |
2023-09-07 | 27.0 | 0.5 | 11.01 | 0 | ENE | 2.5 | 1007.9 | 72 | 10.0 |
2023-09-08 | 21.9 | 107.5 | 2.10 | 0 | NW | 3.4 | 1007.8 | 98 | 10.0 |
2023-09-09 | 24.8 | 1.0 | 8.81 | 0 | S | 2.2 | 1006.8 | 93 | 7.5 |
2023-09-10 | 27.8 | 0.0 | 17.57 | 0 | S | 3.1 | 1009.1 | 83 | 6.3 |
2023-09-11 | 28.1 | 0.0 | 17.19 | 0 | SSE | 3.1 | 1010.1 | 79 | 9.0 |
2023-09-12 | 27.7 | 0.0 | 20.02 | 0 | SSE | 2.8 | 1010.0 | 76 | 4.8 |
2023-09-13 | 28.0 | 0.0 | 22.00 | 0 | SE | 2.4 | 1010.9 | 74 | 4.5 |
2023-09-14 | 28.2 | 0.0 | 14.54 | 0 | SSE | 2.8 | 1009.9 | 80 | 7.0 |
2023-09-15 | 27.4 | 10.5 | 9.21 | 0 | NE | 2.0 | 1010.9 | 88 | 8.5 |
関連するデータの散布図
Figure 4: 散布図
モデル1の推定結果
Figure 5: モデル1
モデル2の推定結果
Figure 6: モデル2
モデル3の推定結果
Figure 7: モデル3
観測値とあてはめ値の比較
Figure 8: モデルの比較
決定係数(\(R^{2}\), Adjusted \(R^{2}\))
Characteristic | モデル1 | モデル2 | モデル3 | モデル4 | モデル5 | |||||
---|---|---|---|---|---|---|---|---|---|---|
Beta | SE1 | Beta | SE1 | Beta | SE1 | Beta | SE1 | Beta | SE1 | |
気圧 | -0.21 | 0.135 | -0.36 | 0.090 | -0.32 | 0.098 | -0.36 | 0.092 | ||
日射 | 0.25 | 0.057 | 0.30 | 0.048 | 0.35 | 0.069 | 0.32 | 0.069 | ||
湿度 | 0.05 | 0.052 | ||||||||
雲量 | 0.05 | 0.151 | ||||||||
R² | 0.082 | 0.414 | 0.632 | 0.644 | 0.633 | |||||
Adjusted R² | 0.049 | 0.393 | 0.604 | 0.603 | 0.591 | |||||
1 SE = Standard Error |