2016-08-06 8 views
0

R의 패널 데이터에서 실행되는 Stata xtlogit 재 회귀를 복제하려고합니다. 패널 데이터를 사용하면 다른 연도 (person_id)마다 여러 관측 값을 가질 수 있습니다. (year_id). 내 종속 변수 (DV)는 바이너리입니다. 나는 (IV1 & IV2) 예측하기를 원하는 주요 변수 2 개와 많은 제어 변수 (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(DV ~ IV1 + IV2 + some_controls, index = c("person_id","year_id"), model ="random", data = data_frame_name) 
다음 "PLM"패키지를 사용

을 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에서 수식을 복제하고 출력을 올바르게 복제합니다! 답변으로 의견을 게시하면 "정답"으로 표시 할 수 있습니다. 한가지 더 질문 : 비록 Stata가 단지 몇 초 걸리는 동안 pglm은 30 분 정도 시간을 들여 모델을 계산합니다. 왜 그럴지 모른다고 생각 해요? – Phil

+1

당신의 데이터 세트가 꽤 크고 나는'pglm' 절차가 정말로 최적화되지 않았고 순수한 R에 있다고 믿습니다. 어떤 "숫자 크런치"패키지에서 중요한 부분은 속도 향상을 위해 C (++)로 작성되었습니다. 실제로 패키지는 최신 CRAN 릴리스가 2013 년부터 시작되었지만 "초기"단계 (버전 번호 참조)에있는 것으로 보입니다 ... Stata는 일반적으로 매우 최적화 된 절차를 가지고 있으며 미리 컴파일 된 코드를 활용할 수도 있습니다. . – Helix123

답변

1

plm의 패키지 plm은 패널로 킷트 모델이 아니므로 Stata 용은 xtlogit입니다. 예를 들어보아야합니다. 패키지 pglm 및 거기에 pglm 기능.