HETEROCEDASTICIDADE erros robusta padrão com o pacote PLM

votos
12

Eu estou tentando aprender R depois de usar Stata e devo dizer que eu adoro isso. Mas agora eu estou tendo alguns problemas. Estou prestes a fazer algumas regressões múltiplas com dados em painel, por isso estou usando o plmpacote.

Agora eu quero ter os mesmos resultados com plmem R como quando eu uso a lmfunção e Stata quando eu executar uma heterocedasticidade robusto e entidade fixa regressão.

Vamos dizer que eu tenho um conjunto de dados de painel com as variáveis Y, ENTITY, TIME, V1.

Eu obter os mesmos erros padrão em R com este código

lm.model<-lm(Y ~ V1 + factor(ENTITY), data=data)
coeftest(lm.model, vcov.=vcovHC(lm.model, type=HC1))

como quando eu executar esta regressão no Stata

xi: reg Y V1 i.ENTITY, robust

Mas quando eu executar esta regressão com o plmpacote, recebo outros erros padrão

plm.model<-plm(Y ~ V1 , index=C(ENTITY,YEAR), model=within, effect=individual, data=data)
coeftest(plm.model, vcov.=vcovHC(plm.model, type=HC1))
  • Eu perdi definir algumas opções?
  • Será que o plmmodelo usar algum outro tipo de estimativa e de que forma?
  • Eu de alguma forma pode ter os mesmos erros padrão com plmcomo em Stata com, robust
Publicado 13/12/2010 em 20:06
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

É possível que o seu código Stata é diferente do que você está fazendo com PLM?

plm'S 'dentro' opção com efeitos 'individuais' significa um modelo de formulário:

yit = a + Xit*B + eit + ci

O que plmfaz é para humilhar os coeficientes para que ci cai a partir da equação.

yit_bar = Xit_bar*B + eit_bar

De tal modo que o sufixo "barra" significa que cada variável teve a sua média subtraído. A média é calculada ao longo do tempo e por isso o efeito é para o indivíduo. Você também pode ter um efeito de tempo fixo que seria comum a todos os indivíduos, caso em que o efeito seria através do tempo, bem (que é irrelevante neste caso, embora).

Não tenho a certeza que o comando "xi" faz em STATA, mas eu acho que expande uma interação certo? Em seguida, parece-me que você está tentando usar uma variável dummy por entidade como foi destacado por @richardh.

Para seus códigos Stata e PLM para combinar você deve estar usando o mesmo modelo.

Você tem duas opções: (1) você xtset seus dados em stata e use a opção xtreg com o modificador fe ou (2) que você usa PLM com a opção de pooling e um manequim por entidade.

Combinando Stata para R:

xtset entity year
xtreg y v1, fe robust 

Correspondência de PLM para Stata:

plm(Y ~ V1 + as.factor(ENTITY) , index=C("ENTITY","YEAR"), model="pooling", effect="individual", data=data)

Em seguida, usar vcovHCcom um dos modificadores. Certifique-se de verificar este papel que tem uma boa revisão de todos os mecanismos subjacentes às opções "HC" ea forma como eles afetam a matriz de variância covariância.

Espero que isto ajude.

Respondeu 11/12/2012 em 13:29
fonte usuário

votos
4

Por padrão, o plmpacote não usa a exata mesma correção pequena amostra para dados em painel como Stata. No entanto, na versão 1.5 do plm(a CRAN) você tem uma opção que vai imitar o que Stata está fazendo.

plm.model<-plm(Y ~ V1 , index=C("ENTITY","YEAR"), model="within", 
    effect="individual", data=data)
coeftest(plm.model, vcov.=function(x) vcovHC(x, type="sss"))

Isso deve produzir o mesmo agrupados por grupos erros-padrão como no Stata (mas como mencionado nos comentários, sem um exemplo reproduzível e quais os resultados que você espera é mais difícil responder à pergunta).

Para mais discussão sobre este e alguns pontos de referência de R e Stata SEs robustas ver Fama-MacBeth e Cluster-Robust (por Empresa e Time) erros padrão em R .

Veja também:

Respondeu 14/08/2014 em 11:54
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more