Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

時系列データの分析 3 - Static Model と Finite Distributed Lag Model

(Bing Image Creator で生成: プロンプト: Close up of Agapanthus flowers, landscape of great valley, blight sky, photo)

www.crosshyou.info

の続きです。

今回は、Wooldridge(2019), Introductory Econometorics: A Modern Approach 7e

の 10-2 Examples of Time Series Regression Models のセクションにある 2つのモデルを考えてみます。

一つ目は、Static Model です。

Yt = beta0 + beta1 * Zt + Ut, t = 1, 2,..., n

というモデルです。今回は tpx = beta0 + beta1 * Lg5 + U というモデルですね。

早速 lm()関数で推定してみます。

Lg5が 1増えると、tpxは0.17増えるということですね。

二つ目のモデルは、Finite Distributed Lag Modelです。これは

Yt = beta0 + beta1 * Zt + beta2 * Zt-1 + beta3 * Zt-2 + Ut, t = 3, 4, ..., n のようなモデルです。1期前や 2期前、3期前など過去の期の説明変数が含まれているモデルです。

こちらも lm()関数で推定してみます。 

前段階でラグ1とラグ2を作成しています。Lg5の係数、0.1003は Lg5が1増えたときに、その期に tpxが0.1003増えるということで、impact propensity と呼ぶそうです。そして、Lg5, Lg5_lag1, Lg5_lag2の係数の合計値、0.1003 + 0.556 + 0.022 = 0.178 が Lg5がこれから先っずっと 1増えた状態が続くときに tpxが増える分量で、これを long-run propencity(LRP)と呼ぶそうです。0.178 は static model の 0.174とさほど変わりはないですね。

stargazer パッケージを利用して二つのモデルを並べて表示します。

static model, finite distributed lag model, ともに係数は有意な値ですね。

今回は以上です。

次回は

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# static model
static_model <- lm(tpx ~ Lg5, data = df)
coef(static_model)
#
# finite distributed lag model
# Lg5のラグ1とラグ2を作る
df <- df |> 
  mutate(Lg5_lag1 = c(NA, df$Lg5[1:601]),
         Lg5_lag2 = c(NA, NA, df$Lg5[1:600]))
#
# finite distributed lag model
FDL_model <- lm(tpx ~ Lg5 + Lg5_lag1 + Lg5_lag2, data = df)
coef(FDL_model)
#
# Long Run Propensity
sum(coef(FDL_model)[2:4])
#
# stargazer の読み込み
library(stargazer)
#
# static_model, FDL_modelの結果
stargazer(static_model, FDL_model,
          type = "text")
#