USP com a mão na massa!


Parece que Sérgio Almeida e Mauro Rodrigues, do Economistas X, estão com um paper bacana no forno: coletar os próprios dados não é tarefa fácil, confiram no post algumas das agruras pelas quais os dois passaram!

PS: sou partidário da idéia de que a coleta de dados interessantes vale um paper por si só. E, claro, que os dados sejam abertos ao público! 

 

 

Aprenda a fazer previsão de eleições com o NYT.


Depois que o Nate Silver saiu do NYT, o jornal montou um novo time de previsão para eleições. O novo modelo, denominado LEO, está no ar e com uma descrição bem amigável de seu funcionamento.  A parte gráfica dos resultados também está bacana, inclusive com uma seção comparando o modelo do NYT com seus concorrentes (vale lembrar que o site conta com a ajuda do Michael Bostock, um dos caras que desenvolveu o fantástico D3 para JavaScript)

Mas, tem algo ainda melhor. O NYT liberou os dados e os códigos do modelo no github. E o modelo é em R. Ou seja, agora, para replicar e adaptar o modelo à realidade brasileira só faltam duas coisas: tempo e vontade.

Que variáveis incluir na regressão? Ou, por que grande parte dos trabalhos aplicados está errada.


Suponha que você queira medir o efeito de X em Y (isto é, o quanto uma variação de X afeta Y – uma relação causal) e que você tenha mais duas variáveis que podem ser incluídas como controle, Z1 e Z2. Suponha ainda que você saiba que o modelo é linear, isto é, não há nenhuma incerteza com relação à especificação. Quais variáveis você incluiria no seu modelo?

Hoje, provavelmente você diria o seguinte: depende da significância! São Z1 e Z2 significantes? Se sim, eles devem ser incluídos.

Vejamos um exemplo de uma simulação. O código em R está ao final do post.

Vamos rodar as três regressões: uma só com X, outra incluindo Z1 e por fim uma com todos os controles. Os resultados foram os seguintes:

Equação 1: Y = -10 + 43X ***

Equação 2: Y = -7 + 13X * + 107Z1 ***

Equação 3: Y = -5 – 9X * + 46Z1 *** + 37Z2 ***

Pelos resultados, tanto Z1 quanto Z2 são significantes, então preferimos a equação 3. Concluímos que, na média, uma variação de 1 unidade de X reduz Y em 9 unidades. Certo?

***

Errado. O modelo ideal neste caso seria a equação 2. O efeito real de X sobre Y é de 10 (veja que valor estimado foi 13, bem próximo). O problema aqui é que a significância estatística não vai te responder sobre a pertinência de incluir ou não uma variável para estimar o efeito de X sobre Y. Infelizmente, não há almoço grátis. Como diz Judea Pearlsem saber a estrutura do problema, não é possível determinar quais variáveis devem ser incluídas. Agora pense. Como é a lógica de trabalho dos artigos aplicados hoje? *** A simulação A nossa simulação tem a seguinte estrutura  (U1 e U2 dizem respeito a duas variáveis não observadas, só observamos Y, X, Z1 e Z2): dagitty-model O código em R para gerar os resultados é:

gen_data <- function(N=200,s=2,beta1=10, beta2=100){
Z1 <- rnorm(N,0,s)
U2 <- rnorm(N,0,s) + Z1
U1 <- rnorm(N,0,s) + Z1
Z2 <- rnorm(N,0,s) + U2 + U1
X <- rnorm(N,0,s) + U1
Y <- rnorm(N,0,s) + beta1*X + beta2*U2
data.frame(Y,X,Z1,Z2)
}

set.seed(100)
data <- gen_data()
summary(lm(Y~X, data))
summary(lm(Y~X + Z1, data))
summary(lm(Y~X + Z1 + Z2, data))

Você pode brincar mais com o paradoxo de Simpson aqui; e o gráfico você pode fazer aqui.

Dúvidas no R ou Python? Vá ao StackOverflow em Português!


O famoso site de programação StackOverflow (SO) ganhou uma versão tupiniquim.

O SO é um excelente site de perguntas e respostas. Seu diferencial é ser direto: as perguntas têm que ser bem definidas e as  respostas têm de resolver diretamente o problema. Quer saber, por exemplo, como agregar uma base de dados no R? Pergunte lá e surgirão várias respostas diferentes de como se fazer isso.

Ainda há poucos usuários ativos no R do SO em português. Mas estamos fazendo um esforço para popular o site com perguntas e respostas. Você pode fazer perguntas sobre problemas que está enfrentando atualmente ou, inclusive, registrar perguntas e respostas que você já sabe, como, por exemplo, aqui (gráfico em 3d), aqui (barplot) ou aqui (contar ocorrências em um vetor) – alguém certamente passará pela mesma dificuldade e a solução que você encontrou para o problema pode ser útil. Ou, ainda, outro usuário pode ter uma solução mais interessante do que a que você propôs. De uma olhada nas perguntas que já foram feitas sobre R aqui.

Se você usa  R (Python), cadaste-se no StackOverflow em Português e ajude o site a crescer! Podemos torná-lo um ótimo ambiente para a comunidade brasileira de R, tal como é hoje o SO em inglês.