統計数理 (2001)
第 49 巻 第 2 号 305–315

特集「統計環境におけるインターネットの利用」［統計ソフトウェア］

EXCEL 上の時系列解析ソフト E-Decomp の開発
佐藤 整尚

1

（受付 2001 年 4 月 26 日；改訂 2001 年 7 月 27 日）

要

旨近年，ソフトウエアの実行環境は変化が激しい．統計プログラムを開発する立場としては，なるべく，ユーザーのニーズに立って新しい環境にも対応することが重要である．しかしながら，すべての部分を環境ごとに書き直していては時間がかかり，現実的ではない．本論文ではE-Decomp というソフトウエアの紹介とともに，異なるアプリケーションを連動させて，開発負担を少なくすることを目指した開発例を示す．E-Decomp は Microsoft 社製の表計算ソフト
EXCEL 上で動作する 1 変量時系列解析ソフトウエアであり，その特徴は時系列分析に必要な計算を簡単な操作で実現できる点である．実行可能な手法は Web 上の時系列解析サイト，WebDecomp とほぼ同じであり，操作の方法も似ている．実はこの 2 つのソフトウエアはユーザーインターフェースの違いがあるが，内部の動作プログラムはほぼ同じものを利用している．今回の開発の特徴は R と R-(D)COM Interface という環境を最大限利用することによって，WebDecomp のソフトウエア資産を継承して，開発コストを抑えた点である．
キーワード：時系列解析，季節調整，自己回帰モデル，Decomp，EXCEL.
1.

E-Decomp とは

