*Limpando a memória
clear

*Indicando tamanho da memória
set mem 100m

*Não interromper tabelas longas
set more off

*Colocar vírgulas e pontos no padrão brasileiro
set dp comma

*Abrindo o arquivo de log
log using "C:\curso\progs\Aula22-23.log", replace text

************************************
*PNAD 2007 - MINAS GERAIS
************************************
use "C:\curso\dados\pes2007MG.dta", clear

************************************
*RENDIMENTO
************************************
*Rendimento mensal em dinheiro que recebia normalmente,
*no mês de referência,
*no trabalho principal da semana de referência
sum v9532, detail

*OLHAR DICIONÁRIO DE DADOS!!!
*Recodificando rendimento
gen renpri=.
replace renpri=v9532 if v9532!=999999999999
sum renpri, d
hist renpri

*Criando logaritmo de rendimento
gen lnrenpri=ln(renpri)
hist lnrenpri

************************************
*SEXO FEMININO
************************************
gen mulher=.
replace mulher=0 if v0302==2
replace mulher=1 if v0302==4
tab mulher v0302, missing

************************************
*SEXO MASCULINO
************************************
*Categoria zero igual a 1
*e as demais iguais a zero
gen homem=!mulher
tab homem mulher, missing

*Isso é o mesmo que...
gen homem2=~mulher
tab homem2 mulher, missing

************************************
*IDADE DO MORADOR
************************************
sum v8005, d

*OLHAR DICIONÁRIO DE DADOS!!!
*Recodificando idade do morador
gen idpia=.
replace idpia=v8005 if v8005>=15 & v8005<=64
sum idpia, d

*Idade ao quadrado
gen idquad = idpia ^ 2

************************************
*GRUPOS DE IDADE
************************************
gen idpia4=.
replace idpia4=1 if idpia>=15 & idpia<=24
replace idpia4=2 if idpia>=25 & idpia<=34
replace idpia4=3 if idpia>=35 & idpia<=49
replace idpia4=4 if idpia>=50 & idpia<=64

tab idpia idpia4, missing

************************************
*ANOS DE ESTUDO
************************************
sum v4803, d

*OLHAR DICIONÁRIO DE DADOS!!!
*Recodificando anos de estudo
gen anest=.
replace anest=v4803-1 if v4803!=17
tab v4803 anest, missing

************************************
*GRUPOS DE ANOS DE ESTUDO
************************************
gen anest3=.
replace anest3=1 if anest>=0 & anest<=4
replace anest3=2 if anest>=5 & anest<=8
replace anest3=3 if anest>=9 & anest<=15

tab anest anest3, missing

************************************
*RAÇA NEGRA
************************************
gen negra=.
replace negra=0 if v0404==2
replace negra=1 if v0404==4 | v0404==8
tab v0404 negra, missing

************************************
*RAÇA BRANCA
************************************
gen branca=.
replace branca=1 if v0404==2
replace branca=0 if v0404==4 | v0404==8
tab v0404 branca, missing

************************************
*RÓTULOS DAS VARIÁVEIS
************************************
label variable renpri   "Rendimento no trabalho principal"
label variable lnrenpri "Log do rendimento no trabalho principal"
label variable mulher   "Sexo feminino"
label variable homem    "Sexo masculino"
label variable homem2   "Sexo masculino"
label variable idpia    "Idade na população em idade ativa"
label variable idpia4   "Gupos de idade"
label variable anest    "Anos de estudo"
label variable anest3   "Grupos de anos de estudo"
label variable negra    "Raça negra"
label variable branca   "Raça branca"

************************************
*RÓTULOS DAS CATEGORIAS DAS VARIÁVEIS
************************************
label define simnao 0 "Não" 1 "Sim"
label values mulher homem negra branca simnao
tab1 mulher homem negra branca
tab1 mulher homem negra branca, nolabel

************************************
*LIMPANDO O BANCO DE DADOS
************************************
*Tamanho do banco
count

*Apagando observações
keep if renpri!=. & lnrenpri!=. & ///
        mulher!=. & homem!=. & ///
        idpia!=. & anest!=. & ///
        negra!=. & branca!=.

