Programming for Economists

StataでAdoファイル作ろうと思ったけれど、
Cameron and TrivediのMicroeconometrics Using Stata
http://www.stata.com/bookstore/musr.html
じゃ、全然役に立たない。


Cemeron and Trivediの本の中では、
Maximum Likelihood Estimation with Stata
http://www.stata.com/bookstore/ml4.html
がAdoファイルを書くのに参考になると書いてあったけれど、
MLEに特化しすぎているのがどうも気が引ける。


Stataは初学者でも推計できるように
推計コマンドを見掛け上簡単にしている分、
いざ推計プログラムを書くとなると、Syntaxとかややこしい。
MatlabやRの方がはるかにダイレクトで分かりやすい。
で、どこかにAdoファイルの書き方とか解説しているのないかな、
と思っていたら、MITとStanfordのコースサイトを見つけた。


http://web.mit.edu/econ-gea/14.170/
MITの院生によるProgramming for Economistsという授業のサイトっぽい。
2年前のだけど、StataとMatlabArcGISのプログラミングのレクチャースライドがある。
結構本格的。


bin/methods2010/material.php# 
StataとMatlabのプログラミングを教えるStanfordのProgramming Camp。
今年のページは最近の更新がされてないけど、去年のレクチャースライドがこちらからDLできる。http://www.stanford.edu/~roymill/cgi-bin/methods2010/material.php#


特にMITのは、
Matlabの最小化コマンドについても色々解説してあって参考になった。


ただ、Chelin Suいわく、Matlabの最小化コマンドは使えないので、
数値計算の専門家が開発したNonlinear optimizationソフトの
KNITROとかSNOPTを使うべきらしいけれど。

Knittel&Metaxoglou(REStat)
http://web.mit.edu/knittel/www/papers/RCs_latest.pdf
では、需要関数の推定によく使われるBLPは激しく非線形なので最小化アルゴリズムがうまく機能しないことが多く、
アルゴリズム10種類と初期値50通り試したらかなり結果がばらつくことを示してる。


http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1338152
Che-Lin Suたちのこちらの論文では、
最適化アルゴリズムはKNITRO使って、
Rust流のNested Fixed Pointでやるより、
制約付き最適化問題に置き換えて、モデル言語のAMPL使って解く方がはるかに速くて解を見つけられる可能性も高いことを示してる。
Nested Fixed Pointだと、IterationのたびごとにInner Loopを正確に解かないといけないんだけど、
制約付き最適化問題の場合にはIterationの過程で制約式が満たされていることを要求せずに解を探索していける分、
より早く、より確実に解が求められる。


AMPLは、modelファイルとdataファイルとrunファイルさえ作れば、
Neosサーバーで無料で計算してくれる。
http://www.neos-server.org/neos/solvers/index.html
非常に便利だけど、BootstrapとかMonte Carloするには、
Simulation drawごとに一つ一つアップロードしなきゃならないので、
やはりお金があったらAMPLとKNITRO購入してMatlab上で動かすのが一番。