予測に関するEViewsの機能を紹介する三回シリーズの第三回目です。
第一回 予測平均が一番良い?
第二回 最尤法による時系列モデルの推定
第三回 ARFIMAモデル
ARFIMAモデル
予測平均と予測比較
ARIMA(p, d, q) モデル において階差の d は整数となりますが、ここでご紹介する ARFIMA(p, d, q)モデル の d は実数となります。
もちろん、実数 d を分析者が見つける必要はなく、他のパラメータ同様、EViewsが d も一緒に推定します。
ARFIMAモデルの推定
前回と同じサンプルデータを用いて、まずはARFIMA モデルを推定してみましょう。サンプルデータは
Program Files/EViews 9/Example Files/EViews9 Manual Data/Chapter 22-Time SeriesRegression
フォルダにあるsowell 22.wf1 を利用します。
最新のEViewsをお持ちでない方は、是非デモ版を入手してください。
まずは第二回と同じく、 GNP の変化率を ARMA(3,2)モデル として推定します。
推定のテキストボックスには次のように入力します。
dlog(gnp) c ar(1 to 3) ma(1 to 2)
OKボタンをクリックして推定を実行し、推定結果のオブジェクトに eq01 という名前を付けます。
第二回で紹介した最尤法による推定が行われます。
次に今回の目的である ARFIMA(3, d, 2) を推定します。
推定のテキストボックスには次のように入力します。 ARFIMAモデル を推定する場合は、単純に推定式の最後に d を入力するだけです。
dlog(gnp) c ar(1 to 3) ma(1 to 2) d
OKボタンをクリックして推定を実行し、 eq02 という名前を付けます。
eq02 の推定結果を見ると、肝心の d が5% 有意水準で有意となっていませんが、利用方法はご理解いただけたと思います。
ARFIMAモデルは時系列データが 長期記憶性(long memory) を持つような場合に有効なモデルです。
つまり、定常過程であり、自己相関に持続性はあるような場合に適しています。
そこで自己相関について少し考察することにしましょう。 変数dlog(gnp) のコレログラムを表示します。
コマンドウィンドウに次のように入力します。
show dlog(gnp).correl(36)
自己回帰型の変数をモデル化する場合に重要な偏自己相関を見ると、1期前のラグは有意ですが、それ以外のラグではほとんど有意なものは見当たりません(点線の内側に棒が収まっています)。
ARFIMAモデルを使いたい状況としては、定常過程でありながら、もう少し、有意な偏自己相関係数が存在するようなケースになります。
また、EViewsで ARFIMAモデルを推定する場合、被説明変数に該当する変数は必ず、すでに定常過程にあるものを利用します。
ここで利用している dlog(gnp) は定常時系列です。
ARFIMAモデルとラグオペレータ
ARFIMAモデルはが定常になるまで階差を取った時の
がARMA
モデルに従い、 d が実数であるようなモデルです。
ここで仮に d がの場合、AFRIMAモデルの自己相関と偏自己相関は、dを利用しないARMAモデルに比べて減衰速度がより遅くなります。一方、
と
に多くの項を利用するほど、逆に減衰速度が速くなるという性質を持っています。
ここでラグオペレータ の基本的な用法を確認しておきましょう。
まず、次のようなARモデルが与えられたとします。
ここで は i.i.d であるとします。
ラグオペレータ を用いると次のような表記が可能になります。
これを使うとAR は
さらに、
とします。つまり、
です。
の時点 における平均を であるとすると、4式は次のように書くことができます。
例えば、次に示すような AR の系列相関のあるモデルを考えます。
これを を用いて変形してみます。
ここで、
一方、移動平均過程として次のようなMA 過程を定義します。
ここでは当然、
です。
6式と同じく
に平均を考える場合は AR の場合と同じく、
となります。
今回はARFIMAモデルの仕組みとそれに伴って、ラグオペレータ の利用方法をご紹介している訳ですが、ここで改めて1式を見てみましょう。
繰り返しますがARIMAモデルとARFIMAモデルを式で書けば、このように同じ式となります。
dが実数である点だけ異なる訳です。
それでは、仮にARFIMA の擬似データを作成しようと思ったらどうしたらよいでしょう。
つまり、はどのように計算すればよいでしょうか。
Granger and Joyeux (1981) および Hosking (1981) はこの実数和分演算子を次のように定義しています。
ここで です。
残念ながら、EViewsにはこの計算を行うための @-function はまだ用意されていませんので、数値実験を行うことはまだできません。
ARIMAモデルにおけるバックキャスティング
バックキャスティングとはARIMAモデルをCLSで推定する場合にのみ、MA項の初期化に伴い利用される計算処理方法です。
MA項をモデルで利用し、しかもCLSの時にだけ有効なオプションですが、デフォルトの設定はオンになっています ( ML や GLS を選択した場合にも Backcast オプションが表示され、オンになっていますが計算では利用していません)。
次に示す MA(q) モデルを利用して処理方法を説明します。
ここで とします。
第二回で紹介したCLSによる推定を実行する場合、推定期間内のイノベーション をまず求める必要があります。
計算ステップの第一として上記モデルの推定値 とプリサンプル から 時点0 までのイノベーションの初期値を設定します。
第二ステップは7式を用いて無条件残差を求めます。
そして次式を使って、 における残りのイノベーションを順番に計算します。
具体例として として考えてみましょう。
つまり、
というモデルを考えます。
何らかの方法で の初期値と、 の初期値を得たとします。
最初に無条件残差を求めるので、から が分かります。
そこで、
として が分かります。
同じ要領で を求めることができます。
結局、 の初期値が分かれば、後は再帰的な計算を行うことで を求めることができます。
この初期値の求め方の一つの方法がバックキャスティングです
まず 期から 期先のイノベーションをゼロとします。
そして次に示す後向き (backward) の再帰計算を行います。
9式との違いに注目すると、右辺の各項の時点が前方になっていることが分かります。
ここでもやはり として、この計算過程を確認してみましょう。
最初に、
とします。
次に
から が求められます。
続けて、
として が分かります。
これを繰り返すことで
となります。
11式と12式にある と は8式で求めることができます。
バックキャスティングの仕組みがお分かりいただけたでしょうか。
繰り返しますが、これはあくまで MA項のある時系列モデルを CLS で推定する場合の推定に伴う、初期値設定のお話です。
フライフィッシングでは疑似餌(フライ)をポイントに投げ込む前に、一度、後方にフライラインを引っ張って(バックキャストして)、改めて前方へロッドを振り出します。
この動作を数回繰り返しながら、徐々にフライラインをリールから巻きだして、キャスティングの距離を伸ばします(ブラッドピッドの“River Runs Through It” (1992) はとても美しいキャスティングの妙技が楽しめるフライフィッシングの愛好家にとっては忘れられない映画の一つです。)。
9式と10式を見比べると、利用する時点の情報が全く逆転しており、バックキャスティングと言われる所以がお分かりいただけると思います。