UPDATE: Previsões para eleições: o que estão dizendo para amanhã? Atualização com as pesquisas de hoje.


A vantagem de um modelo bayesiano é a a forma coerente de atualizar as probabilidades frente às novas informações. E o Polling Data atualizou suas previsões, agora à tarde, considerando as novas pesquisas eleitorais: são 79% de chances para Aécio ir ao segundo turno.

pollingdata2

As estimativas pontuais ficaram em 40% para Dilma, 24% para Aécio e 21% para Marina.  Leia um pouco mais sobre o assunto no blog do Neale.

Daniel Marcelino também havia atualizado as probabilidades, com 40% para Dilma, 23% para Aécio e 22% para Marina.

Previsões para eleições: o que estão dizendo para amanhã?


O que o pessoal que se aventurou nesta empreitada está chutando dizendo um dia antes da contenda eleitoral?

Acredito que há dois eventos que devem ser vistos com mais atenção: (i) uma possível eleição da Dilma no primeiro turno; e (ii) a possibilidade de Aécio ultrapassar Marina e ir para o segundo turno.

Polling Data

UPDATE: O Polling Data atualizou as probabilidades com as novas pesquisas eleitorais. Agora são 79%  de chances para Aécio ir ao segundo turno. Leia mais no blog do Neale.

pollingdata2

Os resultados a seguir eram da previsão pela manhã, antes das novas pesquisas.

Neale El-Dash, do Polling Data, está dando apenas 2% de chances de não ter segundo turno. Já para o Aécio passar Marina, a probabilidade está em cerca de 22% – baixa, mas plausível. Grosso modo, isto é uma em cada 4 ou 5 vezes.

pollingdata

A previsão mais recente dos votos está em 39% para Dilma, 23% para Marina e 21% para Aécio.

Daniel Marcelino

As previsões mais recentes do Daniel são: 39% para Dilma, 23% para Marina e 18% para Aécio. Considerando somente os votos válidos, esses números passariam para: Dilma 46%; Marina 28%; e, Aecio 22%.

Com relação a Aécio ultrapassar Marina, as chances parecem um pouco menores do que no modelo de Neale. No olhomêtro, com o gráfico abaixo, está em algo em torno de 5%. E o segundo turno também parece bastante provável.

Marina_Aecio

Vidente Carlinhos

Para não ficar só com os modelos Bayesianos, vamos colocar algo místico no páreo: o vidente Carlinhos, que ficou famoso por “prever” a derrota do Brasil e a “saída” de Neymar durante a copa.  Pense no Carlinhos como um grupo de controle. Há vários outros “videntes” por aí que poderiam ser incluídos, mas esse é o mais divertido.  O interessante da previsão do Carlinhos é que ela é ousada (algo natural para quem não tem nada a perder, pois se acertar leva a fama e se errar pode dar uma desculpa): Aécio não somente ultrapassaria Marina, como ganharia a eleição no segundo turno.  Note que essa previsão tem baixa probabilidade nos dois modelos bayesianos. Entretanto, o problema principal da previsão do vidente é que ela não é probabilística. Deste modo, acertando ou errando, não conseguimos mensurar direito o quanto ele acertou ou errou – algo fundamental para comparar modelos de previsão – e que podemos fazer com as outras elencadas acima. 

***

Conhece mais alguma previsão? Informe aqui para que possamos acompanhar e ver quem se saiu melhor.

Previsões para eleição no Brasil?


Ontem, me indicaram um site que está se aventurando nesta empreitada: Polling Data. O autor está utilizando dois modelos diferentes, um baseado na agregação das pesquisas eleitorais, e outro com base em variáveis estruturais (como o PIB). O interessante é que os modelos estão apresentando resultados diferentes agora depois da última pesquisa. Os resultados são confiáveis? Não saberia dizer, senti falta de uma avaliação do modelo proposto com previsões fora da amostra. Acompanhemos!

Conhece mais alguém que está modelando as eleições? Compartilhe!

PS: para quem usa R, dei uma olhada nos gráficos e código fonte e é provável que o autor esteja usando shiny e ggvis!

Entrevista com Max Kuhn


O datascience.la liberou mais uma entrevista do useR! 2014: dessa vez com Max Kuhn, autor do pacote de modelos preditivos caret e do livro Applied Predictive Modeling.