*Tamanho do banco, após exclusão dos "missings"
count

************************************
*SALVANDO O BANCO DE DADOS
************************************
saveold "C:\curso\dados\Aula06.dta", replace

************************************
*EXEMPLOS DOS SLIDES
************************************

************************************
*REGRESSÃO MÚLTIPLA: RENDA = IDPIA + IDQUAD + ANEST + NEGRA + MULHER
************************************
reg renpri idpia idquad anest negra mulher [aweight=v4729]

predict renpre3
predict renres3, res

scatter renres3 renpre3, yline(0)

************************************
*REGRESSÃO MÚLTIPLA: LOG DA RENDA = IDPIA + IDQUAD + ANEST + NEGRA + MULHER
************************************
reg lnrenpri idpia idquad anest negra mulher [aweight=v4729]

*Visualizar o exponencial do coeficiente
reg lnrenpri idpia idquad anest negra mulher [aweight=v4729], eform(Exp. Coef.)

reg lnrenpri idpia idquad anest negra mulher [aweight=v4729]
predict lnrenpre3
predict lnrenres3, res

scatter lnrenres3 lnrenpre3, yline(0)

************************************
*INSTALAR MÓDULO "OUTREG2"
************************************
*Melhor realizar manualmente
*no subdiretório "updates" do Stata
*do "C:\curso\modulos\outreg2.ado"

cd "C:\curso\modulos"

