名前はまだない

データ分析とかの備忘録か, 趣味の話か, はたまた

計量時系列分析まとめ【単位根過程と共和分過程】

はじめに

色々と発展的な時系列系の分析手法に手を付けようとすると、基本的な時系列分析についての知識が抜け抜けだったので、初心に帰って沖田先生の本に目を通しました。

いつも通り簡単にまとめたいと思います。

単位根過程について

単位根過程

ここまでは、MA過程はAR過程を通して時系列の定常性について取り上げることが多くあった。

しかし、実際のデータでは定常性を持たない場合が多い。

そのような場合に、単位根過程について議論することになることがある。

単位根過程とは、ある時系列y_tが非定常過程であり、差分系列\Delta y_t = y_t -y_{t-1}が定常である過程である。

1次和分過程I(1)と呼ばれることもある。

また、単位根過程の差分系列が定常かつ反転可能なARMA(p,q)過程となる時、単位根過程は次数(p,1,q)の自己回帰和分移動平均(ARIMA)過程と呼ばれる。

ランダムウォーク

最も代表的な単位根過程としてランダムウォークがあげられる。

過程y_tが次の式で定義される時、ランダムウォークと呼ばれる。

 \displaystyle{
y_t = \delta + y_{t-1}+\epsilon_t, y_0=0
 }

AR(1)過程であるとも言える。AR(1)過程の定常条件よりランダムウォークは定常でない。 また、差分系列は次のような最も基本的な定常過程であることからランダムウォークは単位根過程である。

単位根過程のトレンド

単位根過程のトレンドを考える。

 \displaystyle{
y_t = \delta  + y_{t-1}+\epsilon_t= \delta t  + y_{0}+\epsilon_1+\epsilon_2+\dots+\epsilon_t = \delta t  +v_t
 }

ここで, y_0=0で過程し、確率的トレンドv_t = \epsilon_1+\epsilon_2+\dots+\epsilon_tとしている。 これはドリフト率\deltaの線形トレンドである。

一般的に線形トレンドを用いるモデルはトレンド定常過程と呼ばれている。

トレンド定常過程

x_tを定常過程として、次のように表現される過程はトレンド定常過程と呼ばれる。

 \displaystyle{
y_t = \delta t + x_t
 }

単位根過程とトレンド定常過程は異なり、トレンド定常過程はトレンドに従い一定の範囲内でばらつく。 一方で、単位根過程は線形的に増大する。

単位根検定

系列が単位根過程の確認には、単位根検定を用いる。

ここでは、Dickey-Fuller検定(DF)と拡張Dickey-Fuller検定(ADF)を紹介する。

DF検定

真の過程をAR(1)モデルと過程し、過程が単位根AR(1)過程であるという帰無仮説を、過程が定常AR(1)過程であるという対立仮説に対して検定するものである。

この検定で気をつけないといけないことは、帰無仮説のモデルが定数項を含むかどうかと対立仮説のモデルが定数項とトレンド項を含むかで、用いる棄却点が異なる。

ADF検定

DF検定では真のモデルがAR(1)過程と仮定していたものを、AR(p)過程であるとした検定がADF検定である。

単位根AR過程における統計的推論

見せかけの回帰と共和分過程

見せかけの回帰

見せかけの回帰とは、単位根過程y_tを定数とy_tと関係ない単位根過程x_tに回帰すると、x_tが有意な説明力を持つ変数であるように見える現象のことをさす。

独立する2つのランダムウォーク系列x_t,y_tを回帰させてみる。

それぞれは、次のようなものとします。

 \displaystyle{
y_t = y_{t-1} + \epsilon_{1t} .
 }
 \displaystyle{
x_t = x_{t-1} + \epsilon_{2t} .  
 }

ここで、 \epsilon_{1t}  \epsilon_{2t} は、正規分布の独立なiid系列である。

実際に次のように生成した2つの時系列のデータを用いて、見せかけの回帰がおこるのか確認する。

# 見せかけの回帰
N <- 200
x <- rnorm(N) %>% cumsum()
y <- rnorm(N) %>% cumsum()

reg_df <- data.frame(t = c(1:N,1:N), 
                     val = c(y, x), 
                     type = c(rep("y",N), rep("x",N)))