Max Kuhn também deu um tutorial na conferência: e o material deste e de outros tutoriais você pode conferir aqui.  Outros vídeos do datascience.la, como a palestra do John Chambers e a entrevista com Hadley Wickham, você pode conferir aqui.

useR! 2014 – Tutoriais


Estava devendo alguns comentários sobre o excelente useR! 2014, mas, devido à correria logo após o retorno, ainda não tinha conseguido sentar para escrever. Aqui seguem alguns comentários sobre os tutoriais, que mereceram um post separado. Um outro post sobre o encontro virá futuramente.

O primeiro dia foi composto de tutoriais de 3 horas, um pela manhã e outro à tarde. Pela manhã, assisti ao tutorial do Max Kuhn, sobre modelos de previsão no R, baseado no seu excelente livro Applied Predictive Modeling e no seu pacote para o R, caret (Classification and Regression Training). Max trabalha na Pfizer, então tem bastante experiência com modelos preditivos voltados para o mercado – em outras palavras, modelos que têm de funcionar. Isso é excelente, pois há um foco grande em como lidar com as técnicas na prática e como gerenciar seu fluxo de trabalho na análise de dados, uma lacuna presente em muitos livros de estatística e machine learning. Os slides e códigos do tutorial podem ser encontrados aqui.

IMG_0168

 

Entretanto, o custo de assistir ao tutorial do Max foi o de perder os outros, igualmente interessantes, que ocorreram simultaneamente. Em particular, alguns que não pude ver mas depois consultei o material foram: (i) Matt Dowle sobre o pacote data.table (para manipulação de dados). Se você ainda não conhece o data.table, está perdendo precioso tempo de vida. Eu literalmente acabei de juntar mais de 2 milhões de observações de imóveis com a função rbindlist instantaneamente, enquanto que com a função base do R demorava minutos. E (ii) Romain Francois sobre a integração do R com C++11 e seu pacote Rcpp11. Um interface simples para interagir com C++ e C++11 parece estar sendo a resposta para desenvolvimento de pacotes de alta performance no R. Meu interesse nesta assunto tem crescido particularmente pelo fato de simulações Bayesianas poderem ser computacionalmente muito intensas, então você acaba eventualmente tendo que se preocupar com performance. Não é muito legal esperar dias para um modelo rodar e, só depois, você descobrir um bug para ter que rodar tudo de novo.

Pela tarde assisti ao tutorial do Hadley Wickham sobre manipulação de dados com o dplyr. O dplyr é um pacote que tem o lado do bom dos dois mundos: uma sintaxe simples e amigável para dummies – ainda mais com o uso do pipe operator %>% do magrittr - juntamente com excelente performance (Romain e C++!).  Como eu já havia adotado o dplyr desde seu lançamento, assisti ao tutorial mais para prestigiar o Hadley do que para aprender.   Valeu a pena, a apresentação foi muito bacana!

IMG_0179

E, para variar, infelizmente não pude ir a dois tutorias que me chamaram a atenção em particular: (i) o do Ramnath, sobre documentos interativos com R, discutindo o rCharts, slidify, bem como soluções server side que têm surgido como Shiny e OpenCPU. E (ii) a apresentação do Dirk Eddelbuettel sobre o Rcpp.

Além dos tutoriais que mencionei, foram abordados temas como visualição dinâmica, modelos  de rede bayesiana, análise de dados espaciais entre diversos outros. Então,  se você ainda não tinha tido contato com estes assuntos/pacotes e quer se aprofundar,  eis aí uma boa oportunidade. Há bastante material para consulta e praticamente todos estão disponíveis no site!

Previsões para a copa: afinal, como se saíram os modelos?


Depois do 7 x 1 da Alemanha contra o Brasil, houve algum rebuliço na mídia. Nate Silver se explicou: não é que a derrota do Brasil fosse algo imprevisível, afinal, estimou-se em 35% as chances de a Alemanha vencer a partida. Mais de uma em cada três vezes. Entretanto, o placar de 7 a 1 foi, de fato, estimado como muito improvável segundo o modelo – apenas 0.025%. Mas será que isso por si só é suficiente para rejeitarmos seus resultados? Não necessariamente. Lembre que modelos são falsos. Você não quer saber se eles representam fielmente a realidade, mas sim se são úteis. A dificuldade está em, justamente, saber onde esses modelos podem ser úteis, e onde podem ser enganosos.

