JDemetra+ 季節調整

JDemetra+は欧州委員会が開発した、オープンソースの季節調整・時系列解析パッケージです。EViewsには、JDemetra+が提供する機能の一部が組み込まれており、月次および四半期データに対してX-13形式の季節調整を実行できます。


JDemetra+とは?

  1. JDemetra+は欧州委員会が開発した、オープンソースの季節調整・時系列解析パッケージです。JDemetra+が提供する結果は、Census X-13が提供する結果(同一設定の場合)と数値的に同じものになることがよくありますが、JDemetra+は欠損値や極値を効率的に処理し、演算時間を短縮して季節調整を計算します。EViews上では、JDemetra+は現在のワークファイル内の標本に対して、季節調整を実行します。他の季節調整手法と比較し、JDemetra+は欠損値を自動的に処理することができます。
    • 内部的な欠損値(標本の始点や終点ではない)の場合、JDemetra+は欠損値を補完します
    • 標本の始点や終点が欠損している場合、EViewsでは標本期間を調整します。JDemetra+では標本の最初と最後で欠損値の外挿が可能ですが、EViewsではデータをJDemetra+に送信する前に標本をトリミングしてNAを削除するだけです。
  2. EViewsでJDemetra+季節調整を実行するには、月次または四半期ワークファイルのシリーズウィンドウのProc/Seasonal Adjustment/JDemetra+...をクリックします。これで、JDemetra+のタブ付きダイアログを表示します。
    データ
    Base specificationタブではJDemetra+のプリセット設定とワークファイルにどのシリーズを出力するかを選択できます、追加で出力するシリーズ名の接尾辞を指定できます。これらの設定の詳細については、JDemetra+のウェブページ: https://github.com/jdemetraをご覧ください。
    Default specifications欄で選択できる調整オプションの詳細は次のようになっています。
    対数/レベル
    検出
    外れ値
    検出
    カレンダー
    効果調整
    ARIMA
    モデル
    X-11 なし なし なし なし
    RSA0 なし なし なし Airline
    (0,1,1)(0,1,1)
    RSA1 自動 AO/LS/TC なし Airline
    (0,1,1)(0,1,1)
    RSA2c 自動 AO/LS/TC TD2, Easter Airline
    (0,1,1)(0,1,1)
    RSA3 自動 AO/LS/TC なし 自動選択
    RSA4c 自動 AO/LS/TC TD2, Easter 自動選択
    RSA5 自動 AO/LS/TC TD7, Easter 自動選択
    • 対数/レベル検出は源系列を対数変換するかの選択方法です
    • 外れ値検出はは源系列における外れ値検出の手法です。additive outlier (AO), level shift (LS), transitory change (TC)の自動検出を行います。
    • カレンダー効果調整では標本内の各月・四半期に含まれる曜日や祝日による不均衡を調整します
    • ARIMAでは調整前段階で使用するARIMAモデルの次数の決定方法です
  3. ダイアログのRegressionタブでは、X-13の事前調整回帰に関連する、上述のデフォルト設定を書き換えることができます。
    データ
    Traiding days:欄が上述のカレンダー効果調整に相当します。次の様に、各曜日の効果について、より詳細な設定を行うことができます
    None カレンダー効果を考慮しません
    TD7 7つのカレンダー変数で調整を行います。
    最初の変数は月/四半期における月曜日の数をカウントします。2番目は火曜日をカウント、という様に続きます。
    TD4 4つのカレンダー変数で調整します。
    最初の変数は月曜日から木曜日の数をカウントし、2番目は金曜日、3番目は土曜日、4番目は日曜日をカウントします。
    TD3c 3つのカレンダー変数を作成します。
    最初の変数は月曜日から木曜日の数をカウントし、2番目は金曜日と土曜日、3番目は日曜日をカウントします。
    TD3 3つのカレンダー変数を作成します。
    最初の変数は月曜日から金曜日の数をカウントし、2番目は土曜日、3番目は日曜日をカウントします。
    TD2 2つのカレンダー変数を作成します。
    最初の変数は平日(月-金)を、2番目は週末(土-日)をカウントします。
    TD2c 2つのカレンダー変数を作成します。
    最初の変数は月曜日から土曜日までを、2番目は日曜日をカウントします
    User variables ユーザが指定したカレンダー変数のみを追加します。
  4. ARIMAセクションでは推定されるARIMAモデルの設定方法を選択します。
    NoneはJDemetra+にARIMAモデルを推定しないよう指示します。
    Manualを選択すると、ARIMAの次数を(p,d,q)(P,D,Q)の形で入力します、pはARの次数、dは階差の次数、qはMAの次数、Pは季節ARの次数、Dは季節階差の次数、Qは季節MAの次数です。
    X-11 Autoを選択すると、デフォルトのX-11を用いて最適なARIMA次数を決定します。
    データ

