X12-ARIMAの課題と回避策

背景

数年前、ユーザーから人気のあるX12-ARIMAとその季節調整手法(X11)に対して、MS Excelでより現代的なインターフェースが欲しいという要望がありました。米国国勢調査局はX12-ARIMAプログラム(X12A)を開発し、保守しているので、自由に利用することができ、ビジネス界のほとんどの人がX12Aプログラムとその手法を高く評価し、受け入れています。

その時、我々はNumXLをX12ARIMAと統合することを選択したが、それは外部プログラムとしてであった。

外部プログラムとの統合とは?

一言で言えば、NumXL はいくつかのエクセル関数を実装し、ユーザーの入力とデータを受け付けるユーザーインターフェースを提供する。その裏で、NumXL はデータとユーザの入力を X12A プログラムに転送して計算をさせ、計算が終わると、NumXL はユーザに出力を Excel に戻す。

この図では、NumXL がどのようにデータと入力を X12A プログラムに転送して計算を行い、その出力をユーザーに Excel に戻すかを簡略化したフローチャートで視覚化している。

なぜ気にする必要があるのか?

私たちは、あなたがすでにX12A/X11を使用していると仮定し、あなたのモデルのランタイムと応答性を最適化するために、X12Aの制限を克服するために私たちが構成したヒントと回避策を共有したいと思います。

X12ARIMAモデルが1つであろうと、数百のモデルがあろうと、ワークブックはそれらを扱うことができるはずだ。

 警告

バージョン1.67(MARTHA)から、NumXLは最新の米国国勢調査X13ARIMA-SEATS季節調整ソフトウェアをサポートしています。米国国勢調査は、X12ARIMA季節調整ソフトウェアを保守しておらず、NumXLは、顧客が既存のX12モデルをX13同等モデルに移行するのを支援するために、このモデルを含んでいます。

問題1:X12Aによる入力データ長の制限

US Census X12 ARIMAは、12(月次の場合)、4(四半期データの場合)から600オブザベーションまでの時系列を受け入れる。

NumXL 関数は、どのような長さの時系列でも受け付けるが、X12A の目的のために最新の 600 個の(欠落のない)オブザベーションのみを使用し、それに応じて開始日をシフトする。

ユーザーとしては、何も変更する必要はなく、通常通りデータを渡すだけで、NumXLが裏でこの制約を処理してくれる。

問題2:データ系列に新しいオブザベーションを追加する

時間が経つにつれて、新しい観測が実現し、入力データセットに追加される。我々は、これらのオブザベーションを含めるためにX12ARIMAの定義を改良し、季節調整と予測を更新するためにモデルを再実行すべきである。

上記のシナリオは直感的に聞こえるかもしれないが、ワークブック内のすべてのX12ARIMAモデルの数式で入力セル範囲を変更する必要があることに留意してほしい。 これは1つの時系列では問題ではありませんが、数十、数百の時系列と対応するモデルではどうでしょうか?定期的に同じ作業を繰り返す必要があるので、よりよいアプローチが必要です。

回避策は、ヒントで紹介したものと同じだ: “回帰分析が自動的に更新されるように設定する方法.” 入力データの最後に "#N/A "を付加して、それらを確保します。次に、これらのセルをX12ARIMAモデルの定義に含める。

最初は、NumXLは最後の観測値の後に発生した "#N/A "をすべて無視する。その後、新しいデータポイントが実現すると、#N/Aを実際の数値に置き換え、入力データセットを増やす。

この手法は、定義式を編集することなく、入力データ集合に新しいオブザベーションを追加します。モデルの出力を更新するには、まだ再計算が必要です。

この画像は、入力データの末尾に#N/Aを付加して予約する方法を示している。

問題3:模型を作る時間が長すぎる!

X12Aはフルセットのモデル選択とキャリブレーションを行うので、ワークシートに数個以上のX12ARIMAモデルがある場合、シート全体の計算には数秒以上かかる。

この問題の回避策は2つある:

  1. 自動計算を無効にし、手動に設定する。
    この画像は、自動計算を無効にして手動に設定する方法を示している。
    計算を手動に設定することで、セルがタッチされたり値が変更されたりしても、エクセルは強制的に計算しようとしません。その代わりに、F9またはSHIFT+F9を押して計算を開始する必要があります。
    その間、多くの変更を加えることができる。
  2. X12ARIMA ディスククリーンアップを無効にし、生成された X12ARIMA 中間ファイルをディスクに残す。
    NumXLインストールディレクトリ(例:C:˶users<username>˶AppData˶Roaming˶NumXL)に移動し、NumXL.confファイルをメモ帳またはお好みのテキストエディタで開きます。
    X12ARIMAセクションの "CLEANUP_EXIT "エントリを見つける。
    この画像はNumXL.confファイルで、CLEANUP_EXITエントリーの値が'false'に設定されている。