Modelar resultados raros e extremos é muito complicado.  Isso ilustra um ponto importante: não se exponha negativamente a Black Swans, pois a dificuldade (ou impossibilidade) de identificar tais eventos pode te expor a riscos muito maiores do que o que você imagina.  Nassim Taleb é alguém que bate há algum tempo nesta tecla.

Todavia, o interessante neste caso é que os modelos para a copa, por preverem vitória ou derrota, não estavam negativamente expostos a eventos extremos deste tipo (o diferencial de gols). Suponha que a probabilidade estimada para o resultado de 7 a 1 para a alemanha fosse de 0.25% ao invés de 0.025%, ou seja, 10 vezes maior. Isso em quase nada alteraria a probabilidade de um time ou outro vencer. Em outras palavras,  se você estiver apostando no resultado binário (vitória ou derrota), você não está exposto a um Black Swan deste tipo (poderia estar exposto a outros tipos, mas isso não vem ao caso agora).

Para ilustrar, comparemos uma distribuição normal (cauda bem comportada) com uma distribuição t de student com 2 graus de liberdade (cauda pesada). No gráfico abaixo temos a Normal em vermelho e a t de student em azul.  Note que a probabilidade de X ser maior do que zero é praticamente 50% nas duas distribuições. Entretanto, a probabilidade de X ser maior do que 3.3 é mais de 80 vezes maior na distribuição t do que na Normal. Na verdade, a simulação da t resulta em pontos bastante extremos, como -100 ou 50 (resultados “impossíveis” numa normal(0,1)), e por isso o eixo X ficou tão grande. Isto é, para prever o resultado binário X>0 ou X<0, não há muita diferença nos dois modelos, a despeito de haver enormes diferenças em eventos mais extremos.

Normal x T

 

Dito isto, não é de se surpreender que, apesar de Nate Silver ter colocado o Brasil como favorito – e ter errado de maneira acachapante o resultado contra a Alemanha – ainda assim suas previsões (atualizadas) terminaram a copa com o menor erro quadrático médio. Ou, também, com o menor erro logarítmico. Essas são medidas próprias de escore para previsões probabilísticas.

O gráfico final do erro quadrático ficou da seguinte forma. Não coloco o logarítmico por ser praticamente igual:

modelos_final

E segue também o gráfico final comparando as probabilidade observadas com as previstas:

calibracao_final

 

 

Previsões para a copa: USP e UFSCar x Nate Silver x Céticos


Previsões brasileiras

Grupo de Modelagem Estatística no Esporte (GMEE), parceria de um pessoal da USP e UFSCar, também colocou no ar um site com previsões para a copa, tanto nas classificações, quanto no jogo a jogo (resumi as probabilidades jogo a jogo em uma tabela ao final do post). Na última copa, o GMEE deu uma bola dentro: o grupo (a contra-gosto dos brasileiros) estimou como favoritos Espanha e Holanda.

Uma das coisas de que eu particularmente gostei neste site é que, além das probabilidades, eles colocaram um boxplot que ilustra a incerteza das estimativas. Assim como nas previsões do Nate Silver, o Brasil consta como favorito, entretanto com uma probabilidade menor: 30%.

boxplot

Como comparar previsões? Nate Silver x GEMM x Céticos

Agora já temos dois modelos diferentes para a copa do mundo. E há muitos outros por aí (que não coletei os dados por falta de tempo). Como avaliar a performance dessas previsões?

Uma forma simples e efetiva é utilizar o erro quadrático médio (que pode ser decomposto em outras medidas mais refinadas). Suponha que você atribua a probabilidade p a um evento x. O erro quadrático será:

(p – x)^2

Em que x é uma variável dummy que assume valor 1 se o evento em questão ocorrer e 0 caso contrário. Note que o melhor resultado possível é um erro de zero, e isto acontece quando você dá probabilidade de 100% para um evento que ocorre (1-1)^2 ou uma probabilidade 0% para um evento que não ocorre (0-0)^2. Já o pior resultado é um erro de 1, que acontece quando você diz que era impossível algo ocorrer (0%), mas este algo ocorre (0-1)^2, ou quando você diz que algo ocorrerá com certeza (100%) e o evento não ocorre (1-0)^2.

