GEMPACKとGAMS

CGE分析をするのにGEMPACKGAMSのどちらを利用するのがいいのか?どちらを学べばいいのか?ということをたまに聞かれます。

GAMSで記述したGTAPモデルのプログラムの記事と少し内容がかぶりますが、GEMPACK、GAMSの長所、短所を比較したいと思います。

[注]私は普段はGAMSのユーザーで、GEMPACKについては基本的な使い方しか知りません(GTAPモデルを動かしたり、GTAPモデルを自分で少し修正をしたことがある程度)。以下のGEMPACKの記述ももしかしたらも違っているかもしれません。GEMPACKについて正確なことが知りたい人はGEMPACKのユーザーに聞いた方がよいと思います。

GEMPACKの長所

  • GTAPモデル、GTAP-Eモデル等、GTAPが提供するモデルをそのまま利用できる
  • GEMPACKで書かれたプログラムをそのまま利用できる
    • 例えば、GTAPデータの部門を細分化するためのプログラムSplitComはGEMPACKで記述されている。
    • Monash大学の研究者がGEMPACKで記述されたCGEモデルのプログラムを提供している。
  • 効果の要因分解をすることが可能
    • 政策の効果がどのような要因を通じているのかを明らかにすることができる。
    • ただし、これをおこなうには、自分で解析的な計算を行なった上で、多くのコードを書く必要はありますので、簡単ではありません。
    • GTAPモデルについては、元から厚生効果の要因分解をしてくれるコードが入っています。
  • 大きいサイズのモデルが解ける(?)
    • GEMPACKは大きいサイズのモデル(変数の数が多いモデル)を解きやすいとよく聞くのですが、GAMSと比較してどの程度なのかはよく知りません。

GEMPACKの短所

  • 普通の数値計算ソフト(例えば、MatlabMathematica、GAMS等)とは使い勝手がかなり違う
  • 特に違うのは、式をlinearizeした形(全微分した形)で記述しないといけないという部分
  • 「コード編集→コンパイル→実行」という手順が必要。実行が面倒。
  • 基本的にCGEモデル用のソフトで、他の数値計算には向かない。
    • 最適化問題を解くような計算には向かないと思います。

次に、GEMPACKに対するGAMSの長所、短所をあげておきます。

GAMSの長所

  • CGEモデル用というわけではなく、汎用の数値計算ソフトです。
    • 普通の数値計算ソフトと共通点が多く、なじみやすいと思います。
  • 自由度が高い
    • コーディングにおける自由度が高い
    • 扱える問題のタイプが豊富(MCP, NLP, LP, MIP)
  • 多くのCGEモデルがGAMSで書かれている

GAMSの短所

  • GEMPACKで可能な要因分解の分析が難しい(ただし、不可能というわけではないと思います)

GTAPモデルがGEMPACKで記述されていることもあり、GEMPACKはどちらかというと貿易政策の分析という分野で強いと思います(貿易政策の分析をする際にはGEMPACKは参考になるものが多い)。それに対し、温暖化対策の分野ではGAMSを利用している研究が多いと思います。

どちらを覚えるのがいいかと聞かれたら、私はたいてい次のように回答します。

  • GTAPモデルを利用したい、GEMPACKで記述されたコードをそのまま利用したいという人には、GEMPACKを利用することを進めます。
  • 様々な分野でCGE分析をしたい、温暖化対策の分析をしたい、自分でモデルを作成したい、最適化問題等も解きたいというような人にはGAMSを利用することを進めます。