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
Download

Roteiro das funções básicas para Stata 10