reg_df %>% 
  ggplot()+
  aes(x = t, y = val, group = type, col = type)+
  geom_line()

f:id:saltcooky:20201012020503p:plain

yxを回帰させてみます。

model <- 
  reg_df %>% 
  pivot_wider(names_from = type, values_from = val) %>% 
  lm(y ~ x, data = .)

結果を確認を確認してみます。

> summary(model)

Call:
lm(formula = y ~ x, data = .)

Residuals:
    Min      1Q  Median      3Q     Max 
-17.988  -7.171   1.316   5.169  20.523 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -15.02883    0.89862  -16.72   <2e-16 ***
x             0.69195    0.06127   11.29   <2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 8.754 on 198 degrees of freedom
Multiple R-squared:  0.3918, Adjusted R-squared:  0.3887 
F-statistic: 127.6 on 1 and 198 DF,  p-value: < 2.2e-16

xyを説明するp<0.01の有意な変数であると推定されている。

つまり、見せかけの回帰が発生してしまっている。

また、y_tの変動の4割程度をx_tで説明できてしまうようです。

見せかけの回帰の回避方法

見せかけの回帰の回避方法は主に二つ存在する。

一つ目は、説明変数と被説明変数の両方かどちらか一方のラグ変数を回帰に用いることである。

例えば、次のようなモデルを用いれば良い。

 \displaystyle{
y_t = \alpha + \beta_1 x_{t} + \beta_2 x_{t-1} + \beta_2 y_{t-1} + \epsilon_{t} .
 }

また、VARモデルは見せかけの回帰の問題はないと言える。

上記のモデルで、見せかけの回帰の状態にならないことを確認する。

## ラグ変数を加える
lag_model <- 
  reg_df %>% 
  pivot_wider(names_from = type, values_from = val) %>% 
  mutate(x_lag = lag(x), y_lag = lag(y)) %>% 
  slice(-1) %>% 
  lm(y ~ x + x_lag + y_lag+1, data = .)

結果を確認するとxは有意な変数ではなくなっています。

> summary(lag_model)

Call:
lm(formula = y ~ x + x_lag + y_lag + 1, data = .)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.7589 -0.6051 -0.0492  0.5809  2.1681 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.420224   0.151452  -2.775  0.00606 ** 
x            0.038307   0.065469   0.585  0.55914    
x_lag       -0.033873   0.065825  -0.515  0.60743    
y_lag        0.987397   0.007722 127.874  < 2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.949 on 195 degrees of freedom
Multiple R-squared:  0.9928, Adjusted R-squared:  0.9927 
F-statistic:  8970 on 3 and 195 DF,  p-value: < 2.2e-16

二つ目の方法は、単位根過程に従う変数の差分をとり、定常過程にしてから回帰を行う方法である。

例えば、次のようなモデルを用いれば良い。

 \displaystyle{
\delta y_t = \alpha + \beta_1 \delta  x_{t} + \epsilon_{t} .
 }

実際に、行ってみます。

diff_model <- 
  reg_df %>% 
  pivot_wider(names_from = type, values_from = val) %>% 
  mutate(x = x - lag(x),
         y = y - lag(y)) %>% 
  lm(y ~ x, data = .)
> summary(diff_model)

Call:
lm(formula = y ~ x, data = .)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.7403 -0.5738 -0.0055  0.6218  2.2348 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) -0.18693    0.06816  -2.742  0.00666 **
x            0.03033    0.06549   0.463  0.64373   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9516 on 197 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.001088,   Adjusted R-squared:  -0.003983 
F-statistic: 0.2146 on 1 and 197 DF,  p-value: 0.6437

\delta  x_{t}は有意な変数となっていない。

この方法は、注意点がいくつか必要である。

一つ目は、定常過程の差分をとってしまった場合は、過剰に差分をとってしまっているので、分析に使用できる情報が失われてしまってしまう可能性があることである。

二つ目は、過剰差分をとった系列は反転可能でないということである。

そのため、回帰分析を行う前に単位根検定を行い、慎重に単位根過程であることを確認する必要がある。

共和分過程

x_ty_tは単位根過程であることがわかっているとする。

この時、ここまで考えてきた回帰モデルの誤差項 \epsilon_{t} は単位根過程にも定常過程にもなりうる。

もし、単位根過程の場合、見せかけの回帰の関係となる。

