Roteiro das funções básicas para Stata 10 /* Colar essa rotina em um novo Do-File Editor */ /* Será usado como exemplo uma base da pnad já em formato dta */ /*__________________________________________________________________ deleta todos os comandos, variáveis e rotina previamente escritas: */ clear all /*__________________________________________________________________ para não parar a tela de resultados toda hora e rodar todas as linhas direto: */ set more 1 /*___________________________________________________________________ aumentar a capacidade de moméria (algumas rotinas só rodam com mais de 500mb disponíveis) */ set mem 500m /*___________________________________________________________________ vou usar a base da pnad (pnad06.dta) como exemplo, já no formato Stata e salva no desktop (por exemplo). Em seguida será “limpo” o caminho para trabalhar nela: */ use "C:\Users\Marcelo\Desktop\pnad06.dta", clear /*___________________________________________________________________ vou criar o log das saídas também no desktop com o nome de “básico” */ cap log close log using "C:\Users\Marcelo\Desktop\basico", text replace /*___________________________________________________________________ renomeando as séries*/ rename v0302 sexo rename v8005 idade rename v0404 cor rename v9532 renda rename v9058 horas ren v9087 sind Criado por Marcelo Chaine, PPGE-UFRGS /*___________________________________________________________________ sumarizando as séries*/ sum /*___________________________________________________________________ sumarizando uma única série e dividindo-a em percentis*/ sum renda, det /*___________________________________________________________________ tabulando as séries */ tab sexo tab idade tab cor /*___________________________________________________________________ tabulando as séries cruzadas */ tab sexo educa /*___________________________________________________________________ ordena a variável ap[resentando medidas descritivas da outra */ tab educa, sum(renda) /*___________________________________________________________________ eliminando da série de valores aberrantes */ drop if renda>999999999 drop if horas==99 /*___________________________________________________________________ alterando valor assumido pelas variáveis */ replace sexo=1 if sexo==2 replace sexo=0 if sexo==4 replace sind=0 if sind==3 /*___________________________________________________________________ gerando uma nova variável */ gen id2=idade*idade gen lw=ln(renda/(4*horas)) /* exemplo, a variável branco será todas as obs cujo valor observado em cor é 2*/ gen branco=cor==2 /*___________________________________________________________________ eliminado uma variável */ drop uf Criado por Marcelo Chaine, PPGE-UFRGS /*___________________________________________________________________ ordenando (crescente) a série */ so idade /*____________________________________________________________________ criar a variável mrenda que contém o valor médio da renda para cada idade, ou seja, estou criando uma variável, que, para cada idade declarada, o valor assumido por ela será uma média da renda de todas as pessoas que disseram ter aquele idade */ egen mrenda=mean(renda), by(idade) /*____________________________________________________________________ criar um gráfico muito bacana da renda em função da idade que é fácil de ser editado. O comando , c(l) é para que, apesar do gráfico ser do tipo pontos de disperção (scatter), ele simplesmente acrescenta uma linha que une os pontos. Pode demorar alguns segundos para aparecer a nova janelinha com o gráfico */ scatter mrenda idade, c(l) /********************************************************************* REGRESSÕES *********************************************************************/ /*___________________________________________________________________ OLS simples */ reg renda educa /*___________________________________________________________________ OLS robusto, com correção de white*/ reg renda educa idade id2,rob /*___________________________________________________________________ OLS robusto, com correção de Newey. Mas antes, você deve ajustar os lags com um "tsset renda" */ */ newey renda educa, lag(1) */ /*___________________________________________________________________ OLS simples, mas sem cabeçalho na saída. Esse comando você pode usar a qualquer momento, mas sempre ao final de ter escrito a a regressão, por exemplo: reg bla bla, rob noha (sem vígula depois do rob) */ reg renda educa, rob nohea Criado por Marcelo Chaine, PPGE-UFRGS /*___________________________________________________________________ salvando os resultados previstos obtidos somente na ÚLTIMA regressão qualquer rodada, com o nome de rendahat */ predict rendahat /*___________________________________________________________________ 2SLS estimando a renda, mas instrumentalizando a variável educa com idade (inventei, sei que náo faz sentido)*/ ivreg renda id2 sexo (educa=idade), rob /*___________________________________________________________________ fazendo o mesmo só que agora em dois passos */ reg educa idade sexo id2 predict educahat reg renda educahat id2 sexo */ Painel */ /*___________________________________________________________________ para cada regressão, rodar novaamnete desde este início, pois algumas variáveis serão perdidas (multicolinearidade) a cada regressão. Então, fazer uma de cada vez, não rodar esse do-file de uma vez só. (usando outro banco de dados em ST e já aberto um outro Stata)*/ clear all set more 1 set mem 500m use "C:\Users\Marcelo\Desktop\dados.dta", clear /*___________________________________________________________________ vou criar outro log das saídas também desktop com o nome de basico2 */ cap log close log using "C:\Users\Marcelo\Desktop\basico2", text replace /*___________________________________________________________________ criando dummies temporais, uma para cada ano */ tab ano, ge(td) /*___________________________________________________________________ estimando POLS, o asterisco após td significa que eu quero todas as variáveis cujo nome começa com td */ reg lw exp td*, rob /*___________________________________________________________________ estimando por efeitos fixos */ xtreg lw exp td*, fe est store fixed Criado por Marcelo Chaine, PPGE-UFRGS /*___________________________________________________________________ estimando por efeitos aleatórios */ xtreg lw exp td*, re est store random /*___________________________________________________________________ teste de hausman */ hausman fixed random /*___________________________________________________________________ calculando variáveis defasadas */ so pis qui by qui by qui by qui by ano pis: pis: pis: pis: gen gen gen gen lw1=lw[_n-1] dlw=lw-lw[_n-1] dlw1=dlw[_n-1] dexp=exp-exp[_n-1] /*___________________________________________________________________ estimando por efeitos aleatórios com variável dependente defasada */ xtreg lw exp lw1 td*, fe /*___________________________________________________________________ estimando por primeiras diferenças com variável dependente defasada */ reg dlw dexp dlw1 td*, rob /*___________________________________________________________________ GMM -Arellano Bond */ xtabond lw exp /*_________________________________________________________________ GMM - CUIDADO COM O BANCO DE DADOS */ ivreg lw exp (ano=pis), rob ivreg2 lw exp (ano=pis), gmm rob /* é possível fazer combinações de comando, e se digitar help comando qualquer na janela de comando, ele dera toda a sintaxe do comando a ser utilizado */ Criado por Marcelo Chaine, PPGE-UFRGS