**************************************************************************************************************** ***************************************** AULA 03 - MONITORIA STATA ******************************************** **************************************************************************************************************** ******************************** Endogeneidade (parte 1) - o comando 'ivregress' ******************************* **************************************************************************************************************** /* Quando temos uma variável endógena no modelo, correlacionada com o erro, todas as nossas estimativas serão inconsistentes ao utilizarmos um modelo OLS simples. Uma forma de corrigir este problema é encontrando uma ou mais variáveis instrumentais e rodarmos uma regressão auxiliar para a variável endógena em cima dos instrumentos. Em seguida, utilizamos as predições deste modelo no OLS original. Uma forma mais simples e direta de fazer este procedimento no Stata é utilizando o comando 'ivregress', que nos permite especificar também os instrumentos da regressão da variável endógena. O Exercício mostrado abaixo envolve uma base de preços e características de automóveis. Construiremos alguns instrumentos específicos e veremos como utilizá-los no 'ivregress' */ // Comandos práticos antes da abertura da base clear all cap log close set dp comma * mudando o diretório cd "C:\Users\Matheus\Desktop" * abrindo o log log using "aula3.log", append * abrindo a base de dados (DEMANDA DE AUTOMÓVEIS - BLP 1995) use cars.dta, clear * Investigando a base de dados: sum des * Arrumando alguns nomes de variáveis na base: rename ma mkt rename ye year rename cla segment rename qu sales rename le length rename li fuel rename princ price_inc rename rgdp real_gdp rename we weight order mkt year segment sales length fuel price_inc real_gdp weight sort mkt year segment sales length fuel price_inc real_gdp weight /* Para este exemplo, vamos supor cada país e cada ano como sendo um mercado diferente, ignorando possíveis problemas de autocorrelação temporal. Vamos também, a título dew ilustração, trabalhar apenas com uma parte da amostra e faremos isso de duas maneiras diferentes */ * Restringindo os mercados (países e tempo): tab mkt tab year keep if mkt <=3 & year >= 80 //lembrar de verificar "missings" * Gerando a variável de share de mercado: sort year mkt by year mkt: egen vendas_mkt = sum(sales) by year mkt: gen share = sales / vendas_mkt gen lshare = log(share) * Criando dummies para Mercado: forvalues i = 1(1)3 { gen mkt_`i' = 1 if mkt ==`i' replace mkt_`i' = 0 if mkt_`i' == . } * * Regressão linear simples (OLS): reg lshare price_inc hp fuel weight mkt_1-mkt_3 if segment == 4 * Se admitirmos que há alguma estrutura de correlação dentro de cada país, podemos utilizar o comando * 'vce(cluster mkt)' para corrigir a matriz de variância-covariância e obtermos desvios robustos reg lshare price_inc hp fuel weight mkt_1-mkt_3 if segment == 4, vce(cluster mkt) estimates store reg01 * ATENÇÃO: Nas duas regressões anteriores, havia o problema de multicolineraridade por especificarmos todas * as dummies de mercado, sem separar uma baseline. Conforme visto, o Stata reconhece isso e omite uma variável * qualquer para corrigir este problema. * Procurando na internet um comando: net search st0030_3 // o comando de busca é o 'net search'. O comando 'st0030_3' é um pacote para regressões IV /* Há dois comandos para se trabalhar com variáveis instrumentais. O comando 'ivregress' serve para a maioria dos casos, enquanto que o comando 'ivreg2' serve para se trabalhar com dados com identificação de tempo (dados em painel ou séries de tempo). */ /* Obtendo Instrumentos O maior desafio, em geral, é encontrar bons instrumentos para se utilizar nas regressões. Segundo a literatura de IO para bens heterogêneos, o preço dos produtos são correlacionados com as características dos mesmos. Isto acontece porque os consumidores valorizam os bens de acordo com suas características. Sabendo disso, as firmas precificam com base nisso. Portanto, espera-se que a variável de preço seja endógena no modelo. Para o caso específico de modelos de demanda de bens não-homogêneos, Berry et al.(1995) sugerem utilizar alguns instrumentos que vieram a se consolidar na literatura de IO como instrumentos BLP. Estes instrumentos são os seguintes: */ /* Para cada produto os instrumetos BLP são: a) a própria característica do produto b) a soma das caracteríticas dos outros produtos na mesma firma c) a soma das caracteristicas dos produtos de todas firmas rivais */ * b)A soma das caracteríticas dos outros produtos na mesma firma foreach var in hp fuel weight { egen soma_ind_`var'= sum(`var'), by( frm ye mkt ) gen inst_b_`var'= soma_ind_`var' - `var' } * * Estimando um modelo com preço endógeno: ivregress 2sls lshare hp fuel weight mkt_1-mkt_3 (price_inc = inst_b_hp inst_b_fuel inst_b_weight) if segment == 4, vce(robust) estimates store reg02 /* O comando 'ivregress' aceita 3 diferentes métodos de estimação: Dois Estágios (2sls), GMM e LIML (limited-information maximum likelihood). No caso exatamente identificado (em que o número de variáveis endógenas é igual ao de exógenas), o estimador 2sls é idêntico ao estimador IV. Para modelos sobreidentificados (com mais instrumentos que o mínimo necessário), os estimadores 2sls e gmm fornecem estimativas mais eficientes. */ ivregress gmm lshare hp fuel weight mkt_1-mkt_3 (price_inc = inst_b_hp inst_b_fuel inst_b_weight ) if segment == 4, wmatrix(robust) estimates store reg03 * Teste de Endogeneidade de Durbin-Wu-Hausman (Hipótese nula é de exogeneidade) estat endogenous * O valor baixo do p-valor indica que temos de rejeitar a hipótese nula, ou seja, indica * que a variável endógena testada (price) é de fato endógena estimates table reg01 reg02 reg03, b stats(N r2 F ll) b(%7.2f) star(0.10 0.05 0.01) log close