一方で、定常過程の場合、x_ty_tの間には共和分の関係があるという。

見せかけの回帰か共和分の関係かを判断するには、誤差項 \epsilon_{t} に対して単位根検定を行う。

しかし、真の誤差項 \epsilon_t はわかり得ないため、 \epsilon_t の代わりにOLS残差誤差項 \hat \epsilon_t を用いて検定を行う。

この検定は \epsilon_{t}を用いないため、通常の単位根検定とは異なるため、Engle-Granger共和分検定と呼ばれる。

ここで共和分とは、単位根過程(I(1))であるx_ty_tから構成される、a x_t + v y_tが定常過程となるabが存在する時のx_ty_tの関係のことをさす。

この時、( a, b)'は共和分ベクトルと呼ばれる。なお、共和分ベクトルは一意には定まらない。

これを一般化すると、x_tI(t)過程とし、a' y_tI(0)となるようなaが存在する時、y_tは共和分の関係であると言える。

共和分過程は、x_ty_tの均衡関係を記述する方法を与えてくれることを意味する。

互いに独立な単位根過程w_1t, w_2tと、それぞれが互いに独立な誤差項をu_1t,u_2tがある時、次のようなシステムがあるとする。

 \displaystyle{
x_t = \alpha w_{1t} + u_{1t} .
 }
 \displaystyle{
y_t = \beta w_{1t} + u_{2t} .
 }

y_tx_tI(1)過程とI(0)過程の和であるので、I(1)過程である。 この時、二つの和分過程は次のような関係が成り立つため、両者の間には共和分関係が存在する。

 \displaystyle{
x_t - \frac{\alpha}{\beta}y_t = u_{1t} - \frac{\alpha}{\beta} u_{2t} \sim I(0) .
 }

この時の共和分ベクトルは(1,-\alpha / \beta)である。

共和分ベクトルは、一次独立な共和分ベクトルで構成される場合がある。

一次独立な共和分ベクトルの線形和で表現できるベクトルを持つ時も、共和分関係が成り立つ。

このように一般的なシステムでは、複数の共和分関係が存在する場合もある。

n変数間ではn-1個の共和分関係が存在する可能性があり、共和分の関係の数は共和分ランクと呼ばれる。

Granger表現定理とベクトル誤差修正モデル

ここで次のような共和分システムを考える。

 \displaystyle{
y_{1t} = \gamma y_{2t} + u_{1t} ., u_{1t}  \sim W.N.(\sigma_1^2)  
 }
 \displaystyle{
y_{2t} = y_{2,t-1} + u_{2t} ., u_{2t}  \sim W.N.(\sigma_2^2)  
 }

[tex:y{1t} \sim I(1)]であり、[tex:y{1t} - \gamma = u{1t} \sim I(0)]となることから、[tex:y{1t}]とy_{2t}には共和分の関係にある。

上記の式をVAR表現を次のようになる。

 \displaystyle{
\left(
    \begin{array}{cc}
      y_{1t}  \\
      y_{2t}   
    \end{array}
  \right)

 = \left(
    \begin{array}{cc}
      1 & -\gamma \\
      0 & 1 
    \end{array}
  \right)^{-1}

\left(
    \begin{array}{cc}
      0 & 0 \\
      0 & 1 
    \end{array}
  \right)

\left(
    \begin{array}{cc}
      y_{1,t-1}   \\
      y_{2,t-1}   
    \end{array}
  \right)

 + \left(
    \begin{array}{cc}
      1 & -\gamma \\
      0 & 1 
    \end{array}
  \right)^{-1}

\left(
    \begin{array}{cc}
      u_{1t}   \\
      u_{2t}   
    \end{array}
  \right)
 }
 \displaystyle{

= \left(
    \begin{array}{cc}
      0 & \gamma \\
      0 & 1 
    \end{array}
  \right)

\left(
    \begin{array}{cc}
      y_{1,t-1}   \\
      y_{2,t-1}   
    \end{array}
  \right)

+ \left(
    \begin{array}{cc}
      \epsilon_{1t}   \\
      \epsilon_{2t}   
    \end{array}
  \right)

 }