Quando há mais de um evento possível, calculamos isso para cada um deles e tiramos uma média, sob a restrição de que a probabilidade atribuída ao conjunto some 1. Por exemplo,  no caso da copa, em cada jogo há três resultados possíveis e mutuamente excludentes. Isto é,  tomando um dos times como referência, ou ele ganha, ou perde, ou empata. Suponha, por exemplo, que uma vitória tenha ocorrido. O erro quadrático médio de uma previsão para o jogo será:

((Probabilidade Estimada de Vitória – 1)^2 + (Probabilidade Estimada de Derrota – 0)^2 + (Probabilidade Estimada de Empate – 0)^2 ) /3

Vejamos, o caso do jogo Brasil x Croácia.

Nate Silver estimou chances de 88% para o Brasil,  9% para o empate e 3% para a derrota.  Já o GMEE foi mais conservador em sua previsão, estimando probabilidades de 66%, 21% e 13%, respectivamente. Ambos colocaram o Brasil como favorito e, realmente, o Brasil ganhou. Entretanto, como Nate deu maior certeza ao evento que de fato ocorreu, seu erro quadrático nesta partida foi de apenas 0.01, contra 0.06 do GMEE.

Note que estamos começando a distinguir entre tipos de previsões, mesmo que elas apontem o mesmo time como favorito.

Podemos fazer outra comparação. Suponha que você seja um cético de previsões no futebol. Afinal, poder-se-ia argumentar, trata-se de um esporte bastante imprevisível em que tudo pode acontecer.  Uma vitória, derrota ou empate são equiprováveis (33,33% cada). E de fato, caso isso fosse verdade, este seria o cenário mais difícil de se acertar.

Qual é o erro quadrático do cético? Ao atribuir a mesma probabilidade para todos os eventos, ele sempre terá o mesmo erro independentemente do resultado: 0.22. É uma estratégia conservadora, com previsões não informativas. Podemos, então, utilizar o cético como um benchmark mínimo. Em outras palavras, para o modelo ser minimamente aceitável, ele tem de, na média, errar menos do que o cético.

Depois de 11 partidas, como estão os previsores?

Nate Silver está na frente, com um erro médio de 0.159; O GMEE está apenas um pouco atrás, com erro de 0.163. E ambos, pelo menos por enquanto, com bastante vantagem em relação ao cético.

Esta é uma primeira aproximação para avaliar as previsões e ela pode ser refinada. Por exemplo, vocês notaram que não houve empate na Copa até agora? A probabilidade média estimada para os empates está em cerca de 23%. Se isso continuar a ocorrer por mais algumas partidas, desconfiaremos de que a probabilidade de empate dos modelos não está bem calibrada.

Discutiremos esta e outras medidas para avaliar as previsões no futuro. Vejamos um pouco sobre a atualização de modelos.

Atualização das probabilidades

Um bom modelo de previsão, sempre quando possível, deve tentar incorporar informações novas em seus cálculos.  Tomemos o caso da Holanda, que goleou a Espanha mesmo enquanto todos consideravam esta última como favorita.  Intuitivamente, após observar este resultado, você diria que as chances de a Holanda ganhar do Chile no dia 23 de junho devem permanecer as mesmas? Provavelmente não.

Se, em seu modelo, você dava baixa probabilidade para este evento, isto é um sinal de que você tem de reajustar, pelo menos um pouco, suas expectativas. O FiveThirtyEight está fazendo isso.  Antes do jogo Holanda x Espanha, o modelo estimava que o Chile era favorito contra a Holanda no dia 23: 48% de chances de ganhar. Agora a situação se inverteu e a laranja mecânica é a favorita com 37%.

Essas atualizações tentam aprimorar o modelo, mas será que as novas probabilidades serão melhores do que as anteriores? Como de costume, isto é uma questão empírica, e somente descobriremos  no decorrer dos jogos.

 

***

Probabilidade jogo a jogo do Previsão Esportiva

previsoes1