Já pensou em fazer uma Regressão na mão?

Econometrics ChallengeJá pensou em gerar todos os principais resultados de uma regressão sem usar o comando regress? Apliquei este desafio na última semana a meus pupilos na monitoria de Econometria I (graduação FEA-USP). Monitor malvado, hein? Nem tanto.. Já vínhamos trabalhando bastante nas aulas e os códigos já não eram novidade.

Não queria chamar a atividade de “prova” pois os alunos já tem muitas. Também não queria chamar de “atividade avaliativa” pois soaria pedagógico demais. Ficou como Econometrics Challenge — Mission 1: Regression by hand. Eles teriam 69 minutos para gerar cada saída do comando regress (beta chapéu, erro-padrão, t, p-valor, ANOVA, R², F…), tudo usando comandos de matriz e somatório.

Aqui estão o enunciado e a base de dados. Se você nunca fez, sinta-se desafiado!

Reproduzo abaixo uma possível solução (aqui o do-file e o log-file), usando um modelo mais geral. O código foi construído em Stata, mas imagino que a lógica é muito semelhante no R e Matlab.

Tentei fazer o código de modo que apenas os comandos iniciais (passos 1 e 2) são específicos do modelo usado, os passos seguintes são comuns a toda regressão.

use C:\FEA\adrit\EconometricsChallenge\Mission1.dta

**************************************************************
*** PASSO 1: Declarando o número de variáveis ****************
**************************************************************

matrix n_variaveis=(6)

**************************************************************
*** PASSO 2: Definindo Y, X e Ybarra *************************
**************************************************************

* Definindo o vetor Y
mkmat log_salario, matrix(y)

* Definindo a matriz X
gen um = 1
mkmat anosdeestudo exper idade sexo branco casado um, matrix(x)

* Gerando Ybarra (será útil para calcular R2 logo mais)
egen Ybarra= mean(log_salario)

**************************************************************
*** PASSO 3: Encontrando o número de observações *************
**************************************************************

egen n_obs= total(um)
mkmat n_obs, matrix(n_obs)

**************************************************************
*** PASSO 4: Calculando os betas chapéus *********************
**************************************************************

* Definindo a matriz X'X
matrix xlinhax=x'*x

* Definindo a inversa da matriz X'X
matrix inversaxlinhax=syminv(xlinhax)

* Definindo a matriz X'Y
matrix xlinhay=x'*y

* Definindo o vetor bchapeu
matrix bchapeu=inversaxlinhax*xlinhay

* Listando bchapeu
mat list bchapeu

**************************************************************
*** PASSO 5: Calculando os erros-padrão **********************
**************************************************************

* Definindo o vetor de resíduos
matrix res=y-x*bchapeu