この時のAR特性方程式は次のようになる。

 \displaystyle{

0 = |\boldsymbol{I}_2 -\boldsymbol{\Phi}_1 z| = 

\left|
\left(
    \begin{array}{cc}
      1 & 0 \\
      0 & 1 
    \end{array}
  \right)
-
\left(
    \begin{array}{cc}
      0 & \gamma \\
      0 & 1 
    \end{array}
  \right) z

\right|
= 
\left|
\left(
    \begin{array}{cc}
      1 & -\gamma z \\
      0 & 1-z 
    \end{array}
  \right)

\right|
=
1-z

 }

以上のことから、VAR表現は単位根を持つ。

単位根過程の時系列のVAR過程では、差分過程にVARモデルを当てはめて分析することが多いことが多いため、ここで差分系列のVMA表現を考える。

 \displaystyle{
\left(
    \begin{array}{cc}
      \Delta y_{1t}   \\
      \Delta y_{2t}   
    \end{array}
  \right)

= \left(
    \begin{array}{cc}
      \epsilon_{1t}   \\
      \epsilon_{2t}   
    \end{array}
  \right)
+
\left(
    \begin{array}{cc}
      -1 & \gamma \\
      0 & 0
    \end{array}
  \right)

\left(
    \begin{array}{cc}
      \epsilon_{1,t-1}   \\
      \epsilon_{2,t-1}   
    \end{array}
  \right)

 }

この差分系列のMA特性方程式は次のようになる。

 \displaystyle{

0 = |\boldsymbol{I}_2 -\boldsymbol{\Psi}_1 z| = 

\left|
\left(
    \begin{array}{cc}
      1 & 0 \\
      0 & 1 
    \end{array}
  \right)
-
\left(
    \begin{array}{cc}
      -1 & \gamma \\
      0 & 0
    \end{array}
  \right) z

\right|
= 
\left|
\left(
    \begin{array}{cc}
      1-z & \gamma z \\
      0 & 1 
    \end{array}
  \right)

\right|
=
1-z

 }

差分系列のVMA表現は反転不可能であることから、差分系列はVARモデルで表現することができない。

つまり、この状態でVARモデルを当てはめてしまうと適切なモデルが得られないことになる。

正しい状態でモデルを当てはめた場合、上記のVMA表現をベクトル表現に変えると次にようになる。

 \displaystyle{
\boldsymbol{\Delta y_t} = \boldsymbol{\zeta_0 y_{t-1}} + \epsilon_{t} .
 }

