インジケータサチュレーションによる外れ値と構造変化の検出

時系列データ分析における問題の1つが、一時的な外れ値と根本的な構造変化の存在です。EViews 12では、インジケータサチュレーションとautomated General-to-Specific (GETS)を利用した外れ値と構造変化の検出機能が追加され、これらを利用してをデータの変化を検出する新機能が登場しました。このページでは、時系列データにおける外れ値と構造変化の自動検出機能をご紹介します。
このページは、開発元のブログ:EViews econometric analysis insight blogを元に作成しています。

Graph animation

icon FREDのデータを利用した例


インジケータサチュレーション

  • インジケータサチュレーションは、ダミー変数やインジケータ変数をモデルに投入し、それらが有効であるか確認するというものです。インジケータサチュレーションでは、観測数より多くの変数から変数・モデル選択が可能になり、インジケータ変数の複雑な組み合わせで回帰を飽和させ、変数選択手法で使用するのに最も適切なインジケータを選択させます。
    このインジケータ変数は以下のようなものがあります。

  1. Impulse indicators (IIS):期間tでの1を取り、それ以外のすべての時間で0となるダミー変数です。このインジケーターは、単一の観測値の外れ値をモデル化するために使用でき、EViewsの関数では、@isperiodで利用できます。
  2. Step indicators (SIS):t期まで0で、それ以降が1を取るstep function変数です。定数項の変化をモデリングする際に利用されます、EViewsの関数では@afterでサポートしています。
  3. Trend indicators (TIS):t期まで0で、以降はトレンドに従うtrend-break変数です。これは、トレンドの変化をモデリングする際に利用されます、EViewsの関数では@trendbrでサポートしています。

Auto search/General-to-Specific(GETS)

  • EViewsではこのような変数選択の手段としてAuto search/General-to-Specific(GETS)を使用します。Auto search/GETSの利点の1つは、候補となる変数を分割し、各セットで一度に1つずつ検索を実行し、各セットから選択した変数を組み合わせて最終セットを検索できることです。 これにより観測値よりも多くの候補変数をテストできます。

EViewsでは次のように、変数選択が行われます。

  1. 全てのインジケータ変数を含むモデル(general unrestricted model: GUM)を推定し、モデル診断の設定を行います。
  2. GUMのインジケータ変数に対して1つずつサーチパスを設定します。
  3. パスごとに2.で定義した変数のうち有意でないものを除外し、最も重要でない変数を削除するたびに、または現在のモデルが一連の診断テストに合格するかどうかを確認するたびに、一連の変数削除手順が実行されます。変数の削除後に診断テストが失敗した場合、その変数はモデルに戻され、このパスに沿って再度削除されることはありません。重要でない変数がなくなるか、診断テストに失敗せずに変数を削除することが不可能になると、変数の削除は終了します。
  4. すべてのパスが計算されると、情報量基準を使用して、パスによって生成された最終モデルを比較し、最適なモデルを選択します。

実際のデータへの適用

  • 米国の所得と消費のデータを使用して、簡単な回帰モデルを推定し、インジケータサチュレーションを適用します。ここでは可処分所得の対数階差に対して、従属変数として個人消費の対数階差を使用する、単純な個人消費方程式を推定します。

データを準備する

  1. サンプルデータをセントルイス連銀のデータベースからダウンロードします。まず、File > Open > Database...と操作し、データベース接続ダイアログボックスを開きます。Database/File Type:FRED Databaseを選択し、OKをクリックします。
    データベース接続
  2. Browseボタンをクリックしてデータの検索を始めます。All Series Searchをクリックして、テキストボックスに「personal consumption」と入力し、「Real Personal Consumption Expenditure」の系列を検索ウィンドウの外にドラッグします。copy to new workfileを選択し、検索した系列から新しいワークファイルを作成します。
    オプション設定
  3. 同様にキーワード「personal income」で検索を行い、「Real Disposable Personal Income」をワークファイルにドラッグして追加します。簡単にするため、系列名をそれぞれCONSとINCに変更します。
    オプション設定

残差の分布を確認する

  1. まずは、簡単なOSLを推定して、残差の分布を確認します。Quick/Estimate Equationと操作して、テキストボックスでdlog(cons) c dlog(inc)と入力して推定を行います。サンプル期間は2002年1月から2020年4月に限定します。
    オプション設定
  2. Residボタンをクリックして、残差の分布をグラフで確認します。2004年末、2008年半ば、2013年、そして2020年に大きな変動があるように思われます。確認できたら、nameボタンでEquationオブジェクトに名前を付けて保存します。
    オプション設定

auto GETSによる自動検出

  1. 上記と同じように、Quick/Estimate Equationと操作して、新しいEquationオブジェクトを作成します。テキストボックスに同じモデルを入力します。次に、Optionsタブを開き、Outliers/indicator saturation欄にチェックを入れOptionsボタンをクリックして、検出オプションを設定します。
    オプション設定
  2. ここでは、外れ値(インパルス)と定数項の変化を検出するため、Indicator types欄でImpulse (IIS)Step-shift (SIS)にチェックを入れ、Terminal condition p-value0.01を入力します。これで、より多くのインジケータを推定式に追加させます。逆に、このp値を小さくすると、考慮されるインジケータの数を小さくなります。設定したら、OKをクリックしてダイアログを閉じ、もう一度OKをクリックして推定を実行します。
    オプション設定
  3. 得られた推定結果を先の通常の回帰モデルのものと比べてみます。2018年12月と2020年3月および4月の単一インジケータ、2008年5月と2013年1月のレベルシフトインジケータが追加されていることがわかります。また、インジケータを含まない上記のモデルと比較すると、決定係数R2が大きくなっています。
    オプション設定
    残差グラフでは検出されたインジケータの部分に直線が引かれ、検出結果がわかりやすくなっています。
    オプション設定
page_top_icon