DYNAMIC PANEL WITH R
SHOTA YASUI 2014/6/14 TOKYO.R
WHO AM I?
名前:安井翔太 / Shota Salmon Yasui Twitter:@housecat442 お仕事:広告×データ分析、ときどきアドテク。
<けーれき> 日本のド文系経済学部
アメリカで計量経済学1年
ノルウェーで経済学修士取得
SNF研究所でデータ分析(環境税作成)
WTF IS DYNAMIC PANEL???
パネルデータの線形回帰に自己回帰項を突っ込もうという話。 今日はたったそれだけの話。
■アジェンダ
1.パネルデータ分析のおさらい 2.動学的パネルにしたときの問題点
3.動学的パネルの推定 4.企業の雇用モデルへの応用
CROSS SECTION
観測対象_1
観測対象_2
観測対象_3
観測対象_N
データを取得する対象がN存在している。
全ての観測対象が同様のモデルに当てはまると仮定する。 例)
y=増加体重
x=エサの増加量
β0とβ1が全ての観測対象が同様に持っているパラメーターと仮定出来る場合に有効。
y!�!! + !!!! + !! !(! = 1,2,… ,!)
ある対象について期間1〜Tの間観測する。 エサの増加と体重の増加を同一対象からT回観測する。 y=体重増加量 x=エサ増加量 期間内でパラメーターが大きく変化しないと仮定出来るのであれば適正なモデルと言える。
期間_1 期間_2 期間_T
TIMESERIES
y!�!! + !!!! + !! !(! = 1,2,… ,!)
PANEL
観測対象_1
観測対象_2
観測対象_3
観測対象_N
期間_1 期間_2 期間_T 期間_3
→N人/匹の同一個体からT期間に渡ってデータを取得する。
PANEL
y!!�!! + !!!!! + !! + !!! !(! = 1,2,… ,!)(! = 1,2,… ,!) 時間でも観測対象でもパラメーターが変わらない場合同一のモデルで扱う事が出来る。 Unobservable specific effect とか Individual specific effectとか固定効果とかって呼ばれるλがモデルに入ってくる。
・3つの推定方法 Pooled corss section(iとtでダミー変数を入れる方法。今回はパス)
Random effect
Fixed effect (First Differenct)
WHY NOT OLS?
結論:推定結果にバイアスが掛かってしまうから。
WHY NOT OLS? 極例:こんな事だってあり得るかも? Individual specific effect をどーにかしないといけない。
FIXED EFFECT
固定効果モデル( 前提:cor(λ,x) ≠ 0 ) 個体内での平均と差分とってλを消しちゃえば良いじゃんという発想。
時間変化しない変数をモデルに入れている場合はそれも消えてしまうので、その効果が推定出来ない。 →ダミー変数とか、教育年数の様な時間であまり変化しないデータは良く消える。
個体間でも時間でも変動しないので消える。
y!" − !!� !! − !! + !! !!" − !! + !! − !! + !!" !
同じ個体内では時間変動しないので消える。
RANDOM EFFECT
変動効果モデル( 前提:cor(λ,x) = 0 ) 定数項が入っていればλは平均が0となる。
このモデルをOLSで推定するとλを通して相関するので、
となる。よって自己相関の問題が起きてしまう。
→一般化最小二乗法で推定。
y!"�!! + !!!!" + !!" ! !! + !!" = !!" !
!"## !!" , !!"!! ≠ 0
PLM PACKAGE こんなデータを用意
t in T
t in T
i in N
観測値
i =
1 i =
2
PLM PACKAGE
library(plm) #データ読み込んで data <- read.csv(“Panel for R.csv”) #pdata.frameというplm用のデータフレームに変換 pdata <- pdata.frame(data, index = c("id", "year"), drop.index = TRUE, row.names = TRUE) preg <- plm(Y ~ X, data = pdata, model = "random") #サマリーで結果表示 summary(preg)
iとtの変数を指定
Fixed effect なら”within” Random effectなら”random” OLSなら”pooling”
余談
これらの分析方法はパネルデータ以外にも応用する事が可能。 例)家族ごとの効果を取り除く 双子のデータの差分を取って教育の効果を検証とかが有名。 “Estimates of the Economic Return to Schooling from a New Sample of Twins.” By ORLl-lY ASHENFELTER AND ALAN KRUEoER
本題
I NEED DYNAMICS
自己回帰させて動学的なモデルにしたい。
!!"�!! + !!!!"!! + !! + !!"
!!"�!! + !! !! + !!!!"!! + !! + !!"!! + !! + !!"
λを通してy_it-2がλと相関してしまう。
Random Effectの前提が成り立たない。 OLSの推定もbiasedになってしまう。
ならFixed Effectで推定すれば良いじゃん
FIXED EFFECT WITH DYNAMICS
結論言うとバイアスされちゃう
βについているよけいな部分が0にならない。
分母の分散は0にならないので共分散を見てみる。
plim!→!
!"# !!" − !! , !!"!! − !!!"# !!" − !! = ! + !"# !!"!! − !! , !!" − !!
!"# !!"!! − !!
ANDERSON HSIAO ESTIMATOR
操作変数で解決しようという最初のアプローチ
plim!→!
!"# !!" − !! , !!"!! − !!!"# !!" − !! = ! + !"# !!"!! − !! , !!" − !!
!"# !!"!! − !!
こいつが戦犯
!!" − !! � !! − !! + !!" !!"!! − !! + !! − !! + !!" − !!
つまりここの相関を どうにかしたい。
操作変数(Z)を導入してこいつと誤差項の相関を消す。
Corr !!"!! − !! ,!!" ≠ 0 Corr !!" − !! ,!!" = 0
INSTRUMENTAL VARIABLE
操作変数のイメージ(簡単なので2SLSの説明で。) XとYが同時に決定されているのでXとuが相関してる場合。
Xと相関してるけれども、uとは相関してない変数Zを持ってくる
このモデルでXの予測値を計算すると、uと相関している部分がeに押し込まれて切り捨てられる。 これを元のモデルのXの部分に代入すれば同時決定の問題が消える。
Y = a + bX + u
X = c + dZ + e
ANDERSON HSIAO ESTIMATOR
Zとして使えそうなのは。Y_it-2
!!"!! = !! + !!!!"!! + !! + !!"!!
Corr !!"!! − !! ,!!"!! ≠ 0 Corr !!" − !! ,!!"!! = 0
自己回帰はしてる。(してないなら動学的なモデルいらない)
2期前のyが今期の誤差項と相関してるか?
二期の自己相関があるとここが今期の誤差項と相関してしまう。
TAKE FIRST DIFFERENCE
平均との差分よりは前期との差分を取るケースが多い 2期前のyを操作変数として投入
結果としてこんな推定が得られる。
!!" − yit!! � !! − !! + !!" !!"!! − yit!! + !! − !! + !!" − !!"!!
Corr !!"!! − !!"!! ,!!"!! ≠ 0 Corr !!" − !!"!!! ,!!"!! = 0
!!" =!!"!! !!" − !!"!!!
!!!!!!!
!!"!! !!"!! − !!"!!!!!!
!!!!
ANDERSON HSIAO ESTIMATOR
差分を操作変数として投入しようというアプローチ
2期前と3期前のyの差分を操作変数として利用
結果としてこんな推定がされる。
!!" − yit!! � !! − !! + !!" !!"!! − yit!! + !! − !! + !!" − !!"!!
Corr !!"!! − !!"!! , !!"!! − !!"!! ≠ 0 Corr !!" − !!"!!! , !!"!! − !!"!! = 0
!!"(!) =!!"!! − !!"!! !!" − !!"!!!
!!!!!!!
!!"!! − !!"!! !!"!! − !!"!!!!!!
!!!!
THEY ARE SUCK
差分を取った操作変数を用いる方式は、他の説明変数をモデルに入れると推定値の分散が大きくなってしまう。 レベルの操作変数の場合は自己回帰項の推定値が1に近い場合には大きなバイアスが掛かってしまう事がモンテカルロシミュレーションから解っている。 →だめじゃん・・・ と言う事でGeneralized Method of Momentを利用した推定方法が出てくる。 →Arellano Bond GMM estimator
ARELLANO BOND GMM ESITMATOR
操作変数増やしまくれば、精度上がるじゃんというアプローチ 別に何も操作変数を二期前に限定しなくてももっと使える。
ただ、数を増やしてパラメーターよりも操作変数の数が多い状態になると、解析的にパラメーターを求められなくなる。
こういった状況化で、最小化されるとパラメーターが上手く求まる様なコスト関数を定義して解くのがGMM
Corr !!" − !!"!!! ,!!"!! = 0 Corr !!" − !!"!!! ,!!"!! = 0 Corr !!" − !!"!!! ,!!"!! = 0 Corr !!" − !!"!!! ,!!"!! = 0
GMM
操作変数毎に満たさないといけないモーメント条件が発生し、 期間tが増えるごとに使える操作変数の量は指数的に増える。
MOMENT CONDITION
さっきのモーメント条件はこんな感じに書ける。
MINIMIZATION
こんなコスト関数を定義して最小化 βについて解くと二番目の様な式になる。
WTF IS “W”
Optimal weighting matrixとかいうもの Wの中身次第で推定結果が幾らでも変わってしまう。 サンプルモーメントの共分散行列の逆行列が入る。 →直感的な意味合いとしては、「より小さい分散を持つモーメント条件、つまりはより正確な情報を持つモーメント条件により重みがつく様になる。」・・・らしい。 けど共分散行列自体を求めるのにβが必要になってしまう。 →取り敢えず単位行列とかを代入してβを推定して、そこからWを計算するという方法を用いる。
IMAGE Wが必要
W βが必要
取り敢えず単位行列入れちゃう
相互依存してて解けない
Wを返す
W β推定
求まったWを使ってもう1回βを推定
NOTIFICATION
AB GMMには幾つか注意点がある。 1. 自己回帰以外の説明変数
• 入れてもおk。ただ、ちゃんと外生的である事。
2. 操作変数入れ過ぎのケース • Tが大きくなると操作変数が指数的に増える。 • オーバーフィッティングしてパラメーターにバイアスが掛かる • Wの推定精度が落ちて、パラメーターの標準偏差に下方バイアスが掛か
る
3. 操作変数の条件が満たされているか? • Overidentification-testで検定する。(sargan-test)
4. 誤差項の自己回帰が無いという仮定を置く必要がある。 • 置かないと操作変数の仮定がそもそも成り立たない。
AN APPLICATION TO EMPLOYMENT EQUATION
企業の雇用活動を説明したい。 (data("EmplUK", package = "plm”)) 企業が自由に追加コスト無しで雇用数を調整出来る場合 この辺の変数で大体説明される。
賃金 資本 業界
トレンド マクロトレンド
ただ実際には雇用するにも解雇するにもコストが掛かる。 よって、実際の動きはこれらの変数を加味して雇用を調整するという感じになる。
雇用
賃金 資本 業界
トレンド マクロトレンド
雇用 過去の雇用
AN APPLICATION TO EMPLOYMENT EQUATION
雇用モデル 今年のある企業の雇用数は、「賃金・資本量・業種自体への需要・経済全体でのトレンド」に影響される、というアイデアに基づいているモデル。 「賃金が上がれば雇用が減り、
資本が増えれば雇用が増え、 業種の生産高が増えれば雇用が増える。」
!!" = !!!!"!! + !!!!"!! + !!!!" + !!!!"!! + !!!!" + !!!!!" + !!!!!"!! + !! + !! + !!"
!!":!��!�!����"���������!!!":��!�!����� �!!!!":��!�!���������������!!!!":��!��������!�����#���!!!: !��� ���
Some Tests of Specification for Panel Data: Monte Carlo Evidence and an Aplication to Employment EquationsのTable4(b)と同じ推定。
#Table4 column(b) emp.gmm.b <- pgmm(log(emp)~lag(log(emp), 1:2)+lag(log(wage), 0:1)+log(capital)+lag(log(output), 0:1)
|lag(log(emp), 2:99),EmplUK,effect="twoways",model="twosteps") summary(emp.gmm.b)
AN APPLICATION TO EMPLOYMENT EQUATION
賃金と資本が同時決定になっていると考えられる。 →操作変数で解決。
賃金 資本 業界
トレンド マクロトレンド
雇用 過去の雇用
#Table4 column(c) 賃金・資本が同時決定になっていると考えられるケース こっちの方が適正 emp.gmm.c <- pgmm(log(emp)~lag(log(emp), 1:2)+lag(log(wage), 0:1)+log(capital)+lag(log(output), 0:1) |lag(log(emp), 2:99) + lag(log(wage),2:99) + lag(log(capital),2:99) ,EmplUK,effect="twoways",model="twosteps") summary(emp.gmm.c)
まとめとか補足
ブログに丸投げ! http://www.housecat442.com/
おしまい!
Top Related