ここで、\zeta_0は次のように分解できる。

 \displaystyle{
\zeta_0 = 
- \left(
    \begin{array}{cc}
      1   \\
      0   
    \end{array}
  \right)
(1- \gamma)= -\boldsymbol{ba'}
 }

そのため、\boldsymbol{\Delta y_t}は次にようになる。

 \displaystyle{
\boldsymbol{\Delta y_t} = -\boldsymbol{ba' y_{t-1}} + \epsilon_{t} .
 }

aは共和分ベクトルであり、a'y_{t-1}は共和分関係を表しており、共和分の均衡点からの距離を表現しているとも言える。

そのため、-ba'y_{t-1}は均衡点に戻る力の強さを表現し、誤差修正項と呼ばれる。

この場合の共和分システムのVARモデルはベクトル誤差修正モデル(VECM:vecter erroe correction model)と呼ばれる。

VAR(p)表現を持つ共和分システムy_tの性質は次にようになる。

(1) VAR(p)表現は単位根を持つ

(2) \Delta y_tVMA表現は反転不可能

(3) ΔytのVAR表現は存在しない。

(4) y_tは以下のVECM(p-1)で表現できる。

 \displaystyle{
\boldsymbol{\Delta y_t} =\zeta_1 \delta y_{t−1}+\zeta_2 \delta y_{t−2}+\dots+\zeta_{p−1} \delta y_{t−p+1}+\alpha + \zeta_0 \delta y_{t−1}+\epsilon_t \\
=\zeta_1 \delta y_{t−1}+\zeta_2 \delta y_{t−2}+\dots+\zeta_{p−1} \delta y_{t−p+1}+\alpha - BA'y_{t-1} \delta y_{t−1}+\epsilon_t
 }

ここで、A,Bはn×h行列であり、A′yt∼I(0)はh個の共和分関係を表す。また、共和分ランクhは行列ζ0のランクによって決まる。

(5) VECMには定常な変数しか含まれない。また、次式の全ての解の絶対値は1より大きい

 \displaystyle{
|\boldsymbol{I}_n−\zeta_1 z − \zeta_2 z^2 − \dots −\zeta_{p−1} z_{p−1} |=0
 }

のすべての解の絶対値は1より大きい。

このようにVAR表現を持つ共和分システムがVECMで表現できることをGranger表現定理と呼ぶ。

共和分ベクトルの推定

VECMにおける共和分ベクトルの推定は、Johansenの方法を用いて行う。

この方法では、OLS推定よりもモデルが誤って推定されることが少なくなる。

はじめに、y_thこの共和分関係を持つことを仮定し、次の\delta y_tに関するVAR(p-1)モデルを推定する。

 \displaystyle{
\Delta y_t = \pi_0 + \Pi_1 \Delta y_{t-1} + \Pi_2 \Delta y_{t-2}+\dots  + \Pi_{p-1} \Delta y_{t-p+1}+\alpha + BA'y_{t-1}+\epsilon_t.
 }

共和分ベクトルAをうまく推定する必要がある。

これは、正準相関の考え方を用いて\Delta y_tに関して\Delta y_tが説明できない部分が[tex:A' y{t-1}]から[tex:\Delta y{t-1}]とは無相関の部分を抽出したものと最大の相関を持つようなAを求めることができる。

実際には次のような手順をふみAを推定する。

 \displaystyle{
\Delta y_t = \pi_0 + \Pi_1 \Delta y_{t-1} + \Pi_2 \Delta y_{t-2}+\dots  + \Pi_{p-1} \Delta y_{t-p+1}+u_t.
 }

ここで、残差を\hat u_tとする。

y_{t-1}をそれまでの差分を変数等する回帰モデルを推定する。

 \displaystyle{
y_t = \theta + \Theta_1 \Delta y_{t-1} + \Theta_2 \Delta y_{t-2}+\dots  + \Theta_{p-1} \Delta y_{t-p+1}+v_t.
 }

ここで残差を\hat v_tとする。

得られた\hat u_t\hat v_tの上からh個の正準相関と正準変数を以下の手順により求める。

はじめに、\hat u_t\hat v_tから標本分散共分散共分散行列を計算する。

\hat \Sigma _{VV}^{-1} \hat \Sigma _{VU} \hat \Sigma _{UU}^{-1} \hat \Sigma _{UV}の上からh個の固有値\hat \delta_1 > \hat \delta_2 > \dots \hat \delta_hとそれに対応する基準化した固有ベクトルを求める。

この時の\hat \delta_1 >  \dots > \hat \delta_h\hat a_1 >  \dots > \hat a_h\hat u_t\hat v_tの上からh個の正準相関と正準変数となる。

そして、\hat A = ( \hat a_1 > \hat a_2 >  \dots > \hat a_h) となる

共和分の個数の推定

最大固有値検定

最大でh個の共和分関係しか存在しないという帰無仮説h+1個の共和分関係が存在するという対立仮説に対して検定を行う。

具体的には、Aを推定する時に求めた正準相関を用いて、H_0: \delta_{h+1}=0 H_1: \delta _{h+1} > 0 に対して検定を行う。

この時の尤度比検定統計量は次のものを用いる。

 \displaystyle{
CR_{me}=-T log(1-\hat \delta_{h+1})
 }

RでVECMの実行

VECMはurcaパッケージで実行できる。

今回、適用したデータはテキサス州 4 都市 (Austin, Dallas, Houston, San Antonio ) における住宅価格対数値の月単位の推移の情報です。

時系列を可視化すると次のようになります。

f:id:saltcooky:20201024154640p:plain

次に各系列に単位根過程があるかどうかを検定により確かめる。

> adf.test(hous_price_df$austin)$p.value
[1] 0.5534238
> adf.test(hous_price_df$dallas)$p.value
[1] 0.01
> adf.test(hous_price_df$houston)$p.value
[1] 0.06646952
> adf.test(hous_price_df$sa)$p.value
[1] 0.01

DallasとSan Antonioの時系列は単位根過程であると考えられる。

次は、共和分のペアの個数を推定する。

> hous_price_vecm <- ca.jo(hous_price_df[,-1],
+                   ecdet="none",
+                   type="eigen",
+                   K=2,
+                   spec="longrun",
+                   season=12)
> summary(hous_price_vecm)

###################### 
# Johansen-Procedure # 
###################### 

Test type: maximal eigenvalue statistic (lambda max) , with linear trend 

Eigenvalues (lambda):
[1] 0.2637011535 0.2533748511 0.0767159276 0.0001518756

Values of teststatistic and critical values of test:

          test 10pct  5pct  1pct
r <= 3 |  0.03  6.50  8.18 11.65
r <= 2 | 13.25 12.91 14.90 19.19
r <= 1 | 48.50 18.90 21.07 25.75
r = 0  | 50.82 24.78 27.14 32.14

Eigenvectors, normalised to first column:
(These are the cointegration relations)

           austin.l2  dallas.l2 houston.l2      sa.l2
austin.l2   1.000000  1.0000000  1.0000000  1.0000000
dallas.l2  -3.202659  1.5808753 -1.3630429 -3.2080036
houston.l2  3.440353 -1.8835494 -0.6240036 -3.0200679
sa.l2      -2.430495 -0.9241837  0.7839122  0.9822356

Weights W:
(This is the loading matrix)

            austin.l2   dallas.l2  houston.l2        sa.l2
austin.d  -0.02693462 -0.13311257 -0.06148835 0.0004800013
dallas.d   0.05252225 -0.05843239  0.06929506 0.0002381043
houston.d -0.05231963  0.15412817  0.03669803 0.0002859208
sa.d       0.15120344  0.16783843 -0.02301730 0.0001847186

二つの時(r <= 2)は有意でなく、二つの時(r <= 3)は有意となっているため、この時系列の中には2つの共和分過程のペアがあると考えられる。

そして、VECMの推定を行う。

> hous_price_vecm_var <- vec2var(hous_price_vecm,r=2)
> print(hous_price_vecm_var)

Coefficient matrix of lagged endogenous variables:

A1:
          austin.l1   dallas.l1 houston.l1       sa.l1
austin   0.54281603  0.11146170  0.2274787 -0.08612159
dallas  -0.05059164  0.43572873  0.1112064 -0.05768951
houston -0.03019581  0.26375438  0.1887222  0.09027358
sa       0.07498897 -0.03928955  0.0953280  0.36181411


A2:
        austin.l2  dallas.l2  houston.l2       sa.l2
austin  0.2971368 -0.2356337 -0.06941915  0.27460650
dallas  0.0446815  0.3036861  0.17954894 -0.01596326
houston 0.1320044  0.1474650  0.34097183 -0.10555376
sa      0.2440529 -0.1796319  0.10873317  0.11557319


Coefficient matrix of deterministic regressor(s).

          constant         sd1         sd2           sd3         sd4          sd5          sd6
austin  -0.6541557 -0.06314132 -0.02970748 -0.0181009239 -0.04186709 -0.009854374  0.011686482
dallas   0.6095111 -0.01768368 -0.03363726 -0.0003304871  0.00700978  0.009304171 -0.009196046
houston -0.3898409 -0.06438824 -0.05590866 -0.0132388414 -0.03691440 -0.040492730 -0.020037167
sa       2.4675783 -0.03228312 -0.05289700 -0.0195823748 -0.02691862  0.017872223  0.011239323
                  sd7         sd8         sd9        sd10         sd11
austin  -0.0324529892 -0.04885083 -0.05033339 -0.04691418 -0.003337138
dallas  -0.0162902718 -0.04426503 -0.05579661 -0.04432015 -0.029120635
houston -0.0440364683 -0.06557063 -0.08332393 -0.06954569 -0.080653707
sa      -0.0007947875 -0.02226767 -0.05144253 -0.05522944 -0.015275015

VARモデルと同様に予測やインパルス応答関数を確認することができる。

hous_price_vecm_pred <- predict(hous_price_vecm_var,n.ahead=25,ci=0.95)
plot(hous_price_vecm_pred)

f:id:saltcooky:20201024155104p:plain

hous_price_vecm_irf <- irf(hous_price_vecm_var,n.ahead=25,ci=0.95)
plot(hous_price_vecm_irf, plot.type="multiple", lwd=2)

f:id:saltcooky:20201025155444j:plain

参考