* Definindo o estimador de sigma quadrado
matrix sigma2chapeu=(res'*res)/(n_obs[1,1]-n_variaveis[1,1]-1)

* Listando sigma chapeu quadrado
matrix list sigma2chapeu

* Definindo a matriz de variância-covariância estimada
matrix var_cov=(inversaxlinhax)*sigma2chapeu

* Listando a matriz de variância-covariância estimada 
matrix list var_cov

* Definindo o vetor que contém as variâncias estimadas 
matrix var_betachapeu=vecdiag(var_cov)

* Listando o vetor que contém as variâncias estimadas 
mat list var_betachapeu

* Definindo o vetor que contém os erros-padrão

scalar s=n_variaveis[1,1]+1
local s=n_variaveis[1,1]+1
matrix ep_betachapeu = J(1,s,0)

forvalues i = 1/1 {
forvalues j = 1/`s' {
matrix ep_betachapeu[`i',`j']= sqrt(var_betachapeu[`i',`j'])
}
}

* Listando o vetor que contém os erros-padrão
mat list ep_betachapeu

**************************************************************
*** PASSO 6: Calculando as estatísticas t ********************
**************************************************************

* Listando bchapeu
mat list bchapeu

* Listando o vetor que contém os erros-padrão dos betas chapeus
mat list ep_betachapeu

* Veja, portanto, que bchapeu é vetor coluna e ep_betachapeu é vetor linha

* Definindo o vetor que contém as estatísticas t
matrix t_est = J(1,s,0)

forvalues i = 1/1 {
forvalues j = 1/`s' {
matrix t_est[`i',`j']= bchapeu[`j',`i'] / ep_betachapeu[`i',`j']
}
}

mat list t_est

**************************************************************
*** PASSO 7: Calculando os p-valores *************************
**************************************************************

* Definindo o vetor que contém as estatísticas t absolutas
matrix t_est_a = J(1,s,0)

forvalues i = 1/1 {
forvalues j = 1/`s' {
matrix t_est_a[`i',`j']= abs(t_est[`i',`j'])
}
}

mat list t_est_a

matrix p_value = J(1,s,0)

forvalues i = 1/1 {
forvalues j = 1/`s' {
matrix p_value[`i',`j']= 2*ttail(n_obs[1,1]-n_variaveis[1,1]-1, t_est_a[`i',`j'])
}
}

mat list p_value

**************************************************************
*** PASSO 8: Calculando a parte inferior do IC ***************
**************************************************************

matrix ic_inf = J(1,s,0)

forvalues i = 1/1 {
forvalues j = 1/`s' {
matrix ic_inf[`i',`j']= bchapeu[`j',`i'] - invttail(n_obs[1,1]-n_variaveis[1,1]-1,0.025)*ep_betachapeu[`i',`j']
}
}

mat list ic_inf

**************************************************************
*** PASSO 9: Calculando a parte superior do IC ***************
**************************************************************

matrix ic_sup = J(1,s,0)

forvalues i = 1/1 {
forvalues j = 1/`s' {
matrix ic_sup[`i',`j']= bchapeu[`j',`i'] + invttail(n_obs[1,1]-n_variaveis[1,1]-1,0.025)*ep_betachapeu[`i',`j']
}
}

mat list ic_sup

**************************************************************
*** PASSO 10: SQR ********************************************
**************************************************************

matrix y_chapeu = x*bchapeu
matrix list y_chapeu
matrix res = y-y_chapeu
matrix list res

** Sabemos que SQR=res'*res **

matrix SQR = res'*res
matrix list SQR

**************************************************************
*** PASSO 11: SQT ********************************************
**************************************************************

** Sabemos que SQT=y'y - n*(Ybarra)^2 **

matrix ylinhay = y'*y
matrix list ylinhay
mkmat Ybarra, matrix(Ybarraexp)
matrix Ybarra=( Ybarraexp[1,1])
matrix nYbarraQuad = n_obs[1,1]*Ybarra*Ybarra
matrix list nYbarraQuad
matrix SQT= ylinhay - nYbarraQuad
matrix list SQT

**************************************************************
*** PASSO 12: SQE ********************************************
**************************************************************

matrix SQE = SQT - SQR
matrix list SQE

**************************************************************
*** PASSO 13: Graus de liberdade *****************************
**************************************************************

** gl do modelo = k
matrix glmodelo = n_variaveis
matrix list glmodelo

** gl do residuo = n-k-1
matrix glresiduo = n_obs[1,1] - n_variaveis - 1
matrix list glresiduo

** gl total = n-1
matrix gltotal = n_obs[1,1] - 1
matrix list gltotal

**************************************************************
*** PASSO 14: MS *********************************************
**************************************************************

matrix MSmodelo = SQE[1,1]/glmodelo[1,1]
matrix list MSmodelo

matrix MSresiduo = SQR[1,1]/glresiduo[1,1]
matrix list MSresiduo

matrix MStotal = SQT[1,1]/gltotal[1,1]
matrix list MStotal

**************************************************************
*** PASSO 15: R2 *********************************************
**************************************************************

matrix R2 = SQE[1,1]/SQT[1,1]
matrix list R2

**************************************************************
*** PASSO 16: R2 ajustado ************************************
**************************************************************

matrix R2ajust = 1 - (1 - R2[1,1])*(n_obs[1,1] - 1)/(n_obs[1,1] - n_variaveis[1,1] - 1)
matrix list R2ajust

**************************************************************
*** PASSO 17: Root MSE ***************************************
**************************************************************

matrix RootMSE = sqrt(SQR[1,1]/(n_obs[1,1] - n_variaveis[1,1] - 1))
matrix list RootMSE

**************************************************************
*** PASSO 18: Teste F ****************************************
**************************************************************

* Estatística F *

matrix Fnumerador = (R2[1,1])/n_variaveis[1,1]
matrix list Fnumerador

matrix Fdenominador = (1 - R2[1,1])/(n_obs[1,1] - n_variaveis[1,1] - 1)
matrix list Fdenominador

matrix F= Fnumerador[1,1]/Fdenominador[1,1]
matrix list F

* P-valor *
display Ftail(n_variaveis[1,1],n_obs[1,1] - n_variaveis[1,1] - 1,F[1,1])

* Econometrics Challenge completed :)
**************************************************************

Divertido, né?

Agora podemos confirmar os resultados usando regress:

regress Stata

Econometria | 3 Comentários

E o Nobel de Economia 2015 vai para…

Angus Deaton Nobel

Angus Deaton, por sua análise em consumo, pobreza e bem-estar. Grande vitória também de Economia da Saúde! Deaton, convém lembrar, vinha em primeiro no ranking de Health Economics do RePEc.

O resultado saiu há pouco, por streaming, no site da premiação. Por ora, vale a pena dar uma olhada na sua página pessoal.

Updates:

“Working with the World Bank, Deaton has played a huge role in expanding data in developing countries. When you read that world poverty has fallen below 10% for the first time ever and you want to know how we know— the answer is Deaton’s work on household surveys, data collection and welfare measurement”. — Alex Tabarrok.

“I took my first econometrics course with Deaton. Learned more there than in all others combined”. — Dani Rodrik.

“A brilliant selection. ‘Understanding what economic progress really means’ I would describe as his core contribution, and analyzing development from the starting point of consumption rather than income is part of his vision.  That includes looking at calories, life expectancy, health, and education as part of living standards in a fundamental way.” — Tyler Cowen.

Nobel | 3 Comentários

11 artigos sobre o Governo Dilma

Fazia tempo que procurava algo assim. Acabo de conhecer a coletânea Sob a Luz do Sol (pdf). Pelo que pude notar lendo os primeiros capítulos, a coletânea visa discutir a conjuntura recente e trazer propostas. Entre os autores estão: Edmar Bacha, Ilan, Joaquim Levy, Marcos Lisboa, Naércio, Pastore e Samuel Pessoa.

“A luz do sol é o melhor desinfetante, dizia o juiz da Suprema Corte norte-americana Louis Brandeis (1856-1941). Mostrar de forma transparente o custo de diferentes políticas é essencial para o constante aperfeiçoamento na gestão das políticas públicas. Ter claras as diferentes opções de política pública tem um papel fundamental na sua formulação. Este trabalho tem como objetivo contribuir propondo uma agenda de política econômica para os próximos anos no Brasil.”

Governo, Macroeconomia | Comente!

Doutorado na FEA Ribeirão

FEA-RPEm ótima hora, abriu doutorado em Economia na FEA-RP. As primeiras informações estão no Diário oficial:

“A Comissão Coordenadora do Programa de Pós Graduação em Economia – Área: Economia Aplicada da FEA-RP/USP é responsável pela realização do processo seletivo ora determinado por este edital. O curso de Doutorado em Economia da FEA-RP/USP é um curso de pós-graduação stricto sensu, gratuito, com aulas no período diurno e vespertino (de segunda-feira a sexta-feira), com dedicação integral. As linhas de pesquisa do Programa são: a. Microeconomia Aplicada e b. Macroeconomia e Desenvolvimento Econômico.”

Aqui tem mais. A primeira turma começa já no 2º semestre de 2015.

Fica a dica para quem está finalizando o mestrado. Fiz graduação lá e posso confirmar que é uma excelente faculdade — tanto pelos professores e infraestrutura, quanto pelos alunos, que tem tido ótimas oportunidades internacionais.

Academia | 2 Comentários

ANPEC: Referências de Inglês

A prova de inglês tem peso zero na classificação geral. No entanto, em vários centros, os candidatos que obtém uma nota mínima (definida pelo centro) estão dispensados da prova de proficiência em língua estrangeira.

Em geral, a prova traz dois artigos da The Economist com perguntas de compreensão de texto. Nos últimos seis anos a banca tem escolhido textos de assuntos gerais, de fora da seção de Economia da revista, dos meses de fev/mar/abril. As perguntas costumam seguir a ordem do texto: primeira pergunta sobre o título, segunda sobre o primeiro parágrafo, e assim por diante.

Nos últimos anos, a banca tem tido também o estranho hábito de colocar apenas um item Verdadeiro por questão. Isto ocorreu nos Exames de 2010 a 2015 (exceto 2013) e todo ano há sempre a expectativa que a banca possa fugir desse padrão.

ANPEC | 3 Comentários

ANPEC: Referências de Economia Brasileira

Existe uma considerável heterogeneidade entre os candidatos que fazem a prova de Economia Brasileira. Uns fazem tanto a parte objetiva quanto a dissertativa e, portanto, precisam ter um excelente desempenho. Outros fazem só a parte objetiva. Há ainda um terceiro grupo que não está nem aí para essa prova, já que os centros que ele quer dá peso nulo para Brasileira.

Com base nestes 3 perfis de candidatos, aí vão as referências:

Candidato 01: “Quero mais folha!”

O Candidato 01 estudou muito e quer escrever tudo o que sabe na prova. Merece uma lista caprichada.

O livro “A Ordem do Progresso” do M.P. Abreu [edição atualizada] é a referência principal. Os livros do Giambiagi e do Gremaud são muito bons para o período pós-40 e são leituras mais tranquilas e com gráficos.

1ª República (1889-1930): Texto do Gustavo Franco (pdf), Capítulos 2 e 3 do Abreu e 30 a 36 do Furtado.
Era Getúlio (1930-1945): Capítulo 4 do Abreu e Seções 14.1 a 14.5 do Gremaud.
Pós-guerra (1946-1955): Capítulos 1 do Giambiagi e 5 a 7 do Abreu.
JK e Jan-Jan (1956-1963): Capítulos 2 do Giambiagi, 8 e 9 do Abreu, Seções 14.6 e 15.1 do Gremaud.
Crise ao “Milagre” (1964-1973): Capítulos 3 do Giambiagi, Texto do Fábio Earp (pdf), 10 e 11 do Abreu e Seções 15.2 a 15.4 do Gremaud.
Crescimento forçado à Crise da Dívida (1974-1984): Capítulos 4 do Giambiagi, 12 e 13 do Abreu e 16 do Gremaud.
Sarney (1985-1989): Capítulos 5 do Giambiagi, 14 do Abreu e Seção 17.1 do Gremaud.
Collor e Itamar (1990-1994): Capítulos 6 do Giambiagi, 15 do Abreu e Seção 17.2 do Gremaud.
FHC (1995-2002): Capítulos 16 do Abreu, 7 do Giambiagi e Seções 18.1 e 18.2 do Gremaud.
Lula (2003-2010): Capítulos 17 do Abreu, 8 do Giambiagi e Seção 18.3 do Gremaud.
Dilma (2011-?): Coletânea Sob a luz do Sol.

Referências adicionais (contidas no edital): Suzigan (1889-1945), Tavares (substituição de importações), Versiani, Baer e Bonelli (industrialização), Fonseca (Era Vargas), Cano (1930-1995), Tavares (desajuste global), Castro (marcha forçada), Carneiro (final do século XX), Belluzzo (desenvolvimento), Lafer, Kon e Cardoso (planos econômicos), Simonsen (diagnóstico de inflação), Filgueiras (Plano Real), FHC (globalização) e Paes de Barros (desigualdade e pobreza).

Exercícios resolvidos do Exame: livro de Economia Brasileira da Campus.

Candidato 02: “Acabei a parte objetiva, posso sair?”

O candidato 02 fará apenas a parte objetiva da prova. Provavelmente, ele está focado em centros que dão peso baixo para a nota de Economia Brasileira. Por isso, em geral, ele estuda um bom resumo (pdf) do Ordem do Progresso e uns capítulos selecionados do Giambiagi.

O que focar: Planos Trienal, Metas, PAEG e II PND e Planos de Estabilização (Cruzado, Bresser, Collor e Real).

Não esquecer de: memorizar as principais Instruções da Sumoc (70, 99, 105, 106, 108, 113 e 204) e as datas de criação de estatais — coisas que a banca adora perguntar.

Candidato 03: “Posso estudar matemática enquanto isso?”

O candidato 03 comparece à prova de Brasileira só por obrigação. Ele vai lá, preenche um item da prova e já quer estudar matemática. Não faça isso, 03. Em último caso, tome este resumão (pdf), e leia-o antes de fazer a prova.

Mas tome cuidado, 03, se você por algum motivo se importar com a classificação geral, observe que Economia Brasileira tem peso igual à Matemática. Suponha que o candidato 02 está concorrendo com você, e vocês tenham desempenho igual nas demais disciplinas, à exceção que ele tira 5 e você tira zero em Brasileira. Sua classificação pode ser 40 (ou +) posições abaixo da dele.

Mudança de peso na USP: Recentemente, a FEA-SP decidiu que, a partir de 2015, dará peso zero para Economia Brasileira — assim como FGVs e PUC-Rio já faziam.

ANPEC | 1 Comentário

ANPEC: Referências de Matemática

A banca baseia-se no conteúdo de pelo menos 7 disciplinas para fazer a prova de Matemática. É muito coisa para ver e rever em tão pouco tempo. Por isso, nos assuntos que você já tiver alguma familiaridade, a dica é rever rapidamente a teoria, fazer um breve resumo e focar nos exercícios.

Tentei detalhar abaixo todos os tópicos que caem no Exame e suas respectivas referências. Reforço que é muito importante fazer os exercícios dos anos anteriores.

Referências por tema:

Conjuntos: Capítulo 1 do Cysne ou Capítulo 1 do Elon ou Seção 2.1 do Hoy.

Cálculo de 1 variável
Funções: Capítulo 2 do Guidorizzi (vol. 1) e Seção 13.5 do Simon ou Seção 2.4 do Hoy.
Limites, Continuidade e Derivadas: Capítulos 3 a 9 e 15, 16 do Guidorizzi (vol. 1) ou Capítulos 6 a 10 do Chiang ou Capítulos 5 e 6 do Hoy.
Integrais: Capítulos 10 a 12 do Guidorizzi (vol. 1) e 1 a 3 do Guidorizzi (vol. 2) ou Capítulo 14 do Chiang.

Cálculo de Várias Variáveis
Funções de Várias Variáveis: Capítulos 6 a 8 do Guidorizzi (vol. 2) ou Seções 13.1 e 13.2 do Simon ou 11.1 e 11.2 do Chiang.
Formas Quadráticas: Seção 13.3 do Simon ou 11.3 do Chiang.
Limites e Continuidade: Capítulo 9 do Guidorizzi (vol. 2) ou Seção 13.4 do Simon.
Derivada parcial, derivada total e plano tangente: Capítulos 10 a 12 do Guidorizzi (vol. 2) ou Seções 14.1 a 14.5 do Simon ou Seções 11.1 e 11.3 do Hoy.
Derivada Direcional e Gradiente: Capítulo 13 do Guidorizzi (vol. 2) ou Seção 14.6 do Simon.
Derivadas de ordens superiores: Capítulos 14 e 16 do Guidorizzi (vol. 2) ou Seção 14.8 do Simon ou Seções 11.2 e 11.3 do Hoy.
Função Implícita: Capítulo 15 do Simon.
Homogeneidade e Homoteticidade: Capítulo 20 do Simon.
Integrais Múltiplas: Capítulos 2 a 4 do Guidorizzi (vol. 3).
Otimização sem e com restrições: Capítulos 17, 18, 19 e 21 do Simon ou Seções 11.4 e 11.5 e Capítulos 12 e 13 do Chiang ou Capítulos 12, 13 e 15 do Hoy.

Matrizes, Determinantes e Inversa: Capítulos 8, 9 e 26 do Simon ou Capítulos 4 e 5 do Chiang.
Sistemas lineares: Capítulo 7 do Simon (atenção aos fatos 7.1 a 7.11 da seção 7.4).
Geometria Analítica: Capítulos 1 a 20 do Boulos.
Álgebra linear: Capítulos 4 a 7 do Boldrini.

Equações Diferenciais: Capítulos 15, 16 do Chiang ou 24, 25 do Simon ou 21 a 23 e Seções 24.1 e 24.2 do Hoy.
Equação de Diferenças: Capítulos 17 a 19 do Chiang ou 18 a 20 e Seção 24.3 do Hoy.

Sequências e Séries: Capítulos 1 a 8 do Guidorizzi (vol. 4).
Introdução à Análise: Seções 12.3 a 12.5 e 29.1 a 29.5 do Simon ou Capítulo 3 do Cysne.

Matemática Financeira: Capítulos 1 e 2 do Assaf.

Onde encontrar exercícios resolvidos do Exame: livro de Matemática da Campus (contém todos os exercícios dos anos recentes) e livro da UFMG (1993-2007).

Recursos on-line: Aulas de Cálculo I, Cálculo II, Cálculo IIIGeometria Analítica e Álgebra Linear.

ANPEC | 2 Comentários