************************************
*EXEMPLO DE OUTREG
************************************
reg lnrenpri idpia idquad [aweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO.doc", replace adjr2 e(r2)

reg lnrenpri idpia idquad anest [aweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO.doc", append adjr2 e(r2)

reg lnrenpri idpia idquad anest negra [aweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO.doc", append adjr2 e(r2)

reg lnrenpri idpia idquad anest negra mulher [aweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO.doc", append adjr2 e(r2)

reg lnrenpri idpia idquad anest negra mulher [aweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO.doc", append adjr2 e(r2) stat(beta)

************************************
*OUTROS EXEMPLOS
************************************

************************************
*PESO DA PESSOA
************************************
sum v4729, d

************************************
*ESTATÍSTICAS DESCRITIVAS
************************************
************************************
*USO DE PESOS NAS TABELAS
************************************
*Tabulação sem peso
tab mulher
tab mulher, nolabel

*Tabulação com peso populacional
tab mulher [fweight=v4729]

*Tabulação com peso populacional
*Não aconselhável
tab mulher [iweight=v4729]

*Tabulação com peso amostral
tab mulher [aweight=v4729]

*Tentativa de tabulação com peso amostral
*ERRO!!!
tab mulher [pweight=v4729]

************************************
*VARIÁVEL DEPENDENTE (renpri & lnrenpri)
************************************
*Histograma
hist renpri [fweight=v4729], frequency
graph export "C:\curso\grafs\hist_renpri.wmf", replace

hist lnrenpri [fweight=v4729], frequency
graph export "C:\curso\grafs\hist_lnrenpri.wmf", replace

*Estatísticas descritivas de variável contínua
sum renpri [fweight=v4729], d
tabstat renpri [fweight=v4729], s(mean sd)

sum lnrenpri [fweight=v4729], d
tabstat lnrenpri [fweight=v4729], s(mean sd)

************************************
*TABELAS DE FREQUÊNCIA DAS
*VARIÁVEIS INDEPENDENTES
************************************
tab1 idpia idpia4 anest anest3 mulher negra [fweight=v4729]

************************************
*CRUZAMENTOS DE VARIÁVEIS INDEPENDENTES
************************************
*Grupos de idade e sexo
tab idpia4 mulher [fweight=v4729]

*Grupos de escolaridade e sexo
tab anest3 mulher [fweight=v4729]

*Raça e sexo
tab negra mulher [fweight=v4729]

************************************
*MÉDIA DA VARIÁVEL DEPENDENTE
*POR VALORES DAS VARIÁVEIS INDEPENDENTES
************************************
*Sexo
tab mulher [fweight=v4729], sum(renpri) mean
ttest renpri, by(mulher)

*Idade
tab idpia [fweight=v4729], sum(renpri) mean

*Grupos de idade
tab idpia4 [fweight=v4729], sum(renpri) mean

*Escolaridade
tab anest [fweight=v4729], sum(renpri) mean

*Grupos de escolaridade
tab anest3 [fweight=v4729], sum(renpri) mean

*Raça
tab negra [fweight=v4729], sum(renpri) mean

************************************
*MÉDIA DA VARIÁVEL DEPENDENTE POR
*CRUZAMENTOS DE VARIÁVEIS INDEPENDENTES
************************************
*Grupos de idade e escolaridade
tab idpia4 anest3 [fweight=v4729], sum(renpri) mean noobs

*Grupos de idade e sexo
tab idpia4 mulher [fweight=v4729], sum(renpri) mean

*Raça e sexo
tab negra mulher [fweight=v4729], sum(renpri) mean

*Grupos de escolaridade e sexo
tab anest3 mulher [fweight=v4729], sum(renpri) mean

************************************
*USO DE PESOS NAS REGRESSÕES
************************************
*Observações na regressão
tab v0101

*População na regressão
tab v0101 [fweight=v4729]

*Regressão linear múltipla
reg lnrenpri mulher idpia anest negra

*Regressão linear mútlipla com peso populacional
*ERRO!!!
reg lnrenpri mulher idpia anest negra [fweight=v4729]

*Regressão linear múltipla com peso amostral
*Não calcula R-quadrado ajustado
reg lnrenpri mulher idpia anest negra [pweight=v4729]

*Regressão linear múltipla com peso amostral
*Calcula R-quadrado ajustado
reg lnrenpri mulher idpia anest negra [aweight=v4729]

************************************
*MODELO SEM CONSTANTE
************************************
*Se B0 for diferente de zero na população,
*a regressão através da origem gera
*estimadores dos parâmetros de inclinação (Bk) viesados.

*Se B0 for igual a zero na população,
*a regressão com intercepto gera
*maiores variâncias dos estimadores de inclinação.

*Menores valores são: Homem(0); Idade(15); Anos de estudo(0); Branca(0)
reg lnrenpri mulher idpia anest negra [pweight=v4729], nocons

************************************
*REGRESSÃO DE MÍNIMOS QUADRADOS ORDINÁRIOS
************************************
reg lnrenpri mulher [pweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO2.doc", replace adjr2 e(r2)

reg lnrenpri mulher idpia [pweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO2.doc", append adjr2 e(r2)

reg lnrenpri mulher idpia anest [pweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO2.doc", append adjr2 e(r2)

reg lnrenpri mulher idpia anest negra [pweight=v4729]
outreg2 using "C:\curso\tabelas\modelosMQO2.doc", append adjr2 e(r2)

reg lnrenpri mulher idpia anest negra [pweight=v4729], beta
outreg2 using "C:\curso\tabelas\modelosMQO2.doc", append adjr2 e(r2) stat(beta)

************************************
*CRIAÇÃO MANUAL DE VARIÁVEIS DICOTÔMICAS DE IDADE
************************************
gen id1524 = 0
  replace id1524 = 1 if idpia4 == 1

gen id2534 = 0
  replace id2534 = 1 if idpia4 == 2

gen id3549 = 0
  replace id3549 = 1 if idpia4 == 3

gen id5064 = 0
  replace id5064 = 1 if idpia4 == 4

************************************
*CRIAÇÃO AUTOMÁTICA DE VARIÁVEIS DICOTÔMICAS DE IDADE
************************************
tab idpia4, gen(id)

************************************
*ESTIMAÇÃO DE MODELOS DE REGRESSÃO
*15-24 ANOS COMO REFERÊNCIA
************************************
reg lnrenpri id2534 id3549 id5064 [pweight=v4729]

reg lnrenpri id2 id3 id4 [pweight=v4729]

xi: reg lnrenpri i.idpia4 [pweight=v4729]

************************************
*ESTIMAÇÃO DE MODELOS DE REGRESSÃO
*25-34 ANOS COMO REFERÊNCIA
************************************
reg lnrenpri id1524 id3549 id5064 [pweight=v4729]

reg lnrenpri id1 id3 id4 [pweight=v4729]

char idpia4[omit] 2
xi: reg lnrenpri i.idpia4 [pweight=v4729]

************************************
*MUDANDO CATEGORIA DE REFERÊNCIA
************************************
xi: reg lnrenpri i.idpia4 i.anest3 [pweight=v4729]

char anest3[omit] 3
char idpia4[omit] 4
xi: reg lnrenpri i.idpia4 i.anest3 [pweight=v4729]

************************************
*TESTE F PARA VERIFICAR POSSÍVEL
*EXCLUSÃO CONJUNTA DE VARIÁVEIS
************************************
reg lnrenpri mulher idpia anest negra [pweight=v4729]
test idpia anest

************************************
*VARIANCE INFLATION FACTOR (VIF)
************************************
*É um fator que estima o aumento da variância,
*devido à multicolinearidade na regressão de MQO.
*Colinearidade aumenta a variância dos betas, ou seja,
*diminui significância estatística (t-teste menor).
*VIF >  5 indica multicolinearidade
*VIF > 10 indica colinearidade que tende à perfeita

*Modelo com multicolinearidade
reg lnrenpri mulher idpia anest negra [pweight=v4729]
estat vif

*Sabemos que variância é o erro padrão ao quadrado, então
*VIF de 1,16 de "anest" significa que o erro padrão do
*coeficiente desta variável é 1,08 vez maior (raiz de 1,16)
*do que se esta variável não fosse correlacionada com
*outras variáveis independentes.
di sqrt(1.16)

*Exemplo com idade ao quadrado
reg lnrenpri mulher idpia idquad anest negra [pweight=v4729]
estat vif

di sqrt(37.73)

*******************
*GRÁFICOS DE VALORES PREDITOS
*******************
*Regressão
reg lnrenpri mulher idpia anest negra [pweight=v4729]

*Salvando backup das variáveis
gen mulherB = mulher
gen idpiaB = idpia
gen anestB = anest
gen negraB = negra

*Manter constante a idade pelo valor médio
drop idpia
egen idpia = mean(idpiaB)

*OU
*sum idpia
*replace idpia = 36.113

*Salvando renda predita para mulheres negras (média de idade)
replace mulher = 1
replace negra = 1

predict lnrenpremn
gen renpremn = exp(lnrenpremn)

*Salvando renda predita para mulheres brancas (média de idade)
replace mulher = 1
replace negra = 0

predict lnrenpremb
gen renpremb = exp(lnrenpremb)

*Salvando renda predita para homens negros (média de idade)
replace mulher = 0
replace negra = 1

predict lnrenprehn
gen renprehn = exp(lnrenprehn)

*Salvando renda predita para homens brancos (média de idade)
replace mulher = 0
replace negra = 0

predict lnrenprehb
gen renprehb = exp(lnrenprehb)

*Gráfico de renda predita por educação, sexo e raça (média de idade)
*Log da renda
twoway (line lnrenpremn anest) (line lnrenpremb anest) ///
       (line lnrenprehn anest) (line lnrenprehb anest)

*Renda em reais
twoway (scatter renpremn anest) (scatter renpremb anest) ///
       (scatter renprehn anest) (scatter renprehb anest)

twoway (line renpremn anest, sort) (line renpremb anest, sort) ///
       (line renprehn anest, sort) (line renprehb anest, sort)

*Retornando os valores originais das variáveis
replace mulher = mulherB
replace idpia = idpiaB
replace negra = negraB

*******************
*GRÁFICOS DE RESÍDUOS
*******************
reg lnrenpri mulher idpia anest negra [pweight=v4729]

*Salvando renda predita
predict lnrenpre
gen renpre=exp(lnrenpre)

*Salvando resíduo
predict reslnren, res

*Principal gráfico de resíduos
scatter reslnren lnrenpre, yline(0)

*Outras possibilidades para explorar os dados
scatter reslnren lnrenpri, yline(0)
scatter reslnren renpri, yline(0)
scatter reslnren renpre, yline(0)
scatter reslnren mulher, yline(0)
scatter reslnren idpia, yline(0)
scatter reslnren anest, yline(0)
scatter reslnren negra, yline(0)

************************************
*SALVANDO O LOG
************************************
log close