7.1 線形モデル

線形単回帰

一番単純なケースの回帰モデルは、以下のように、予測対象変数\(y\)と1個の予測変数\(x\)との間に線形関係があるとします。 \[ y_t = \beta_0 + \beta_1 x_t + \varepsilon_t \]7.1は、そうしたモデルから人工的に作り出したデータ例です。係数\(\beta_0\)\(\beta_1\)は、それぞれ直線の切片と傾きです。切片\(\beta_0\)は、\(x=0\)の場合の\(y\)の予測値。傾き\(\beta_1\)は、\(x\)が1単位増加した場合の\(y\)の予測値の平均的な変化です。

線形単回帰モデルからのデータ例

図 7.1: 線形単回帰モデルからのデータ例

観測値は直線上に並ぶのではなく、その周りに散らばっていることに注意してください。各観測値\(y_t\)は、モデルの体系的な部分、というか、モデルで説明される部分\(\beta_0+\beta_1x_t\)と、ランダムな「誤差」\(\varepsilon_t\)から成っていると考えることができます。「誤差」項は間違いを示唆しているのではなく、根底にある直線モデルからの乖離を表しています。誤差項は、\(x_t\)以外に\(y_t\)に影響し得る全てを取り込んでいるのです。

事例: 米国個人消費

7.2は、米国の個人消費\(y\)と可処分所得\(x\)を、どちらも実質の四半期ごとの伸び率(%)の時系列で、1970 Q1から2019 Q2まで示しています。

us_change %>%
  pivot_longer(c(Consumption, Income), names_to="Series") %>%
  mutate(Series = recode(Series,
                         "Consumption" = "個人消費", "Income" = "可処分所得")) %>% 
  autoplot(value) +
  labs(y = "伸び率 (%)") +
  guides(colour = guide_legend(title = "系列"))
米国の個人消費と可処分所得の伸び率(%)

図 7.2: 米国の個人消費と可処分所得の伸び率(%)

7.3は、個人消費の伸び率と可処分所得の伸び率の散布図で、推計された以下の回帰線も描いています。

\[ \hat{y}_t=0.54 + 0.27x_t \] (\(y\)の上に「ハット」を載せているのは、これがモデルから予測された\(y\)の値だと、示すためです。)

us_change %>%
  ggplot(aes(x = Income, y = Consumption)) +
  labs(y = "個人消費 (四半期伸び率、%)",
       x = "可処分所得 (四半期伸び率、%)") +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)
個人消費の四半期伸び率と可処分所得の四半期伸び率の散布図と当てはめた回帰線

図 7.3: 個人消費の四半期伸び率と可処分所得の四半期伸び率の散布図と当てはめた回帰線

上の回帰線は、以下のように、TSLM()関数を使って推計されます。

us_change %>%
  model(TSLM(Consumption ~ Income)) %>%
  report()
#> Series: Consumption 
#> Model: TSLM 
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -2.5824 -0.2778  0.0186  0.3233  1.4223 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   0.5445     0.0540   10.08  < 2e-16 ***
#> Income        0.2718     0.0467    5.82  2.4e-08 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 0.591 on 196 degrees of freedom
#> Multiple R-squared: 0.147,   Adjusted R-squared: 0.143
#> F-statistic: 33.8 on 1 and 196 DF, p-value: 2.4e-08

TSLM()が係数を計算する方法については、7.2節で議論します。

当てはめた線の傾きは正で、個人消費と可処分所得の正の関係を反映しています。傾きの係数は、\(x\)の1単位の増加(可処分所得の1%増加)が、\(y\)を平均して0.27単位増加(平均して個人消費の伸び率を0.27%ポイント増加)させることを示しています。言い換えれば、推計された回帰線によると、\(x\)が1(可処分所得が1%増加)の場合、\(y\)(個人消費の伸び率、%)の予測値は\(0.54 + 0.27 \times 1 = 0.82\)になります。

切片が解釈できるのは、\(x=0\)という値に意味がある場合だけです。このケースでは、\(x=0\)(つまり、可処分所得が前四半期から変化していない場合)なら、\(y\)の予測値は0.54(つまり、個人消費は平均して0.54%だけ増加)になります。\(x=0\)が意味を成さない場合でも、切片はモデルの重要な一部です。切片がないと、傾きの係数は不必要に歪められるかもしれません。回帰線が「原点を通る」ようにする必要がある場合を除いて、いつも切片を含めるべきです。以下では、モデルはいつも切片を含むと想定します。

