下記の
第二章~データを得るまで(制度知識+経済理論パート)
に関する手記が届いたので公開する。
第一章は、ジョジョ一部みたいなもんです。
第二章では、
構造推定を最終目標としたとき、データをどのように集めるか、という前前前処理パートをできるだけ構造的に書いてみる。ここの整備具合で、サグラダファミリアか(少なくともいつか完成する望みはある)、賽の河原か(地盤から崩れては積み、崩れては積みの繰り返し)になるかが決まる。
第二章~データを集めるまで(前前前処理パート)
難所1. データセットはどういう形でどういう範囲でどういう観察単位で集められるか、スクレイピングなりアナログなりどんな手法で集めるか(前処理の前処理の前処理)
観察単位に関しては第一章で全て決まってるようなものだが、集める段階では当然できるだけfinerなサンプルが望ましい。集計レベルより個人レベル、年レベルより月レベル、国レベルより都道府県レベル。
各レベルで得られる観察される共変量Xもどういったものが得られるかどうか事前に調べておくのも必須である。例えば、製品価格は年レベルでしか得られないけど、購入量は月レベル得られる場合、データ上は製品価格は月で変動しないことになるので、このレベルのtime variationは推定量や均衡計算に使えないのである。別の例として、製品価格が店舗週レベルで数年得られるけれど、東京都中央区のデータしか使えない場合、geographical variationは使えず、time variationしか使えない。
スクレイピングの場合は権利関係が(多分というか絶対)難しくて、amazonとかスクレイピングがダメだった気がする。
申請することで得られるデータだと、ふつう数か月から年単位で入手まで時間がかかる。また「自分の想定していた変数とかと違う!」みたいなことが事後で起こりうるのを覚悟する。また、コロナ期間を経て、保険とか医療系のデータ申請が軒並み停止しているらしく、そのデータを当てにしていた学生は軒並みプロジェクトが頓挫している。
データ取得の時点で
ということである。
アナログの資料だと自分の目と手で判断でき拡張できるので時間はかかるが確実かもしれない。OCR技術もうまく使おう。
RCTとかができる環境だと事前準備がどれだけできるかに依存するはずだが、巧くやった経験がある人に聞いてみるべし。
難所2.上で作ったraw dataをどういうtidydataに処理するか(前処理の前処理)
環境構築先駆者である先人の答え。これが先のステージあることを意識して、データを集めるのである。
ただしこの「前処理の前処理」は、指示と実行のギャップが大きく、相当の専門的訓練が必要である。訓練しなければどんなスター研究者のコードでも危ないことが起こりうる(ことがコード公開されたときにレプリケーションしようとする後続の研究者によって判明する。)
学部生をRAとして雇う時にデータ整理をやらせることがままあるけど、よほどわかってる人でなければそこがあとでスパゲティ化するので基本的にやめたほうがいいと思う。で、学部生に割り振る一番適切な仕事は「調べ物」や「データ取得」だと思う。これはわりと完璧にこなしてくれる。
— Kohei Kawaguchi (@mixingale) April 29, 2021
失敗した経験からみると、分析のゴールへのpathが見えていない経験不足な状態だと、自分で書いた「前処理の前処理」のコードが将来的にどこで問題になるか分からない、ので上述のスパゲティ化が生まれてしまう。また、追加的注文があったときに、ad hocな枝葉だけの処理をしてしまいがち(というか、それしか修正方法を知らない)で、枝葉が増えるごとに全体の修正が効かなくなる。指示を出す側も、追加的注文の(能力面での)コストが観察不可能であるため、コード完成図に対する認識のズレが発生してしまう。
同様に、数値計算の難しいコーディングをRAにやらせる場合も、不確実性をはらんだモデルの場合、無限に時間がかかってしまう。この場合、追加能力として「何がうまくいっていないのか」をドキュメントとして報告して結果を解釈するレポーティング能力が別途必要である。例えば、構造推定ならば、シミュレーションデータの均衡計算で理論的な解釈通りコードが動いていなければ、「何かがおかしい」とこの時点で判明する。この時点で分かるだけ、マシなのであるが。
Hey #econtwitter ! @gaiagdossi and I have put together a (very un-exhaustive) list of best practices for Applied Micro RAs - feel free to use it, share it and contribute! 👇https://t.co/VAefAj5Ubt pic.twitter.com/WhylZGUehP
— Livia Terenzi Alfonsi (@livia_alfonsi) May 29, 2021
一方で、調べ物やデータ取得は「ゴールが不確実性がなくはっきりしている」かつ「労働投入量と成果物の対応が明確」なので、正確にタスクが処理されるだろう。数値計算上の仕事でも「XXの論文のコードを別言語でレプリケーションする」という課題ならば、同様に正確にタスクが処理されるだろう。
難所3.誘導形や基本統計量からデータの傾向をみて、第一章で立てた理論モデルとそれなりに予想通りかどうか。操作変数等はそれなりに機能していそうか。
理論モデルが全くない研究は、ここを充実させることで全部書ききれるかもしれない。あとはこの時点で大量のグラフや表が作れるので、Section 2あたりに入れ込んでプレゼンでも映える図を作るようにするイメージ。
難所4.カリブレーションするパラメタと推定(識別)する予定のパラメタを想定したデータセット(行動変数、状態変数、説明変数、被説明変数)になっているかどうか
これも第一章で想定しているモデルに依存する。先行研究がどうコード書いているのか真似するのが一番である。
難所5.エラーが入るのはどのレベル(複数階層、相関有無、分布指定有無)と想定しているのか
ここで厄介なのは、構造推定におけるエラーには、企業は明らかに考慮してる(情報として意思決定に取り入れている)けど我々がデータから得られない要素、と企業も知らないただのエラー、の二種類がある。この前者の存在が均衡計算に入ってきて非常に厄介なのである。
これの良い例は、incomplete information static entry gameで企業立地を構造推定した以下。
Seim, K. (2006). An empirical model of firm entry with endogenous product‐type choices. The RAND Journal of Economics, 37(3), 619-640.
これがWP2001時点で、このゲームをこの世で初めて対称な競争効果を仮定して、市場mに観察不可能だけど企業は知ってる要素ξ_mをiidで入れてBayesianNashEquilibrium解いて推定しましたよ、
Zhu, T., & Singh, V. (2009). Spatial competition with endogenous location choices An application to discount retailing. Quantitative Marketing & Economics, 7(1).
これがこのゲームを企業間の非対称競争効果(i.e.,Walmart参入のK-martを脅かす効果と逆パターンの効果は別物)に拡張して、同じ感じで解きましたよ、
Orhun, A. Y. (2013). Spatial differentiation in the supermarket industry The role of common information. Quantitative Marketing and Economics, 11(1), 3-37.
これがWP2005時点で、企業間の非対称競争効果に加えて、市場m内のより細かい立地grid lに対して観察不可能だけど企業は知ってる要素ξ_lをiidで入れてBNEを解いて推定しましたよ、
という流れ。モデルの構造は全く同じであるが、エラーの階層がより複雑になっている。これらはエラーが階層が異なれど1次元だが、全部のエラーを組み合わせて4次元エラーをドローしたり、市場間のエラーに相関を作ったりいろいろある。実用的には、ひとつはGumbel分布にして、あとはiid Normal、階層間で一次元の空間or時間依存性を入れるぐらいが多い。