Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rで計量経済学#6 パネルデータ分析

Rで計量経済学#6 パネルデータ分析

所属している研究会で扱った資料になります。
内容について間違いがある可能性もありますので、その際にはご連絡ください。

TomoyaOzawa-DA

August 15, 2020
Tweet

More Decks by TomoyaOzawa-DA

Other Decks in Education

Transcript

  1. データの種類:実は3種類 パネルデータはクロスセクションデータ×時系列データ. ⼀番情報量の多いデータになっています. 4 01 パネルデータとは? ※お兄さんスライド参考 1時点のデータ 複数時点のデータ 1つの変数

    - 時系列データ ex. 株価データ 複数の変数 クロスセクションデータ ex. 2019年に調査された都道府県別の 統計データ パネルデータ ex. 2010年から毎年同じ⼈に⾏っている アンケートデータ
  2. パネルデータの概観 パネルデータを扱う際には経済主体と観測期間をしっかり把握しておきましょう. 以下のような航空系統のデータの場合は… 5 01 パネルデータとは? 変数の名前 変数の内容 year 観測年(1997年〜2000年)

    origin 出発地 destin 到着地 dist 当該路線の距離(単位:マイル) passen 1⽇あたりの平均乗客数 経済主体:路線(出発地〜到着地) 観測期間:1997年〜2000年 観測期間 経済主体
  3. クロスセクションデータに時間情報が追加されるので,嬉しいこと盛り沢⼭です. 6 より厳密な推定 固有の要因を考慮可能 パネルデータの嬉しいところ ある特定の年代だけを分析しても, それ以外の年に同じことが ⾔えるかどうかはわからない. さらにサンプルサイズも増えるので良きです. 経済主体(個⼈や企業)の

    固有の要因を考慮できれば, 賃⾦推定の時のような ⽋落変数バイアスに対応できそうですね. ・他には時間軸で⽐較できることも嬉しいところです.例えば政策評価(合併の評価など)に役⽴ちます. 来週以降に扱う予定です.DID分析といった因果推論に通じる話です. ・嬉しいことが多い反⾯,データを加⼯する必要があります.頑張りましょう. 01 パネルデータとは?
  4. パネルデータ分析には,固定効果モデルと変量効果モデルの2つがあります. 9 変量効果モデル 固定効果モデル パネルデータ分析 経済主体の固有効果と 誤差項が相関していないと 仮定する場合のモデル 経済主体の固有効果と 誤差項が相関していると

    仮定する場合のモデル ・ハウスマン検定を⾏うことで,どちらのモデルが統計的に良いかどうかを判断することが可能です. 帰無仮説:固有効果と誤差項が独⽴(変量効果),対⽴仮説:固有効果と誤差項が独⽴ではない(固定効果)とします. つまり,ハウスマン検定を実施した際のP値によって帰無仮説が棄却されるかどうかを判断します. 02 パネルデータ分析の⼿法
  5. 変量効果モデル:推定⽅法 固有効果と誤差項をまとめて誤差項と捉えて推定しています 10 02 パネルデータ分析の⼿法 , = + ×, +

    + , = + ×, + , (, = + , ) 【単純なOLS推定ではない】 ・固有効果と誤差項をまとめて誤差項と捉えることで誤差項間で相関が⽣じていしまい, OLS推定ではバイアスがかかってしまいます. そこで,変量効果モデルでは被説明変数と説明変数に複雑な変換を加えて⼀般化最⼩⼆乗法で推定しています.
  6. 固定効果モデル:数式で捉える 固有効果と誤差項が相関すると仮定する固定効果モデル. 経済主体の期間平均との差分をとることで,固有効果を除いて推定しています. 11 02 パネルデータ分析の⼿法 , = + ×,

    + + , - = + × + + − ()より , − - = ×(, − ) + (, − ) = × / , + 0 , ・差分モデルという前期( − )のラグを取って固有効果を除く⼿法もあります. ・固有効果が時間不変の効果であるためにこのような操作が可能になります. ・固有効果もちゃんと計算されます.
  7. 固定効果モデルは以下のバイアスに対処することが出来ます. 12 逆の因果性 ⽋落変数バイアス 固定効果モデル:良いところ 経済主体の固有効果が 逆の因果性が⽣じる原因 となっている場合に有効です. データで観察しづらい 個⼈の能⼒といった影響は

    固有効果として除くことが出来ます. ・⽋点としては,観察期間で⼀定の値をもつ変数の効果を測定することができません. 固有効果として認識されてしまい,説明変数から除かれてしまうからです.あとで実際に分析して確かめてみましょう. 02 パネルデータ分析の⼿法
  8. 15 本⽇のデータ 本⽇のデータは airfare.xlsx というファイルになります. ▼データの詳細 ▼こんなデータのはず 出所 ・1997年〜2000年までのUS航空市場のデータ. ・『Introductory

    Econometrics -A modern Approach-』 のサンプルデータ 変数の名前 変数の内容 year 観測年(1997年〜2000年) origin 出発地 destin 到着地 dist 当該路線の距離(単位:マイル) passen 1⽇あたりの平均乗客数 fare 平均⽚道運賃(単位:ドル) bmktshr 当該路線で最も⼤きいキャリアの市場シェア ID 路線番号 03 Rでの実装
  9. データの把握:ヒストグラム作成 今回はggplotというライブラリを使⽤して, 被説明変数となる運賃についてヒストグラムを作成してみましょう. 仮説 ⽴て 収集 把握 モデル 推定 解釈

    ## いつもよりかっこいいグラフが描けるライブラリggplot2をインストール ## install.packages("ggplot2") library(ggplot2) #geom_histogramと指定することで、ヒストグラムを描画出来る# g_fare <- ggplot(data = df_air, aes(x = fare)) + geom_histogram() g_fare 16 ・ggplot2の使い⽅はこんな感じです.⾊々なグラフが描けるので,気になった⽅はググって⾒てください. グラフの名前 <- ggplot(data = データ名, aes(x=x軸にくる変数名, y=y軸にくる変数名) + グラフの種類 論⽂で使う場合はこっちのスタイルの⽅が良いかもです. g_fare <- g_fare + theme_classic()
  10. データの加⼯:対数変換 運賃の分布は少し偏っているので対数変換してみましょう. 対数をとってあげると,分布の歪みが解消されます. 仮説 ⽴て 収集 把握 モデル 推定 解釈

    17 # fareの対数をとった値を新しくln_fareという変数として追加する# df_air$ln_fare <- log(df_air$fare) ・⽂字通りlogという関数を使えば,対数に変換されます. ・ln_fareという変数のヒストグラムを描いてみて,分布がどのように変化したのか確認してみましょう! 分布の歪みが⼩さくなって,正規分布っぽい形状になっているはずです. ・経済理論から⾮線型の式が導かれた場合に,対数変換をしてあげれば,線形の式で推定することが出来ます.
  11. 【重要】対数の解釈 回帰モデル内の変数を対数に変換した場合,パラメータの解釈に⼀捻り必要です 18 ※⼭本(2015)P.45 03 Rでの実装 ・弾⼒性を図る際には,説明変数と被説明変数ともに対数をとります. この対数変換により,パラメータが弾⼒性を⽰します. Y lnY(⾃然対数)

    X Xが1単位増えた時に Yがβ単位分変化する Xが1単位増えた時に Yが(β×100)%分変化する lnX (⾃然対数) Xが1%増えた時に Yが(β÷100)単位分変化する Xが1%増えた時に Yがβ%分変化する 被説明変数 説明変数
  12. 19 計量経済学モデル構築:OLS推定 まずはいつも通り重回帰分析で推定していきましょう! 結果はout_OLSという名前で保存しておいてください.結果はどうなりましたか? 仮説 ⽴て 収集 把握 モデル 推定

    解釈 _ = + × + × + × + ・被説明変数が対数であることに注意し係数を解釈してください! ・OLS推定だと,各路線固有の要因(有名な観光地のある空港かどうかetc.)が考慮されていません. そのため,これから変量効果モデルと固定効果モデルで分析していきたいと思います.
  13. 20 計量経済学モデル構築:パネルデータ分析 路線固有の要因 をモデルに加えて分析していきましょう. 仮説 ⽴て 収集 把握 モデル 推定

    解釈 ・変量効果モデルの場合,固有効果 と誤差項, に相関がないことを仮定します. ⼀⽅で,固定効果モデルの場合, と, に相関があるとして分析していきます. _, = + ×, + ×, + ×, + + ,
  14. 21 推定:パネルデータ分析の準備 パネルデータ分析では,plmパッケージを使⽤します. 分析に⼊る前に使⽤するデータがパネルデータであるとRに認識させましょう. 仮説 ⽴て 収集 把握 モデル 推定

    解釈 # 必要なライブラリをインストールする# install.packages("plm") library(plm) # 観測主体がID, 観測期間がyearという変数のパネルデータですよ!と認識してもらう# df_panel <- pdata.frame(df_air, index = c('ID', 'year')) ・pdata.frameがパネルデータと認識してもらうコマンドになっています. index=c(観測主体,観測期間)の順に設定することに注意してください!
  15. 22 推定:変量効果モデル まずは変量効果モデルから推定してみましょう! 推定結果はOLS推定と同様にsummaryというコマンドで確認することができます. 仮説 ⽴て 収集 把握 モデル 推定

    解釈 ・⼤体こんな感じです. plm(被説明変数 ~ 説明変数, data = データ名, model = "random") ・推定結果のBalanced Panel という部分を確認してください.nが観測主体の数,Tが観測期間を⽰しています. Balanced Panel: n = 1149, T = 4, N = 4596 # 変量効果モデルを推定.結果をout_randomに格納 # out_random <- plm(ln_fare ~ bmktshr+ dist + passen , data = df_panel, model = "random") summary(out_random)
  16. 23 推定:固定効果モデル 次に固定効果モデルを推定してみましょう! 仮説 ⽴て 収集 把握 モデル 推定 解釈

    ・固定効果の場合はmodelの部分でwithinと指定します. ・各路線において時間不変の値をとるdistが説明変数から除かれていることを確認してください! ・fixefというコマンドで各路線の固有効果を確認できます.今回の分析の場合,路線の数だけ出⼒されます. # 固定効果モデルを推定.結果をout_fixに格納 # out_fix <- plm(ln_fare ~ bmktshr+ dist + passen , data = df_panel, model = "within") summary(out_fix) fixef(out_fix)
  17. 24 解釈:ハウスマン検定 変量効果モデルと固定効果モデルのどちらを選択すれば良いのでしょうか? ハウスマン検定を⾏ってみましょう! 仮説 ⽴て 収集 把握 モデル 推定

    解釈 # ハウスマン検定を実施する # phtest(out_fix, out_random) ・p値を参考にどちらの仮説を採択するのかを判断します. 今回はp値がかなり⼩さい値ですので,対⽴仮説が採択されます.つまり,選ばれたのは固定効果モデルです.
  18. 25 02 パネルデータ分析の⼿法 経済主体の固有効果に加えて, 観察時間ごとの時間効果も考慮して推定することが出来ます. 年ダミー(当該年であれば1を取るダミー変数)を説明変数に追加するようなイメージです. 下のモデルで観察期間が1997年〜2000年( ={1997, 1998, 1999,

    2000})の場合は… 時間効果も考慮してみる , = ×, + + , + , + , + , ※2000年ダミーが含まれていないのは,多重共線性のためです. ⾃動的にモデルに含めたとしても除かれてしまいます.
  19. 26 推定:時間効果を考慮してみる 次に時間効果を考慮した固定効果モデルを推定してみましょう! 仮説 ⽴て 収集 把握 モデル 推定 解釈

    ・時間効果を考慮する場合には,effect= “twoways”を追加します. ・Stataだと年ダミーを作成して説明変数に追加しなくてはいけないので便利ですね. # 時間効果を考慮して推定.結果をout_fix_timeに格納 # out_fix_time <- plm(ln_fare ~ bmktshr+ dist + passen , data = df_panel, effect = "twoways", model = "within") summary(out_fix_time) fixef(out_fix_time)
  20. 解釈:推定結果の整理 パネルデータ分析の場合mtableだと動かないみたいです. 代わりに今回はstargazerを使ってみます. #パネルデータ分析の結果はmtableだと動かないみたい。# install.packages("stargazer") library(stargazer) stargazer(out_OLS, out_fix, out_random, out_fix_time,

    type="text") 27 ・こんな感じで,textファイル形式で出⼒することができます. f <-stargazer(out_OLS, out_fix, out_random, out_fix_time, type="text") write(f, "panel.txt") 仮説 ⽴て 収集 把握 モデル 推定 解釈