2016-08-06 46 views
0

Rのパネルデータで実行されるStata xtlogit再回帰を複製しようとしています。パネルデータとは、異なる年に異なる個人(person_id) (year_id)。私の従属変数(DV)はバイナリです。私は予測したい2つの主要な変数(IV1 & IV2)といくつかの制御変数(some_controls)を持っています。全体として、私は約40,000の観測値を持っています。パネルデータのStataのxtlogit回帰を複製するR

私はStataの初心者ですから、xtlogitコマンドに含まれるコードの関連部分を特定できないことがあります。次のようにしかし、私の知る限り、関連するStataのコードを見ることができるようです:

isid person_id year_id 
xtset person_id year_id,y 
eststo: xtlogit DV IV1 IV2 some_controls cformat(%3.2f) pformat(%3.2f) re vsquish noomitted nolog noemptycells vce(robust) 

私は、次の式を使用してRでこれを複製しようとした:

「PLM」パッケージ使用:

plm(DV ~ IV1 + IV2 + some_controls, index = c("person_id","year_id"), model ="random", data = data_frame_name) 
をlme4パッケージを使用して

glmer(DV ~ IV1 + IV2 + some_controls + (1|person_id) + (1|year_id), family = binomial, data = data_frame_name) 

は残念ながら、PLMモデルは、番目を再現するために失敗しました私はStataコードを実行して結果を得る。 glmerモデルはエラー "エラー:pwrssUpdateが(最大)繰り返しに収束しませんでした"というエラーを返します。

Stataコードで計算された結果を正確に複製する方法については、感謝します。

Stata's xtlogit (fe, re) equivalent in R?が見つかりました。しかし、その質問に対する解決策がパネルデータにどのように適用されるかはわかりません。

+1

'plm'パッケージの' plm'コマンドは、パネルロジットモデル用ではありません。あなたは、例えばを見なければならないでしょう。そのために 'pglm'をパッケージ化します。 – Helix123

+0

@ Helix123コメントありがとう!私はpglmの式を複製し、それは正しく出力を複製する!あなたが答えとしてあなたのコメントを投稿した場合、私はそれを「正解」としてマークすることができます。しかしもう1つの質問:pglmは約30分かかり、Stataはわずか数秒でモデルを計算します。それがなぜ起こっているのでしょうか? – Phil

+1

あなたのデータセットはかなり大きく、私は 'pglm'プロシージャーが本当に最適化されておらず、純粋なRであると信じています。いくつかの"数値処理 "パッケージでは、重要な部分は速度向上のためにC(++)で書かれています。実際には、パッケージは「初期段階」(バージョン番号を参照)であるようですが、最新のCRANリリースは2013年からです... Stataは通常、かなり最適化されたプロシージャを持っています(また、事前コンパイルされたコードからも恩恵を受けることができます) 。 – Helix123

答えて

1

コマンドplmplmは、パネルロジットモデルのためには、xtlogitのようなStataはありません。あなたは、例えばを見なければならないでしょう。パッケージpglmとそこに機能pglmがあります。

関連する問題