Espero que alguém possa me ajudar, pois estou preso a esse problema há um bom tempo.
Tenho um painel de empresas S & P500 de 2010 a 2014 e desejo executar uma regressão incluindo efeitos fixos da indústria e do ano.
Sou iniciante em análise de dados de painel e também em Stata, e não consigo encontrar a resposta em lugar nenhum. Estou tão confuso, pois não tenho certeza se os efeitos fixos da indústria e do ano são equivalentes aos efeitos fixos da seção transversal e do período.
Comentários
- Há ‘ sa bom artigo em SJ sobre efeitos fixos de alta dimensão, incluindo uma revisão de outros comandos.
Resposta
Digamos que você tenha alguma variável de categoria $ c_i $ (por exemplo, c pode ser a empresa do setor em que $ i $ está). Um ponto matemático importante a se manter em mente é que executar uma regressão de efeitos fixos com efeitos fixos para $ c $ é equivalente a executar uma regressão regular com variáveis indicadoras para cada valor possível de $ c $.
Uma estratégia básica pode ser:
- usar
xtset industryvar
no Stata para indicar que você deseja efeitos fixos para cada valor único de industryvar. - Gere variáveis fictícias para cada ano.
- Ligue para
xtreg
com a opçãofe
para indicar efeitos fixos, incluindo as variáveis fictícias para o ano como variáveis do lado direito.
Mais ex claramente, você pode fazer algo como:
xtset industry xtreg y x1 x2 i.year, fe
Isso pressupõe que year
é uma variável que contém o ano, industry
é uma variável que mantém a indústria etc …
Comentários
- Caro Matthew, obrigado muito por sua resposta útil. Tentei conforme você aconselhou no Stata e estou feliz com o resultado que obtive. Você se importaria se eu verificar mais uma vez – tenho 418 empresas do índice S & P 500, ao longo de 5 anos de 2020 a 2014, e baixei os códigos SIC de cada empresa para controle dos efeitos da indústria. Assim fiz: xtset sic; xtreg y x1 x2 x3 … i.ano, fe Peço desculpas antecipadamente se minha pergunta parece boba para você, mas eu sou um iniciante absoluto e não tenho ninguém na minha Uni que possa me ajudar com o Painel. Atenciosamente, Milica
- sim, ‘ é como você faria isso. Outro pensamento aleatório, você pode usar códigos SIC de 4 dígitos ou você também pode tentar códigos SIC de 3 dígitos (por exemplo, gerar uma nova variável SIC3 pegando o código de 4 dígitos, dividindo por 10 e eliminando o restante com a função floor ()
gen sic3 = floor(sic4/10)
). - Obrigado por sua resposta gentil e útil. Atenciosamente, Milica
Resposta
Neste contexto, uma regressão de efeito fixo (ou dentro do estimador) é um método para modelagem com painel ou dados longitudinais. Este estimador difere a média das variáveis da unidade de observação de cada variável:
Para indivíduos $ i \ em 1 \ pontos N $, observados nos períodos $ 1 \ pontos T $ e covariáveis $ X_k $ e a variável dependente $ Y $, o estimador de efeito fixo realiza a seguinte transformação:
$ \ breve {Y} _ {it} = Y_ {it } – \ bar {Y} _i $ e
$ \ breve {X} _ {kit} = X_ {kit} – \ bar {X} _ {ki} $ para $ k = 1 \ dots K $
A regressão é executada nas variáveis transformadas. Em stata, isso é implementado usando o comando xtreg
com o comando fe
opção.
Este comando provavelmente não funcionará na sua situação, uma vez que foi projetado para diferenciar as médias de cada unidade observacional. É provável que você tenha várias empresas que operam em um determinado setor e você deseja diferenciar a média do setor. Este é um caso simples de um modelo linear hierárquico.
Neste situação, você deseja usar o operador i.
no Stata:
reg y i.industry i.year
Você também pode usar o areg
comando para obter resultados idênticos:
areg y i.year, absorb(industry)
O comando areg
pode ser útil quando o número de níveis da variável absorvida (o número de setores neste exemplo) é alto.
Se for verdade que existem várias empresas no mesmo setor, como eu suspeito que seja o caso, então, é uma prática comum, que é de bom senso e assintoticamente suportada, agrupar seus erros padrão no nível da indústria. Em stata, isso normalmente é feito com a opção vce(cluster varname)
.Então, por exemplo, seu regress
comando se tornaria
reg y i.industry i.year, vce(cluster industry)
Em uma observação semelhante, um desenvolvimento bastante recente foram feitas na construção de erros padrão robustos de cluster bidirecional e multifuncional (consulte, por exemplo, o artigo de 2011 de Cameron, Gelbach e Miller no Journal of Business and Economic Statistics ). preocupado com choques que afetam todo o conjunto de ações em um determinado período de tempo, isso pode valer a pena implementar. Doug Miller escreveu um arquivo .ado chamado cgm.ado que implementa um método de agrupamento multiway.
Comentários
- Eu também sugeriria agrupar os erros se essa abordagem for seguida.
- Isso ‘ é verdadeiro. Pensei em adicionar esta sugestão, mas me contive porque talvez estivesse fora do escopo. ‘ adicionarei.
- Eu ‘ estou lutando para ver como o xtreg, fe é totalmente impróprio desde
reg y x i.industry i.year, vce(cluster industry)
irá gerar estimativas idênticas para x comoxtset industry
seguido porxtreg y x i.year, vce(robust)
. Incluir manequins ou humilhar com base no id é exatamente a mesma coisa de uma perspectiva matemática e álgebra linear. Na verdade, para um grande número de variáveis fictícias, o xtreg será computado mais rápido porque 10.000 efeitos fixos + 2 variáveis de interesse envolveriam a resolução de um sistema de 10002 variáveis, enquanto seria apenas um sistema de 2 variáveis nos dados transformados. - @MatthewGunn Eu concordo com você no caso de a indústria ser uma unidade observacional observada ao longo do tempo. No entanto, quando há várias unidades observacionais (empresas) por setor, a discussão típica de FE e
xtreg .., fe
devem ser ajustados. Executarxtset
em tal caso resulta em um erro .: ” valores de tempo repetidos no painel. ” - você pode ter várias empresas por setor. Isso ‘ está bem, basta não ‘ definir o tsset também.