はじめに
色々と発展的な時系列系の分析手法に手を付けようとすると、基本的な時系列分析についての知識が抜け抜けだったので、初心に帰って沖田先生の本に目を通しました。
経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)
- 作者:竜義, 沖本
- 発売日: 2010/02/01
- メディア: 単行本
いつも通り簡単にまとめたいと思います。
単位根過程について
単位根過程
ここまでは、MA過程はAR過程を通して時系列の定常性について取り上げることが多くあった。
しかし、実際のデータでは定常性を持たない場合が多い。
そのような場合に、単位根過程について議論することになることがある。
単位根過程とは、ある時系列が非定常過程であり、差分系列が定常である過程である。
1次和分過程I(1)と呼ばれることもある。
また、単位根過程の差分系列が定常かつ反転可能なARMA(p,q)過程となる時、単位根過程は次数(p,1,q)の自己回帰和分移動平均(ARIMA)過程と呼ばれる。
ランダムウォーク
最も代表的な単位根過程としてランダムウォークがあげられる。
過程が次の式で定義される時、ランダムウォークと呼ばれる。
AR(1)過程であるとも言える。AR(1)過程の定常条件よりランダムウォークは定常でない。 また、差分系列は次のような最も基本的な定常過程であることからランダムウォークは単位根過程である。
単位根過程のトレンド
単位根過程のトレンドを考える。
ここで, で過程し、確率的トレンドとしている。 これはドリフト率の線形トレンドである。
一般的に線形トレンドを用いるモデルはトレンド定常過程と呼ばれている。
トレンド定常過程
を定常過程として、次のように表現される過程はトレンド定常過程と呼ばれる。
単位根過程とトレンド定常過程は異なり、トレンド定常過程はトレンドに従い一定の範囲内でばらつく。 一方で、単位根過程は線形的に増大する。
単位根検定
系列が単位根過程の確認には、単位根検定を用いる。
ここでは、Dickey-Fuller検定(DF)と拡張Dickey-Fuller検定(ADF)を紹介する。
DF検定
真の過程をAR(1)モデルと過程し、過程が単位根AR(1)過程であるという帰無仮説を、過程が定常AR(1)過程であるという対立仮説に対して検定するものである。
この検定で気をつけないといけないことは、帰無仮説のモデルが定数項を含むかどうかと対立仮説のモデルが定数項とトレンド項を含むかで、用いる棄却点が異なる。
ADF検定
DF検定では真のモデルがAR(1)過程と仮定していたものを、AR(p)過程であるとした検定がADF検定である。
単位根AR過程における統計的推論
見せかけの回帰と共和分過程
見せかけの回帰
見せかけの回帰とは、単位根過程を定数とと関係ない単位根過程に回帰すると、が有意な説明力を持つ変数であるように見える現象のことをさす。
独立する2つのランダムウォーク系列,を回帰させてみる。
それぞれは、次のようなものとします。
ここで、とは、正規分布の独立な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()
にを回帰させてみます。
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
はを説明するp<0.01の有意な変数であると推定されている。
つまり、見せかけの回帰が発生してしまっている。
また、の変動の4割程度をで説明できてしまうようです。
見せかけの回帰の回避方法
見せかけの回帰の回避方法は主に二つ存在する。
一つ目は、説明変数と被説明変数の両方かどちらか一方のラグ変数を回帰に用いることである。
例えば、次のようなモデルを用いれば良い。
また、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 = .)
結果を確認するとは有意な変数ではなくなっています。
> 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
二つ目の方法は、単位根過程に従う変数の差分をとり、定常過程にしてから回帰を行う方法である。
例えば、次のようなモデルを用いれば良い。
実際に、行ってみます。
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
は有意な変数となっていない。
この方法は、注意点がいくつか必要である。
一つ目は、定常過程の差分をとってしまった場合は、過剰に差分をとってしまっているので、分析に使用できる情報が失われてしまってしまう可能性があることである。
二つ目は、過剰差分をとった系列は反転可能でないということである。
そのため、回帰分析を行う前に単位根検定を行い、慎重に単位根過程であることを確認する必要がある。
共和分過程
とは単位根過程であることがわかっているとする。
この時、ここまで考えてきた回帰モデルの誤差項は単位根過程にも定常過程にもなりうる。
もし、単位根過程の場合、見せかけの回帰の関係となる。
一方で、定常過程の場合、との間には共和分の関係があるという。
見せかけの回帰か共和分の関係かを判断するには、誤差項に対して単位根検定を行う。
しかし、真の誤差項はわかり得ないため、の代わりにOLS残差誤差項を用いて検定を行う。
この検定はを用いないため、通常の単位根検定とは異なるため、Engle-Granger共和分検定と呼ばれる。
ここで共和分とは、単位根過程()であるとから構成される、が定常過程となるとが存在する時のとの関係のことをさす。
この時、は共和分ベクトルと呼ばれる。なお、共和分ベクトルは一意には定まらない。
これを一般化すると、を過程とし、がとなるようなaが存在する時、は共和分の関係であると言える。
共和分過程は、との均衡関係を記述する方法を与えてくれることを意味する。
例
互いに独立な単位根過程と、それぞれが互いに独立な誤差項をがある時、次のようなシステムがあるとする。
とは過程と過程の和であるので、過程である。 この時、二つの和分過程は次のような関係が成り立つため、両者の間には共和分関係が存在する。
この時の共和分ベクトルはである。
共和分ベクトルは、一次独立な共和分ベクトルで構成される場合がある。
一次独立な共和分ベクトルの線形和で表現できるベクトルを持つ時も、共和分関係が成り立つ。
このように一般的なシステムでは、複数の共和分関係が存在する場合もある。
n変数間ではn-1個の共和分関係が存在する可能性があり、共和分の関係の数は共和分ランクと呼ばれる。
Granger表現定理とベクトル誤差修正モデル
ここで次のような共和分システムを考える。
[tex:y{1t} \sim I(1)]であり、[tex:y{1t} - \gamma = u{1t} \sim I(0)]となることから、[tex:y{1t}]とには共和分の関係にある。
上記の式をVAR表現を次のようになる。
この時のAR特性方程式は次のようになる。
以上のことから、VAR表現は単位根を持つ。
単位根過程の時系列のVAR過程では、差分過程にVARモデルを当てはめて分析することが多いことが多いため、ここで差分系列のVMA表現を考える。
この差分系列のMA特性方程式は次のようになる。
差分系列のVMA表現は反転不可能であることから、差分系列はVARモデルで表現することができない。
つまり、この状態でVARモデルを当てはめてしまうと適切なモデルが得られないことになる。
正しい状態でモデルを当てはめた場合、上記のVMA表現をベクトル表現に変えると次にようになる。
ここで、は次のように分解できる。
そのため、は次にようになる。
は共和分ベクトルであり、は共和分関係を表しており、共和分の均衡点からの距離を表現しているとも言える。
そのため、は均衡点に戻る力の強さを表現し、誤差修正項と呼ばれる。
この場合の共和分システムのVARモデルはベクトル誤差修正モデル(VECM:vecter erroe correction model)と呼ばれる。
VAR(p)表現を持つ共和分システムの性質は次にようになる。
(1) VAR(p)表現は単位根を持つ
(2) のVMA表現は反転不可能
(3) ΔytのVAR表現は存在しない。
(4) は以下のVECM(p-1)で表現できる。
ここで、A,Bはn×h行列であり、A′yt∼I(0)はh個の共和分関係を表す。また、共和分ランクhは行列ζ0のランクによって決まる。
(5) VECMには定常な変数しか含まれない。また、次式の全ての解の絶対値は1より大きい
のすべての解の絶対値は1より大きい。
このようにVAR表現を持つ共和分システムがVECMで表現できることをGranger表現定理と呼ぶ。
共和分ベクトルの推定
VECMにおける共和分ベクトルの推定は、Johansenの方法を用いて行う。
この方法では、OLS推定よりもモデルが誤って推定されることが少なくなる。
はじめに、がこの共和分関係を持つことを仮定し、次のに関するモデルを推定する。
共和分ベクトルをうまく推定する必要がある。
これは、正準相関の考え方を用いてに関してが説明できない部分が[tex:A' y{t-1}]から[tex:\Delta y{t-1}]とは無相関の部分を抽出したものと最大の相関を持つようなを求めることができる。
実際には次のような手順をふみを推定する。
ここで、残差をとする。
をそれまでの差分を変数等する回帰モデルを推定する。
ここで残差をとする。
得られたとの上からh個の正準相関と正準変数を以下の手順により求める。
はじめに、とから標本分散共分散共分散行列を計算する。
の上からh個の固有値とそれに対応する基準化した固有ベクトルを求める。
この時のとはとの上からh個の正準相関と正準変数となる。
そして、となる
共和分の個数の推定
最大固有値検定
最大でh個の共和分関係しか存在しないという帰無仮説を個の共和分関係が存在するという対立仮説に対して検定を行う。
具体的には、Aを推定する時に求めた正準相関を用いて、と > 0 に対して検定を行う。
この時の尤度比検定統計量は次のものを用いる。
RでVECMの実行
VECMはurcaパッケージで実行できる。
今回、適用したデータはテキサス州 4 都市 (Austin, Dallas, Houston, San Antonio ) における住宅価格対数値の月単位の推移の情報です。
時系列を可視化すると次のようになります。
次に各系列に単位根過程があるかどうかを検定により確かめる。
> 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)
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)