実行例

  • JDemetra+季節調整を実行し、X13と結果を比較

  1. サンプルファイルX13_Macro.wf1には、2005年1月から2012年6月までの季節調整されていない月次の米国失業率データUNRATENSAが格納されています。この系列を使用し、EViewsでのJDemetra+のデモを行います。ワークファイルは下記にインストールされています。
    C:\Program Files\EViews 14\Example Files\EV14 Manual Data\Chapter 11 - Series\x13 macro.wf1
    UNRATENSAシリーズオブジェクトを開き、View > Graph > OKと操作し、折れ線グラフで表すと、季節性とトレンドがあることがわかります。コマンドでは次を実行します
    show unratensa.line
    データ
  2. Proc/Seasonal Adjustment/JDemetra+...をクリックしてJDemetra+ダイアログを開きます。シンプルなX-11調整は、事前に設定されたJDemetra+のデフォルトの1つであるため、X-13 spec:ドロップダウンをX-11に変更します。Naming suffix編集フィールドに「_x11」と入力します。
    データ
    コマンドラインでJDemetra+を使用するには、次のようにjdemetraメソッドを使用します。
    unratensa.jdemetra(spec=x11, suffix=_x13)
  3. OKをクリックしてJDemetra+のグラフ出力を表示します。
    データ
    上のグラフには、未調整の源系列が表示されます。2番目は分解されたトレンド、3番目は季節/循環要因、4番目は不規則/残差成分、最後にグラフは季節調整済みの値を表示します。JDemetra+によるX-11季節調整は、デフォルト設定を使用してEViewsによるCensus X-13を使用した場合と数値的に同じ結果が得られることに注意してください。
  4. 再度Proc/Seasonal Adjustment/JDemetra+...と操作し、調整オプションをデフォルトのRSA4cのままOKをクリックし、調整を行います。RSA4cで調整された系列UNRATENSA_D11が作成されます。
    unratensa.jdemetra
  5. 先に作成したUNRATENSA_X13とUNRATENSA_D11を比較すると、カレンダー効果や外れ値の調整により数値が若干異なっていることがわかります。
    データ
    コマンド操作では、2つの調整済み系列からグループオブジェクトを作成し、グラフを表示します
    group gr1 UNRATENSA_D11 UNRATENSA_X13_D11
    gr1.line

ユーザ指定の変数で調整する

  • 旧正月を示す変数の作成して、調整モデルに追加する
  1. 旧正月は世界中の多くの国で重要な祝日であり、その時期は経済変数に大きな影響を与える可能性があります。
    最近の論文では、Census X-13で祝祭日をモデル化する方法を示し、さらに、X-13 を使用する際に祝祭日をモデル化するために最も適切な日数を選択するためにAICを使用する方法も提案しました。
    この手法を再現するには、ユーザは旧正月の外生変数を作成し、それらの変数をCensus X-13に含めることになります。考案された調整手法1つは、旧正月用に、次の3つの変数を構築することです。
    • 祭日前の期間 – 春節(旧正月の大晦日)の前日に終了
    • 祭日中の期間 – 春節から初七日(7日目)に終了
    • 祭日後の期間 – 春節後の翌日に開始
  2. ここでは、JDemetra+季節調整の実行例のために、2007年10月から2024年6月までの、日本の百貨店売上データに調整を適用します。
    サンプルファイルHYAKKATEN.WF1にはe-Statから入手した売上データHYAKKAが格納されています。

    データ
  3. JDemetra+ の季節調整で旧正月の影響をモデル化するために、1.と同様のプロセスに従います。ここでは前期間の期間を 10 日間、中期間の期間を 8 日間、後期間の期間を 10 日間に設定します。
    個々の変数の計算は、上記のイースターで使用した方法と同様の方法で行われます。つまり、各月 (または四半期) に含まれる期間の日数の割合を取得し、数年にわたってその月に含まれる日数の平均を減算します。イースターとは異なり、イースターで使用した 1600 ~ 2099 年の範囲ではなく、データサンプル内の年を使用して平均を取得します。
    繰り返しになりますが、EViews に組み込まれている @holiday関数を使用すると、次のコードでこれらの変数を簡単に作成できます。
    series cny_b = @holiday("cny(-11) cny(-2)") - @meansby(@holiday("cny(-11) cny(-2)"), @month)
    series cny_d = @holiday("cny(-1) cny(6)") - @meansby(@holiday("cny(-1) cny(6)"), @month)
    series cny_a = @holiday("cny(7) cny(16)") - @meansby(@holiday("cny(7) cny(16)"), @month)

    たとえば、@holiday("cny(-11) cny(-2)") という構文は、旧正月の 11 日前から始まり、旧正月の大晦日の前日までの 10 日間の期間を指定します。
    作成された変数をグラフで示すと次のようになります。
    データ
  4. これらの変数を作成すると、以前と同じ方法で、旧正月を考慮した JDemetra+ 季節調整を実行できます。
    Proc > Seasonal Adjustment/JDemetra+...と操作し、X-13 spec:ドロップダウンリストでRSA3を選択します。
    さらに、User Regressorタブを開き、Addボタンをクリックし、先の3変数を指定、OKをクリックして追加します
    データ
    データ
    OKをクリックして季節調整を実行します。コマンドでは次のように指定します。userregs=オプションで追加の変数を定義します
    hyakka.jdemetra(spec=rsa3, userregs="cny_a cny_b cny_d", suffix=_lunar)
  5. 次のように調整が行われます。
    データ
  6. 旧正月を利用しない調整と比較してみます。
    データ
page_top_icon