Comentário sobre o Workshop Internacional em Teoria dos Jogos


Não,os comentários não são meus, pois infelizmente não pude ir (por uma boa causa)! Mas, Adriano Teixeira relata um pouco sobre a experiência de participar de um workshop com vários ganhadores do prêmio nobel.

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

 

 

Causalidade e Paradoxo de Simpson: debate acalorado entre Judea Pearl e Andrew Gelman (e outros).


Para quem tem interesse em discussões sobre estatística e causalidade, vale a pena ler estes dois posts (aqui e aqui) do Andrew Gelman, principalmente as discussões ocorridas nos comentários, com participação provocativa do Judea Pearl. Se você ainda não teve contato com o assunto, dê uma olhada no exemplo deste post antes para ficar com a pulga atrás da orelha e começar a entender por que causalidade não é um conceito estatístico.

Previsões para a copa: sem Neymar, Brasil ainda é favorito?


Segundo os mercados de apostas, não! No Betfair, o jogo Brasil e Alemanha está praticamente um cara-e-coroa, com 50.9% para a Alemanha e 49.1% para o Brasil. Ps: lembre que o Betfair é dinâmico, então essas probabilidades alteram ao longo do tempo.

Entretanto, segundo Nate Silver, sim! Talvez por conta do viés de se jogar em casa, o modelo do FiveThirtyEight dá ao Brasil 73% de chances de ganhar da Alemanha e 54% de ganhar a copa! Update: Nate Silver recalculou as probabilidades do Brasil sem o Neymar e reduziu as chances de ganharmos da Alemanha para algo entre 68% a 65%.

Emoções à parte, quem você acha que está certo?

Veja aqui o histórico de erro dessas previsões.

***

Também havia prometido comparar a calibração dos modelos, isto é, comparar as probabilidades previstas contra as freqüências observadas. Podemos fazer isso de diversas formas, mas achei um gráfico bacana no Cross Validated que é bem fácil de implementar e resolvi copiar para começarmos a brincadeira.

Segue, abaixo, gráfico com as probabilidades previstas (eixo X) contra as freqüências observadas (eixo Y) da primeira fase da copa do mundo para cada um dos modelos. Os círculos cinzas representam os dados observados (1 ou 0) e os círculos principais tem tamanho e cores proporcionais à quantidade de observações em sua categoria.

calibration

 

Mais para frente veremos outras formas de comparar esses resultados, incluindo os dados das eliminatórias!

Previsões para copa: modelos x mercado, como estão se saindo?


Com o fim da primeira fase da copa, chegou a hora de começar a comparar os diferentes modelos de previsão. Temos uma amostra que não é grande, mas é, de certa forma, razoável – foram 48 jogos!

Como comparar previsões? Em post anterior discutimos brevemente como fazer isso, e lá ilustramos com os modelos de Nate Silver e do Grupo de Modelagem Estatística no Esporte (GMEE), da USP/USFCAR.

Entretanto, além desses dois modelos, temos agora mais algumas novidades: como o Nate Silver atualiza suas previsões jogo a jogo,  pegamos também aquelas que valiam antes de cada partida. Dessa forma podemos verificar se essas mudanças foram benéficas ou não.

Além disso, com a dica do Pedro Sant’Anna, coletamos as probabilidades implícitas pelo mercado de apostas do Betfair, tanto aquelas que estavam valendo bem antes de todas as partidas, como aquelas que constavam no início do dia de cada jogo.

Temos, portanto, dois benchmarks para nossos previsores. O primeiro é o cético, que acredita que o futebol é muito imprevisível e que qualquer resultado (vitória, derrota ou empate) é equiprovável. Entretanto, se o cético parece um oponente muito fácil,  temos também as previsões do Betfair, que podem ser vistas como uma média do senso comum em relação a cada partida, e parecem trazer uma competição mais acirrada.

O gráfico com a evolução do erro médio dia após dia segue abaixo. Note que, quanto menor o erro, melhor. A linha tracejada verde marca o erro médio do cético, nosso benchmark mínimo (0.222). A linha sólida vermelha e a linha tracejada amarela representam o mercado, antes e após atualizar as probabilidades, nosso benchmark  mais rigoroso.

modelos_copa

Como no primeiro dia só houve um jogo (o do Brasil) que era relativamente mais fácil de acertar, todo mundo começou com um erro muito baixo, e isso deixa a escala do gráfico muito grande para enxergar as diferenças dos dias posteriores. Então vamos dar um zoom na imagem, considerando os valores a partir do dia 14, quando o erro médio dos modelos começa a se estabilizar:

modelos_copa_zoom

A primeira coisa a se notar é que tanto o Nate Silver quanto o GMEE foram, de maneira consistente, melhores do que o cético e do que mercado. Vale fazer uma pequena ressalva para o GMEE que, hoje, no último dia da primeira fase, se aproximou bastante do Betfair. Nate Silver, contudo, ainda mantém uma distância razoável.

Outra coisa interessante é que o modelo atualizado de Nate Silver realmente terminou com erro menor do que suas previsões no início da competição! É importante ter em mente que isso não é um resultado óbvio:  saber como incorporar informações novas na medida que surgem não é algo trivial. Como contra-exemplo temos o mercado, que, surpreendentemente, conseguiu fazer com que suas previsões atualizadas ficassem piores!

Por agora ficamos aqui. Mais para frente veremos alguns gráficos com a calibração dos modelos: será que, quando eles previam 40% de chances de um resultado acontecer, eles aconteceram mais ou menos 40% das vezes?

Mais dados da copa, jogo a jogo!


Qual a posição média dos jogadores na partida entre Brasil e Camarões? Como foram as jogadas de cada chute a gol? O Huffington Post, para cada jogo, traz esses e outros dados com gráficos interativos. Vale a pena conferir!

 

copaVia Cesar Hildago.