対応する値が "false "に設定されていることを確認する。

注意:<username>は実際のウィンドウズのログイン名に置き換えてください。

これで、ワークブックを開くと、NumXL は、X12A プログラムを実行することなく、保存されているモデルとその出力を(必要に応じて)ロードする。

問題4:データフィードが多くのセルに触れている。

多くの環境では、データフィードプログラムがX12ARIMAモデルで使用される入力データを(オンデマンドまたは定期的に)生成し、更新している。この設定は非常に魅力的だが、入力セルは頻繁に触られ、エクセルは大規模な計算要求をトリガーする。

NumXLでは、入力データセットとモデルのパラメータ値のチェックサムを内部的に計算し、保存しています(別名ハッシュ)。そのため、Excelが新しいモデル評価要求を出すと、NumXLは新しいチェックサムを計算し、すでに持っているチェックサムと比較します。もしNumXLが何の変更も見つけられなければ、単にその要求を無視します。

その結果、いくつの X12ARIMA モデルがあっても、NumXL は最後の実行から純粋に変更された入力(すなわち、モデルのパラメータや入力データ)のみを評価する。このように、X12ARIMA は必要なときに実行されます。

問題5:欠損値(#N/A)

アメリカの国勢調査X12Aプログラムは欠損値を扱わないが、問題2で見たように欠損値は有益である。

NumXL は、(欠損のない)データセットの開始前または終了後に欠損値がある入力データセットを受け付ける。NumXLは欠損値のある中間オブザベーションをサポートしない。

なぜ入力データ集合の開始前に欠損値を持つオブザベーションを挿入する必要があるのかと思うかもしれません。ユーザーは、常にデータ集合を同じ行で開始するように並べたいのですが、データ集合は開始日が異なるかもしれませんので、先頭に#N/Aを入れることで、すべての時系列を同じ日付で開始させることができます。

NumXLは、開始日(および終了日)を最も近い欠損していないオブザベーションの日付に調整するので、時系列のどちらかの端に欠損値を持つオブザベーションを追加しても、出力には影響しません。

問題 6:X12ACOMP のオフセット引数

X12ARIMA の出力時系列(季節調整済みなど)を表示するには、ワークシートの関数 X12ACOMP() を使用する必要があるが、この関数は、モデル名、出力タイプ、オフセットを必要とする。

オフセットは、入力データ集合の最初からのオブザベーションの数である。オブザベーションは、欠損値を持つもの(つまり、最初に詰め込まれたもの)を含むべきである。

オフセットを計算するには、列を整数の列で埋め、1(1)から始め、下に行くほど大きくしていく。

画像はカラムに整数列を入力する様子を示している。

もう一つの方法は、エクセルの組み込み関数COUNT()を使い、入力データの先頭から現在の位置までのセル数を計算する方法である。

画像は、COUNT()関数を使用して、入力データの先頭からのセル数を計算した例である。

問題7:IT/MISポリシーの制約

環境によっては、IT/MISが制限的なセキュリティ・ポリシーを設定して、ユーザーのローカル・プロファイル(すなわち、C:∕users∕<ユーザー名>∕AppData∕LocalData)でプログラムが実行できないようにしている。この設定により、X12A プログラムの実行が禁止され、出力が生成されない。

この問題の回避策は、"NumXL.conf "ファイル内の "data directory "の設定を、ユーザーがプログラムを実行するのに十分な権限を持つディレクトリに変更することです。

NumXLをインストールしたディレクトリ(例:C:˶users<username>˶AppData˶Roaming˶NumXL)に移動し、NumXL.confファイルをメモ帳やお好みのテキストエディタで開きます。

この図では、NumXL.conf ファイルの設定プロパティ(DATAPATH)を示しています。

GLOBASLS]セクションの "DATAPATH "エントリを探し、コメントを解除し(ハッシュタグを削除し)、X12Aプログラムを実行するのに十分なパーミッションのあるディスク上のディレクトリをその値に設定する。

結論

本号では、NumXL X12ARIMAモデルをExcelで日常的に使用する際にユーザーが遭遇する一連の課題を紹介した。それぞれのケースについて、対応する機能強化、推奨事項、場合によってはそれを克服するための回避策を示しました。

私たちはこの貴重な教訓を生かし、米国国勢調査の最新プログラム「X13ARIMA-SEATS」に取り組んでいる。

コメント

サインインしてコメントを残してください。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています