GAMSでCGE分析をするのに必要なもの

[追記]『応用一般均衡分析入門』の「第11章:NLPとしての一般均衡モデル」という文書でも同じようなことを説明しています。そちらも参考になると思います。


CGE分析では数値計算ソフトとしてGAMS(General Algebraic Modeling System) がよく利用されます。

GAMSといっても、GAMS本体(GAMS Base Module)以外に様々なソルバーもあります。CGE分析をするのに、結局、GAMSの何を購入すればよいのか以下で説明したいと思います。

まず、CGEモデルをどのようなタイプの問題として解くかが関わってきます。これには

の二つがあります。普通、経済学で一般均衡モデルを解くとは、均衡条件を解くということで、均衡条件は普通連立方程式として表現されますから、前者が普通のアプローチだと思いますが、CGE分析では後者の方法が使われる場合がよくあります。例えば、『テキストブック 応用一般均衡モデリング―プログラムからシミュレーションまで』では後者の方法を使っています。ここらへんのことについては「MCP solver vs NLP solver」で説明していますので、まずこちらを読んでみてください。

連立方程式として解く場合

お金に余裕がない人は、とりあえずGAM base module、つまりGAMS本体だけでもできないことはないです。Base moduleには連立方程式を解くためのソルバーであるMILESがデフォールトで付いていますから。アカデミックなら640ドル、非アカデミックならその5倍です。

ただし、モデルが大きい(変数の数が多い)場合には、MILESではモデルを解きにくくなります。場合によっては、全く解くことができないということもあります。ですので、Base moduleにプラスしてソルバーのPATHも絶対に購入したほうがよいです。PATHならMILESよりもモデルを解きやすくなりますし、PATHでないと解けないことが多いです。PATHも買うならさらに640ドルプラス(非アカデミックならその5倍)です。

さらに、余裕のある人はソルバーのMPSGE(アカデミックで640ドル、非アカデミックならやはり5倍)を買っておくとよいと思います。MPSGEとはCGE分析をおこなうための専用のソルバーで、これを使うとモデルの記述が非常に楽になります(詳しいことは「MPSGEの利用方法」を見てください)。また、MPSGEで書かれたCGEモデルのサンプルプログラムを自分で実行できるようになります。もし、誰かが作成したMPSGEのプログラムを参考にしたいというのなら、MPSGEの購入も必須です。

NLPとして解く場合

Base moduleにはNLPのソルバーは付属していませんので、以前はNLPとしてCGEモデルを解く場合には、別のNLP用のソルバーを購入する必要がありました。しかし、現在はPATHにPATHNLPというNLPソルバーが付属していますので、PATHを購入すればNLPとして解く場合にも対処することができます。ただし、同じNLPソルバーといってもソルバーによって性能が違いますので、PATHNLPではなく、他のNLPソルバーを使った方がよい場合もあります(NLPのソルバーには、他にはCONOPT、MINOSなどがあります)。これについては、私も他のNLPソルバーを使った経験が少ないので、はっきりしたことはわかりません。

□ まとめ

ということで、できれば

  • GAM base module
  • Solver PATH
  • Solver MPSGE

の3つをそろえておくのがいいと思います。アカデミックなら締めて640x3=1,920ドル(非アカデミックならその5倍)。

もし、3つを購入する余裕がなく、2つしか購入できないのなら

  • GAM base module
  • Solver PATH

という選択か

  • GAM base module
  • Solver MPSGE

になりますが、後者は問題が生じる可能性が高いとおもいます。MPSGEはあくまで作業を効率化させるというもので、なければないで自分でなんとかできますが、PATHがないとどうしようもないケースが結構ありますので。


実際に購入するときにはわかる人に相談して確認した方がいいと思います。私が大学院生だったときに、よくわからないままCGE分析を始めて、GAMS base moduleを買ってみたのですが、結局その他にもいろいろ必要なことがわかり、最終的にBase module+ソルバー3つ+GTAPデータを購入することになり、自腹で30万円くらい払いました。よくわからないまま手を出すのは危険です...

今は研究費でソフトウェア、データを購入できるのでいいのですが、ある程度の学の研究費が利用できる人でないとCGE分析するのは難しいですね。自腹で購入できないことはないと思いますが。

単にお金を節約したいということでしたら、GAMSのような商用のソフトは使わず、C言語、フォートランなどでプログラムを書いて解くという方法もあります。しかし、全体としての手間を考えると、そんなことはせずにアルバイトでもしてお金をためてGAMSを購入した方が得だと思います。