*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\Aula26-27.log", replace text ************************************ *PNAD 2007 - MINAS GERAIS ************************************ use "C:\curso\dados\pes2007MG.dta", clear ************************************ *RENDIMENTO ************************************ gen renpri=. replace renpri=v9532 if v9532!=999999999999 *Criando logaritmo de rendimento gen lnrenpri=ln(renpri) ************************************ *SEXO FEMININO ************************************ gen mulher=. replace mulher=0 if v0302==2 replace mulher=1 if v0302==4 ************************************ *SEXO MASCULINO ************************************ gen homem=!mulher ************************************ *IDADE DO MORADOR ************************************ gen idpia=. replace idpia=v8005 if v8005>=15 & v8005<=64 ************************************ *ANOS DE ESTUDO ************************************ gen anest=. replace anest=v4803-1 if v4803!=17 ************************************ *RAÇA NEGRA ************************************ gen negra=. replace negra=0 if v0404==2 replace negra=1 if v0404==4 | v0404==8 ************************************ *RAÇA BRANCA ************************************ gen branca=~negra ************************************ *PESO DA PESSOA ************************************ sum v4729, d ************************************ *LIMPANDO O BANCO DE DADOS ************************************ keep if lnrenpri!=. & mulher!=. & idpia!=. & anest!=. & negra!=. tab mulher, missing tab idpia, missing tab anest, missing tab negra, 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 idpia "Idade na população em idade ativa" label variable anest "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 ************************************ *MUDANÇA DA UNIDADE DA VARIÁVEL DEPENDENTE ************************************ *Ao invés de analisar as mudanças em reais, *analisaremos as mudanças em dólares gen rendol = renpri / 2 *Modelo com reais reg renpri mulher idpia anest negra [aweight=v4729] reg renpri mulher idpia anest negra [pweight=v4729] *Modelo com dólares reg rendol mulher idpia anest negra [aweight=v4729] reg rendol mulher idpia anest negra [pweight=v4729] *Coeficientes, erros padrões, *intervalo de confiança e erro padrão do resíduo *são 2 vezes menores *R-quadrado é o mesmo ************************************ *MUDANÇA DA UNIDADE DA VARIÁVEL INDEPENDENTE ************************************ *Vamos analisar o impacto de 5 em 5 anos de idade gen id5 = idpia / 5 *Modelo com idpia reg renpri mulher idpia anest negra [aweight=v4729] reg renpri mulher idpia anest negra [pweight=v4729] *Modelo com id5 reg renpri mulher id5 anest negra [aweight=v4729] reg renpri mulher id5 anest negra [pweight=v4729] *Coeficiente e erro padrão de idade *são 5 vezes maiores *As demais estimativas são as mesmas ************************************ *COEFICIENTES PADRONIZADOS ************************************ *Modelo irrestrito reg renpri mulher idpia anest negra [aweight=v4729] reg renpri mulher idpia anest negra [pweight=v4729] *Modelo irrestrito com betas padronizados reg renpri mulher idpia anest negra [aweight=v4729], beta reg renpri mulher idpia anest negra [pweight=v4729], beta *Modelo - LOG DA RENDA reg lnrenpri mulher idpia anest negra [aweight=v4729] reg lnrenpri mulher idpia anest negra [pweight=v4729] reg lnrenpri mulher idpia anest negra [pweight=v4729], eform(Exp. Coef.) *Modelo com betas padronizados - LOG DA RENDA reg lnrenpri mulher idpia anest negra [aweight=v4729], beta reg lnrenpri mulher idpia anest negra [pweight=v4729], beta *Os coeficientes padronizados são também chamados *de coeficientes beta. *Se x1 aumentar em um desvio-padrão, *então o y predito será alterado em b1 desvios-padrão. *Os efeitos não estão sendo medidos em termos *das unidades originais de y ou de xj, *mas em unidades de desvios-padrão. *A dimensão das variáveis independentes *passa a ser irrelevante, colocando-as em igualdade. *Quando cada xj é padronizado, *a comparação das magnitudes dos coeficientes *(significância econômica) é mais convincente. *Ou seja, a variável com maior coeficiente *é a "mais importante". *No nosso exemplo, a significância econômica de *"mulher" e "idpia" têm magnitudes (absolutas) próximas. *A significância econômica de "anest" é a maior dentre elas. ************************************ *EXPLORANDO TRANSFORMAÇÕES DA VARIÁVEL DEPENDENTE ************************************ *O livro do Lawrence Hamilton ("Regression with Graphs") *exemplifica este tipo de gráfico (pág.16). *Lawrence Hamilton ("Regression with graphics") pág.18-19 *Y^3 q=3 *Y^2 q=2 *Y^1 q=1 *Y^0.5 q=0.5 (raiz quadrada) *log(Y) q=0 *-(Y^-0.5) q=-0.5 *-(Y^-1) q=-1 *De uma forma geral: *q>1: reduz concentração à direita *q=1: dados originais *q<1: reduz concentração à esquerda (geralmente usamos log) ************************************ *USO DE FORMAS FUNCIONAIS LOGARÍTMICAS ************************************ *Modelo irrestrito reg lnrenpri mulher idpia anest negra [pweight=v4729] *Quando x aumenta em 1, *y aumenta em 100*[exp(beta)-1], *mantendo outros fatores fixos. *Por exemplo, beta de "mulher": di 100*(exp(-0.5330765)-1) *Como impacto de "mulher" é alto, *não podemos simplesmente utilizar 100*beta: di 100*-0.5330765 *No entanto, podemos utilizar 100*beta, *quando temos pequenas mudanças percentuais. *Este é o caso de "idpia": di 100*(exp(0.0215629)-1) di 100*0.0215629 ************************************ *FORMAS FUNCIONAIS LOGARÍTMICAS & GRÁFICOS ************************************ reg renpri idpia [pweight=v4729] predict renpre1, xb scatter renpre1 idpia reg lnrenpri idpia [pweight=v4729] predict lnrenpre, xb scatter lnrenpre idpia gen renpre2=exp(lnrenpre) scatter renpre2 idpia ************************************ *MODELOS COM FUNÇÕES QUADRÁTICAS ************************************ *Criando quadrado de idade gen idquad = idpia * idpia *Nova regressão reg lnrenpri mulher idpia idquad anest negra [aweight=v4729] reg lnrenpri mulher idpia idquad anest negra [pweight=v4729] *Se "idpia" é negativo e "idquad" é positivo, *função tem formato U. *Se "idpia" é positivo e "idquad" é negativo, *função tem formato parabólico. *Vamos calcular nosso ponto crítico: *ponto crítico = x* = |B1/(2B2)| di abs(0.088968/(2*-0.0008933)) *Nosso resultado indica que idade tem impacto positivo *sobre renda até a idade de 50 anos. *Após este ponto, idade tem impacto negativo sobre renda. *Isso está de acordo com mercado de trabalho brasileiro. ************************************ *FUNÇÕES QUADRÁTICAS & GRÁFICOS ************************************ *Salvando backup das variáveis gen anest2=anest *Substituindo anos de estudo por média da população sum anest drop anest egen anest=mean(anest2) tab anest *Salvando renda predita para mulheres negras (média de anos de estudo) predict lnrenpremn2 if mulher==1 & negra==1 gen renpremn2 = exp(lnrenpremn2) *Salvando renda predita para mulheres brancas (média de anos de estudo) predict lnrenpremb2 if mulher==1 & negra==0 gen renpremb2 = exp(lnrenpremb2) *Salvando renda predita para homens negros (média de anos de estudo) predict lnrenprehn2 if mulher==0 & negra==1 gen renprehn2 = exp(lnrenprehn2) *Salvando renda predita para homens brancos (média de anos de estudo) predict lnrenprehb2 if mulher==0 & negra==0 gen renprehb2 = exp(lnrenprehb2) *Gráfico de renda predita por idade, sexo e raça (média de anos de estudo) *Log da renda twoway (scatter lnrenpremn2 idpia) (scatter lnrenpremb2 idpia) /// (scatter lnrenprehn2 idpia) (scatter lnrenprehb2 idpia) *Renda em reais twoway (scatter renpremn2 idpia) (scatter renpremb2 idpia) /// (scatter renprehn2 idpia) (scatter renprehb2 idpia) *Retornando os valores originais de anos de estudo drop anest gen anest = anest2 ************************************ *MODELOS COM TERMOS DE INTERAÇÃO ************************************ *Criando interação de idade com anos de estudo gen idest = idpia * anest *Nova regressão reg lnrenpri mulher idpia anest negra idest [aweight=v4729] reg lnrenpri mulher idpia anest negra idest [pweight=v4729] *Efeito parcial de "anest" sobre renda é: *"anest" + ("idest" * idade) *Por exemplo, para a idade de 15 anos, *o efeito percentual na renda (já que temos log) *de um ano de estudo a mais é: di 0.0449341 + (0.0016014 * 15) di ((exp(0.0449341 + (0.0016014 * 15)))-1)*100 di exp(0.0449341 + (0.0016014 * 15)) *Por exemplo, para a escolaridade de *8 anos de estudo, *o efeito percentual na renda (já que temos log) *de um ano de idade a mais é: di 0.0090526 + (0.0016014 * 8) di ((exp(0.0090526 + (0.0016014 * 8)))-1)*100 di exp(0.0090526 + (0.0016014 * 8)) ************************************ *MODELOS COM TERMOS DE INTERAÇÃO, UTILIZANDO MÉDIAS ************************************ *Interpretação de "anest" sozinho não é correta, *porque não temos idade igual a zero. *Então, vamos reparametrizar o modelo, *construindo novo termo interativo... *Novo termo para idade: sum idpia egen idmed = mean(idpia) tab idmed gen idpiamed = idpia - idmed *Novo termo para anos de estudo: sum anest egen anmed = mean(anest) tab anmed gen anestmed = anest - anmed *Novo termo interativo: gen idestmed = idpiamed * anestmed *Nova regressão reg lnrenpri mulher idpia anest negra idestmed [aweight=v4729] reg lnrenpri mulher idpia anest negra idestmed [pweight=v4729] *Efeito parcial de "anest" sobre renda é: *"anest" + ["idestmed" * (idade - idade média)] *Ou seja, "idestmed" será nulo, *quando utilizarmos idade média *Por isso, o efeito parcial de "anest" sobre renda *indica que o aumento de 1 ano de estudo *aumenta em 10,3% a renda do indivíduo, *considerando uma pessoa de idade média (idmed=36 anos) ************************************ *TERMOS DE INTERAÇÃO & GRÁFICOS ************************************ *Criando interação de idade com sexo gen idmul = idpia * mulher *Nova regressão reg lnrenpri mulher idpia idquad anest negra idmul [pweight=v4729] *Fixando anos de estudo na média gen anest3=anest drop anest sum anest3 egen anest = mean(anest3) *Salvando renda predita para mulheres negras (média de anos de estudo) predict lnrenpremn3 if mulher==1 & negra==1 gen renpremn3 = exp(lnrenpremn3) *Salvando renda predita para mulheres brancas (média de anos de estudo) predict lnrenpremb3 if mulher==1 & negra==0 gen renpremb3 = exp(lnrenpremb3) *Salvando renda predita para homens negros (média de anos de estudo) predict lnrenprehn3 if mulher==0 & negra==1 gen renprehn3 = exp(lnrenprehn3) *Salvando renda predita para homens brancos (média de anos de estudo) predict lnrenprehb3 if mulher==0 & negra==0 gen renprehb3 = exp(lnrenprehb3) *Gráfico de renda predita por idade, sexo e raça (média de anos de estudo) *Log da renda twoway (scatter lnrenpremn3 idpia) (scatter lnrenpremb3 idpia) /// (scatter lnrenprehn3 idpia) (scatter lnrenprehb3 idpia) *Renda em reais twoway (scatter renpremn3 idpia) (scatter renpremb3 idpia) /// (scatter renprehn3 idpia) (scatter renprehb3 idpia) *Retornando com anos de escolaridade drop anest gen anest=anest3 ************************************ *VARIÁVEL CENTRALIZADA NA MÉDIA ************************************ *No exemplo abaixo, temos o efeito de idade (x1) *e escolaridade (x2) sobre a renda [log(y)], *sendo que idade varia de 15 a 64 e *escolaridade varia de 0 a 15: *log(y) = B0 + B1x1 + B2x2 + u *Não faz sentido interpretar B0, *já que B1x1 nunca será igual a zero *(não temos idade igual a zero). *Podemos reparametrizar o modelo, *subtraindo a idade de cada unidade de análise *pela média de idade na amostra. *A equação abaixo ilustra o novo modelo populacional: *log(y) = B0 + B1(x1-µ1) + B2x2 + u *Neste caso, B0 será o valor estimado de log(y) *quando a idade for igual à média *e a escolaridade for igual a zero. *Regressão anterior (idade original) reg lnrenpri mulher idpia anest negra [pweight=v4729] *Nova regressão (idade centralizada na média) reg lnrenpri mulher idpiamed anest negra [pweight=v4729] ************************************ *COMPARAÇÃO DE MODELOS ANINHADOS ************************************ *F-test e R2 ajustado *permitem testar ajustes de modelos aninhados *F-test para exclusão conjunta de "idpia" e "anest" reg lnrenpri mulher idpia anest negra [pweight=v4729] test idpia anest *R2 ajustado só é possível com modelos sem "pweight" *Modelo restrito reg lnrenpri mulher negra [aweight=v4729] *Modelo irrestrito reg lnrenpri mulher idpia anest negra [aweight=v4729] *R2 AJUSTADO do modelo restrito: 0,0911 *R2 AJUSTADO do modelo irrestrito: 0,3632 ************************************ *COMPARAÇÃO DE MODELOS NÃO-ANINHADOS *COM R2 AJUSTADO ************************************ *R2 ajustado permite testar ajustes *de modelos não-aninhados *Modelo com idade reg lnrenpri mulher idpia negra [aweight=v4729] *Modelo com anos de estudo reg lnrenpri mulher anest negra [aweight=v4729] *R2 ajustado de modelo com idade: 0,1199 *R2 ajustado de modelo com anos de estudo: 0,2750 ************************************ *COMPARAÇÃO DE MODELOS COM FORMAS FUNCIONAIS *DIFERENTES NA VARIÁVEL INDEPENDENTE *COM R2 AJUSTADO ************************************ *Somente variável idade reg lnrenpri mulher idpia anest negra [aweight=v4729] *Variável idade e idade ao quadrado reg lnrenpri mulher idpia idquad anest negra [aweight=v4729] *R2 ajustado de modelo com idade: 0,3632 *R2 ajustado de modelo com idade ao quadrado: 0,3887 ************************************ *COMPARAÇÃO DE MODELOS COM FORMAS FUNCIONAIS *DIFERENTES NA VARIÁVEL DEPENDENTE ************************************ *Obtenha os valores estimados de log(yi) da regressão reg lnrenpri mulher idpia anest negra [aweight=v4729] *Salve a renda predita predict lnrenpri4, xb *Para cada observação i, crie "exp[log(yi)]" da renda predita gen renpri4=exp(lnrenpri4) *Faça a regressão de "renpri" (amostra) sobre a variável "renpri4" (predito), *sem um intercepto (regressão simples passando pela origem) reg renpri renpri4, nocons *O único coeficiente que existe na regressão acima *é a estimativa de alfa zero. *Obtenha a previsão de renda (alfa zero * valor predito de y) gen renfinal = 1.490217 * renpri4 *Obter a correlação amostral entre y estimado (renfinal) *e o verdadeiro y na amostra (renpri) corr renfinal renpri *O quadrado dessa correlação amostral *pode ser comparado ao R2 do modelo *em que "renpri" é variável dependente *R2 do modelo com "lnrenpri": 0,2520 di 0.5020^2 *R2 do modelo com "renpri": 0,1908 reg renpri mulher idpia anest negra [aweight=v4729] ************************************ *GRÁFICO DE BOLHAS ************************************ reg lnrenpri mulher anest idpia negra [aweight=v4729], beta ************************************ ************************************ *EXTRA - INTERVALOS DE CONFIANÇA ************************************ ************************************ *Exercício abaixo será realizado sem peso na regressão *Previsão de erro padrão futuro não aceita regressão com peso ************************************ *INTERVALO DE CONFIANÇA DE PREVISÕES *LEVA EM CONSIDERAÇÃO SOMENTE VARIÂNCIA DE y ************************************ *Qual o intervalo de confiança de 95% da média do log de salário *entre todos indivíduos com as seguintes características: *mulher=1 *idpia=30 *anest=8 reg lnrenpri mulher idpia anest display _b[_cons]+_b[mulher]*1+_b[idpia]*30+_b[anest]*8 *Obtendo o intervalo de confiança gen mulher0 = mulher-1 gen idpia0 = idpia-30 gen anest0 = anest-8 *Obtendo o mesmo valor estimado (beta zero), além do *intervalo de confiança de 95%, o qual é indicado *pelos valores mínimos e máximos da constante (beta zero) reg lnrenpri mulher0 idpia0 anest0 ************************************ *INTERVALO DE CONFIANÇA DE PREVISÕES (OUTRA FORMA, MESMO RESULTADO) *LEVA EM CONSIDERAÇÃO SOMENTE VARIÂNCIA DE y ************************************ *Qual o intervalo de confiança de 95% da média do log de salário *entre todos indivíduos com as seguintes características: *mulher=1 *idpia=30 *anest=8 *Criando nova observação set obs 15621 replace mulher=1 in 15621/15621 replace idpia=30 in 15621/15621 replace anest=8 in 15621/15621 *Regressão reg lnrenpri mulher idpia anest *Salvando erro padrão predict lnrenpriEP in 15621/15621, stdp tab lnrenpriEP *Salvando valor predito predict lnrenpriVP in 15621/15621, xb tab lnrenpriVP *Gerando valor mínimo do intervalo de confiança de 95% gen min = lnrenpriVP - 1.96 *lnrenpriEP in 15621/15621 *Gerando valor máximo do intervalo de confiança de 95% gen max = lnrenpriVP + 1.96 *lnrenpriEP in 15621/15621 *Erro padrão, valor predito e intervalo de confiança list lnrenpriEP min lnrenpriVP max in 15621/15621 ************************************ *INTERVALO DE CONFIANÇA DE SALÁRIOS MÉDIOS FUTUROS *LEVA EM CONSIDERAÇÃO VARIÂNCIAS DE y E DE u ************************************ *Qual o intervalo de confiança de 95% do salário *de qualquer indivíduo que especificamente *tenha essas características: *mulher=1 *idpia=30 *anest=8 *Como vimos: *Variância de y = (lnrenpriEP)^2 = (0,0090702^2) = 0,00008227 di 0.0090702^2 *Variância de u = MS Residual = (Root MSE)^2 = 0,67897^2 = 0,461000506 di 0.67897^2 reg lnrenpri mulher0 idpia0 anest0 *Ou seja, salário médio futuro deve levar em consideração *as variâncias de y e de u, o que gera: *erro padrão do erro de previsão (e0) = *raiz de [(erro padrão de y)^2 + (erro padrão de u)^2] di ((0.0090702^2) + (0.67897^2))^(1/2) *Vamos operacionalizar isto no Stata *Criando nova observação set obs 15622 replace mulher=1 in 15622/15622 replace idpia=30 in 15622/15622 replace anest=8 in 15622/15622 *Regressão reg lnrenpri mulher idpia anest *Salvando erro padrão futuro predict lnrenpriEPF in 15622/15622, stdf tab lnrenpriEPF *Salvando valor predito predict lnrenpriVPF in 15622/15622, xb tab lnrenpriVPF *Gerando valor mínimo do intervalo de confiança de 95% gen minF = lnrenpriVPF - 1.96 *lnrenpriEPF in 15622/15622 *Gerando valor máximo do intervalo de confiança de 95% gen maxF = lnrenpriVPF + 1.96 *lnrenpriEPF in 15622/15622 *Erro padrão, valor predito e intervalo de confiança list lnrenpriEPF minF lnrenpriVPF maxF in 15622/15622 *Intervalo de confiança é grande (R$91,01 a R$1.303,47) *Com base nesta regressão, não podemos definir com clareza *o salário futuro de um determinado indivíduo di exp(4.510984) di exp(7.172785) ************************************ *SALVANDO O LOG ************************************ log close