線形重回帰

予測変数が2個以上ある場合は、重回帰モデルと言います。重回帰モデルの一般式は、以下のようになります。 \[\begin{equation} y_t = \beta_{0} + \beta_{1} x_{1,t} + \beta_{2} x_{2,t} + \cdots + \beta_{k} x_{k,t} + \varepsilon_t \tag{7.1} \end{equation}\] ただし、\(y\)は予測対象変数で、\(x_{1},\dots,x_{k}\)\(k\)個の予測変数です。予測変数は全て数値でなければなりません。係数\(\beta_{1},\dots,\beta_{k}\)は、 モデル内の他の予測変数の効果考慮後の、予測変数それぞれの効果を測っています。つまり、係数は予測変数の限界効果を測っているのです。

事例: 米国個人消費

7.4は、米国の個人消費を予測するのに役立つかもしれない追加の予測変数を示しています。鉱工業生産、個人貯蓄の四半期伸び率(%)、失業率の(既にパーセントなので)四半期変化です。個人消費は可処分所得だけでなく他の予測変数にも依存すると考えると、線形重回帰モデルの構築で、より正確な予測を生成できる可能性があります。

us_change %>%
  select(-Consumption, -Income) %>%
  pivot_longer(-Quarter) %>%
  mutate(
    name = recode(name, "Production" = "鉱工業生産", "Savings" = "個人貯蓄",
                        "Unemployment" = "失業率"),
    name = factor(name, levels = c("鉱工業生産", "個人貯蓄", "失業率"))
    ) %>% 
  ggplot(aes(Quarter, value, color = name)) +
  geom_line() +
  facet_grid(name ~ ., scales = "free_y") +
  guides(colour = "none") +
  labs(y="変化 (%)")
米国の鉱工業生産と個人貯蓄の四半期伸び率(%)と失業率の四半期変化、1970Q1-2019Q2

図 7.4: 米国の鉱工業生産と個人貯蓄の四半期伸び率(%)と失業率の四半期変化、1970Q1-2019Q2

7.5は、5つの変数の散布図マトリックスです。最初の列が、予測対象変数(個人消費)と予測変数それぞれとの関係を示しています。可処分所得、鉱工業生産とでは正の関係を、個人貯蓄、失業率とでは負の関係を示しています。これらの関係の強さは1行目の相関係数で示されています。その他の散布図や相関係数は、予測変数同士の関係を示しています。

us_change %>%
  rename(
    "個人消費" = Consumption, "可処分所得" = Income, "鉱工業生産" = Production,
    "個人貯蓄" = Savings, "失業率" = Unemployment
  ) %>% 
  GGally::ggpairs(columns = 2:6)
米国個人消費と4つの予測変数の散布図マトリックス

図 7.5: 米国個人消費と4つの予測変数の散布図マトリックス

想定

線形回帰モデルを使う際は、(7.1)式の変数について、いくつか暗黙の想定を置いています。

第一に、モデルは現実をそこそこ近似している、と想定しています。つまり、予測対象変数と予測変数の関係はこの線形方程式を満たす、と想定しているわけです。

第二に、誤差\((\varepsilon_{1},\dots,\varepsilon_{T})\)について以下のように想定しています。

  • 平均はゼロ。でないと、予測は体系的にバイアスがあることになる。
  • 自己相関はない。でないと、データ中にまだ利用していない情報が残り、予測は非効率となる。
  • 予測変数と無相関。でないと、モデルの体系的部分に含めるべき情報が残っていることになる。

想定ではありませんが、誤差が均一分散\(\sigma^2\)の正規分布だと、区間予測が容易に生成できるので助かります。

線形回帰モデルのもう一つの重要な想定は、どの予測変数\(x\)も確率変数でないことです。実験室で管理された実験を行うなら、それぞれの\(x\)値を(ランダムにならないよう)管理して、その結果\(y\)値がどうなるか観測できましょう。しかし、ビジネスや経済でのほとんどのデータでは、\(x\)値は管理できず、単に観測するだけです。ですから、想定していることになります。