E-Decomp は Microsoft 社の表計算ソフト EXCEL 上で簡単に時系列解析を行えるソフトウエアである．具体的には先に佐藤 (1997) で発表された Web Decomp (http://www.ism.ac.jp/∼sato/) と同じ機能を EXCEL 上で実現させるためのソフトウエアである．計算はすべて，ローカルのマシンで行い，ネットワークにつながっている必要がない．E-Decomp を動かすには事前にフリーソフトの R (http://www.ci.tuwien.ac.at/R/) と COM 経由で R を動作させるための R-(D)COM Interface（Thomas Baier 氏によって開発されたもので，詳しくは http://www.
ci.tuwien.ac.at/R/other-software.html を参照のこと）が必要になる． R は S 言語という商用の統計プログラム言語のフリーなバージョンという位置付けである．本論文ではこの E-Decompの紹介とともに，その開発プロセスについても議論していく．インストールの方法等については最後の付論で述べる．本プログラムは，R 及び R-(D)COM に全面的に依存して作られている．はじめに，これらを作られた方々に謝意を申し上げたい．
2.

時系列解析ソフトウエア

近年，さまざまな分野で時系列解析が行われるようになっているが，そのためのソフトウエ
1

統計数理研究所：〒106–8569 東京都港区南麻布 4–6–7; sato@ism.ac.jp

統計数理 第 49 巻

306

第2号

2001

アは必ずしも十分な機能が備わっているとはいえず，より手軽で本格的な解析ができるものが必要であるといえよう．これまでも統計数理研究所ではさまざまな統計ソフトウエアをリリースしてきたがそのほとんどが TIMSAC (TIMe Series Analysis and Control program package) に代表されるような Fortran で書かれたソースプログラムで，手軽に利用するには手間がかかりすぎていた．近年，TIMSAC for Windows がリリースされたが，これも，独自のインターフエイ
スに慣れる必要がある．そこで，E-Decomp では TIMSAC の中で利用度が高いプログラムを，普及度の高い EXCEL から直接動かすことを試みた．なお，このプログラムは Web Decomp 向けに開発されたものに手を加えて開発したものである．そこでのポイントはアプリケーションの連携を考えることによって，開発コストを抑える点にある．既存のソフトウエアを EXCEL等に移植する際には参考になる事例であると思われる．
E-Decomp の著作権の扱いについては Open Market Licence (http://www.ism.ac.jp/cdsc/ismlib/licence.html) に従うものとする．また，今後の E-Decomp に関する情報は http://www.
ism.ac.jp/∼ sato/ に載せる予定である．
3.

E-Decomp の特徴

E-Decomp は 1 変量時系列データに対して，季節調整や AR，ARMA モデルの当てはめなどができる（動作例を図 1 に示す）
．このプログラムは 2 つの部分から構成される．1 つはユーザーインターフエイス部分で，EXCEL のマクロ記述言語である VBA (Visual Basic for Application)を使って書かれている．もう 1 つは実際の計算を行う部分で，R とその中から呼ばれる DLLにて動作する．この 2 つの部分を橋渡しするのが R-(D)COM Interface である．この仕組みを簡略的に示したのが図 2 である．COM (Component Object Model) というのは Microsoft 社が提案しているプロセス間通信の規格で，Windows のアプリケーションで使われている．これを実装するのは大変であるが，R-(D)COM Interface を使うことによって COM のプログラミン
グからは解放されているので，VBA から呼び出すいくつかの API の使い方を覚えればよい．
図 3 で VBA のリストの一部を示したが，ここで，“ xRRun.” で始まるメソッドが COM を通じて R とのやり取りを行っている部分である．これを見ると R のコンソールで対話的に行っている操作をそのまま，VBA で行っており，プログラムとしては比較的容易である．
次に E-Decomp でサポートされている時系列解析の手法を示す．いずれも，1 変量の分析のみに対応している．
a.

b.
c.
d.

e.
f.
g.
h.
i.

Decomp --- Kitagawa and Gersch (1984)，北川 (1986) によって提案された季節調整およびトレンド推定のプログラム．ここではオリジナルの Fortran プログラムをやや修正した形で用いている．
plot --- 時系列プロット．
ARfit --- 自己回帰モデルの当てはめ．次数決定は AIC による．赤池・中川 (1972) の FPECを用いている．
ARMAfit --- ARMA モデルのあてはめ．次数はユーザーが指定した次数について推定を行う．北川 (1993) に収録されたカルマンフィルタを用いた方法により尤度を計算している．
AutoCor --- 自己相関のプロット（赤池・中川（1972））．
Spectrum --- 自己共分散関数から計算されるパワースペクトル（赤池・中川（1972））．
Volatility --- 確率的ボラティリティモデルによるボラティリティの推定（北川 他（1999））．
SSIAR --- 非定常同時転換自己回帰モデルの推定 (Kunitomo and Sato (1999))．
hist --- ヒストグラム作成 ．

EXCEL 上の時系列解析ソフト E-Decomp の開発

図 1.

E-Decomp の画面．

EXCEL

VBA

R-(D)COM

RDLL
図 2.

E-Decomp の仕組み．

307

統計数理 第 49 巻

308

図 3.

4.

第2号

2001

VBA のリストの一部．

使い方

EXCEL でデータを開き，対象となるデータを選択する．扱えるデータは 1 次元のデータのみである．一部のセルに文字列が入っていても構わないが，そのセルはスキップしてしまう．また，データ内に空のセルがあると 0 とみなす．なお，文字が入ったセルのうち一番下のセルをデータ名とみなし，データ名のエリアに入力される．セルを複数行複数列で選ぶと A1, B1, C1,A2, B2, . . . というように行ごとにデータを読みこむ．また，数式と数値定数を混在させることはできない．ただし，数式だけであれば正常に認識される．領域を選んだら，インストール時に作ったツールバーのボタンを押すと，コントロール画面が表示される．ここで，適用したいメEXCEL 上の時系列解析ソフト E-Decomp の開発

309

ソッドを選び，パラメータを設定し，“Run” ボタンを押せば実行される．副作用として背後にR のグラフ画面が出現するが，EXCEL を終了させるとこの画面も自動的に消えるようになっている．出力結果は同じ Book の中に新しいシートを作って出力される．なお，R-(D)COM は
その名の通り，DCOM（Distributed COM）としても使うことが可能である．Dcomcnfg を使って設定すれば，StatConnectorSrv.exe だけをネットワークにつながった他のマシンで動かすことも可能である．ただし，これができるのは，現状では WindowsNT または Windows2000 のみである．
5.

操作例

ここでは，実際にあるデータに Decomp を適用して，ノイズを取りだし，その自己相関をプロットする流れを見てみる．
まずデータが入っている EXCEL ファイルを開き，データ列を選択する（図 4）．ここでは列全体を選択したが，その一部を選択することも可能である．次に，インストール時に登録したボタン（この例だと右端上部の顔のボタン）を押すと E-Decomp のコントロールウィンドウが出る（図 5）．ここでは sample という名前がデータの直前のセルに入っていたのでそれがデータ名に自動的に入力される．選択範囲に文字列がなければ， ORG”となる（もちろん，ここで修正することも可能である）．なお他のメソッドを行いたいときはそのタブを選ぶ必要がある．
Decomp のパラメータを設定し，Run ボタンを押すと結果が別のシートに出力される（図 6）．
この例ではデータをトレンド成分とノイズ成分に分解した．次に，ここで得られたノイズ成分の自己相関を計算する．まず，ノイズの列（B 列）を選んで，E-Decomp のボタンを押す（図 7）．
でてきたウィンドウで AutoCor のタブを選んで Run を押す（図 8）．そうすると自己相関がまた別のシートに出力される（図 9）．

図 4.

データを選択したところ．

統計数理 第 49 巻

310

図 5.

第2号

E-Decomp のウィンドウ．

図 6.

結果の表示．

2001

EXCEL 上の時系列解析ソフト E-Decomp の開発

図 7.

図 8.

ノイズ成分の選択．

AutoCor を選択したところ．

311

統計数理 第 49 巻

312

図 9.

第2号

2001

ノイズ成分の自己相関を表示したところ．

このようにして，ある解析で得られた結果を他の手法の入力にすることも簡単に行える．結果は新規のシートに次々と追加されていくので，そのまま，全体を EXCEL のブックとして保存すればすべての解析の途中結果まで残すことが可能である．
6.

ソフトウエア開発について

E-Decomp の仕組みを見ていただければわかるように，このソフトウエアは 1 から作り直したものではない．計算部分は Web Decomp で使われたものに少し手を加えた程度である．おそらく，EXCEL に移植するにあたって 1 から書き直していては大変な手間がかかると思われる．
また，R 自身に標準では GUI を作成する環境が付属していないので，EXCEL を使って GUI 部分を作成できるのはとても便利である．したがって，R で作られた統計プログラムを一般ユーザー向けに公開する際には，今回使った開発法がとても有用であると思われる．また，S 言語で書かれたプログラムであっても R で動作可能であれば，同様の手法が適用できる．
7.

まとめ

今後，コンピュータ上で統計解析を行う機会は一般のユーザーにとっても多くなっていくと思われる．それとともに，いろいろな統計手法がユーザーの使いやすい形でソフトウエア化されることが期待される．E-Decomp の開発で使われた手法を用いると，開発負担が大幅に軽減できるため，開発者およびユーザー双方にとって大きなメリットが生じると考える．

EXCEL 上の時系列解析ソフト E-Decomp の開発

313

付 論
A.1 E-Decomp の動作環境
ハードウエア：x86（及びその互換の）マシン
OS: Windows9x, ME, NT4.0, Windows 2000
ソフトウエア： Microsoft Excel97, 2000
A.2 インストールの方法
インストールはやや複雑で，今後，改善する余地がある．

まず，R をインストールする．R のサイトからアーカイブをとってきて，HDD のどこかにインストールする．たとえば，C:YR にインストールすることにする．同じく，
R-(D)COM Interface についてもダウンロードをし，解凍した後に，C:YRYbin に “StatConnectorSrv.exe”，“StatConnectorClnt.dll” をコピーする．そして，E-Decomp のアー
カイブについても解凍して RYlibraryYedecomp に置く．
b. 環境変数 PATH に上記の RYbin を追加する．また，R HOME という環境変数を追加し，R の Directory を指定する．たとえば，Windows9x だと，autoexec.bat に，a.

SET PATH=C:YWindows;.......; C:YRYbin
SET R HOME=C:YRという風に記述する．変更を反映させるには再起動が必要である．NT および Windows2000 の場合はコントロールパネルのシステムプロパティで環境というタブにて設定する．
c. つぎに R-(D)COM をインストールする．まず，アーカイブに含まれる共通ライブラリのファイル (mfc42.dll, msvbvm60.dll, msvcrt.dll, regsvr32.exe) を必要であれば C:YWindows
YSystem (Win9x, ME) または C:YWinntYSystem32 (NT, 2000) にコピーする．すでにそのファイルが存在するときは日付の新しいほうを残すようにする．（念のため上書きするときは元のファイルを Backup しておく．
）なお，特に mfc42.dll は他のプログラムで使われている可能性が高いため，入れ替えをする場合はいったんそれらのプログラムを終了しなくてはならないケースが多い．特に裏で常駐しているプログラムがある場合は共有違反でエラーになることもある．
d. mfc42.dll を以下のように登録する．コマンドプロンプトで
C:Y>regsvr32 C:YWindowsYSystemYmfc42.dll(NT，Windows2000 の場合は C:YWinntYSystem32Ymfc42.dll)e.

regsvr32.exe がある Directory が path に設定されていないときはフルパスで書く必要がある．通常は C:YWindowsYSystemYregsvr32 (Windows9x，ME) または C:YWinnt
YSystem32Yregsvr32（NT，2000）である．
R のホーム (R HOME) の下の bin に cd して
C:YRYbin>StatConnectorSrv /RegServer
C:YRYbin>regsvr32 StatConnectorClnt.dllとする．もし，ここで，エラーが出る場合は mfc42.dll が古い可能性があり，入れ替えが必要である．これで，R と R-(D)COM のインストールが完了である．R-(D)COM のインストールでトラブルがあったときは付属の文書を参考にされたい．

314

統計数理 第 49 巻第2号

2001

次に Explorer で R HOME の下の libraryYedecomp の Directory を開いて edecomp.xls をダブルクリックして起動する．マクロの確認が出たら 有効にする を選択する．この時点で E-Decomp は実行可能である．“ツール” → “マクロ” → “マクロ” を選んで，“Edecomp” を選択することで実行できる．また，このマクロは内容を変更することも可能で，自由にカスタマイズして使うことができる．
g. すぐに実行できるように，エクセルのツールバーにマクロを登録しておく．“表示” →“ツールバー” → “ユーザー設定” をクリックする．次に “新規作成” を押す．ツールバー
名はなんでもいいが，E-Decomp としておく．“OK” を押すと小さいツールバー領域ができるので，ここに，先ほどのコマンドタブの “マクロ” の “ユーザー設定ボタン” を Dropする．（マウスでドラッグしてやり，先ほどの領域にもってきて放す．
）選択したボタンの “編集” をクリックして “マクロの登録” を選ぶ．“Edecomp” を選んで “OK” すれば完了である．好みでボタンのデザインを変えることも可能である．また，ボタンの位置もドラッグすることで移動できる．次回からはこのボタンを押すことで E-Decomp が実行される．
f.

参 考 文

献

赤池弘次，中川東一郎 (1972). 『ダイナミックシステムの統計的解析と制御』，サイエンス社，東京．
北川源四郎 (1986). 時系列の分解プログラム DECOMP の紹介，統計数理，34(2), 255–271.
北川源四郎 (1993). 『Fortran77 時系列プログラミング』，岩波書店，東京．
Kitagawa, G. and Gersch, W. (1984). A smoothness priors-state space approach to the modeling oftime series with trend and seasonality, J. Amer. Statist. Assoc., 79, No. 386, 378–389.
北川源四郎，佐藤整尚，永原裕一 (1999). 非ガウス型状態空間モデルによる確率的ボラティリティモ
デルの推定, 金融研究，18(1)，45–64.
Kunitomo, N. and Sato, S. (1999). Stationary and non-stationary simultaneous switching autoregressive models with an application to financial time series, The Japanese Economic Review, 50,161–190.
佐藤整尚 (1997). Web Decomp の紹介
WWW 上で行う季節調整システム, 統計数理, 45, 233–243.

Proceedings of the Institute of Statistical Mathematics Vol. 49, No. 2, 305–315 (2001)315

Developing E-Decomp
An EXCEL Application
for Time Series Analysis
Seisho Sato(The Institute of Statistical Mathematics)“E-Decomp” is a statistical software used on EXCEL. Users can easily apply various time series methods, for example, seasonal adjustment, AR fitting, and ARMA
fitting. The programs for these methods were originally developed for our Web application, “Web Decomp” (http://www.ism.ac.jp/∼ sato/). “E-Decomp” consists of a GUI
part and a computational part. The GUI part is written in EXCEL-VBA, and the computational part is written in R and the DLL which is called from R. These two parts
are linked using “R-(D)COM Interface”, which was developed by Mr. Thomas Baier(http://www.ci.tuwien.ac.at/R/other-software.html). We use the same programs for thecomputational part of “Web Decomp” and“E-Decomp”. We can easily develop this new
application by using this R-(D)COM Interface. This paper explains how to install anduse “E-Decomp” and shows an example of an easy way to develop a new application byreusing existing software.

Key words: Time series analysis, seasonal adjustment, autoregressive model, Decomp, EXCEL.