Wednesday, March 23, 2016

Importa saber o tamanho das manifestações Pró e Contra o governo?

Em todas as manifestações populares recentemente realizadas no Brasil, muito se têm debatido sobre o número de pessoas que foram as ruas. Eu mesmo já me manifestei sobre o tema nesse post. Aparentemente, a motivação para tanto debate sobre o número real de manifestantes ocorre porque esses números são usados para estimar o apoio/oposição da população ao Governo. Do ponto de vista estatístico, várias questões relevantes devem ser discutidas pois estão diretamente relacionadas ao cerne da questão: qual a validade de usar estas estimativas para avaliar a oposição/apoio popular ao governo?

Primeiramente, vamos pensar nas diferentes fontes de estimativas existentes: da PM, do DataFolha e dos organizadores. Porque existe uma diferença tão grande entre estimativas provenientes de cada fontes, como pode ser visto nesse link? Acredito que existam 2 motivos principais: diferenças de metodologias e falta de metodologia.

     1 - PM - O objetivo da PM é estimar quantas pessoas estão aglomeradas em um mesmo local num determinado instante de tempo. Para a PM determinar o contingente de policiais, essa informação basta. Para isso utilizam uma metodologia baseada em fotos aéreas, que não tem como estimar o fluxo de pessoas no local.  Ela não tem interesse em estimar o total de pessoas que passaram pelo local, apenas o número de pessoas em um determinado momento do dia.

    2 - DataFolha - O objetivo do DataFolha é diferente. Eles querem identificar tanto o perfil dos manifestantes, quanto identificar quantas pessoas passaram pelo local ao longo do dia (fluxo populacional). Ao invés de tentar explicar aqui como fazem isso, estou incluindo esse link para um vídeo explicativo do próprio DataFolha.

     3 - Organizadores - Finalmente, os organizadores não têm metodologia alguma, apenas um desejo enorme de mostrar que a manifestação foi um sucesso estrondoso. Eu não consegui encontrar nenhuma explicação sobre qual metodologia os “organizadores” utilizam para estimar o total de pessoas. Por favor me avisem se encontrarem alguma explicação.

Dessa forma, entendo que as estimativas não são comparáveis, porém devem usualmente seguir a seguinte lógica: a estimativa da PM representa o mínimo de pessoas que foram a manifestação (se houver fluxo 0 de pessoas). A estimativa dos Organizadores é o máximo imaginável, talvez até maior do que o máximo possível. E a estimativa do DataFolha fica em algum lugar entre as duas. Mas a meu ver, a única metodologia dessas 3 que responde a pergunta sobre quantas pessoas passaram pelo movimento é a do DataFolha.

Um segundo ponto importante é que estamos vendo, no momento, dois movimentos ocorrerem. Um que está sendo rotulado como favorável do Governo, porém que engloba alguns outros movimentos como “Respeito a constituição” e “não vai ter golpe” e que as pessoas são “inocentes até provarem o contrário”. O outro movimento é rotulado como contrário ao Governo, que incluem pessoas que querem o fim da corrupção, ou querem uma reforma política, ou querem o PT fora do governo e/ou na cadeia. Ou seja, ambos os movimentos não são homogêneos, então ao tentar incluir todas as pessoas ali presentes como pró ou contra qualquer argumento um erro estará sendo cometido. Seria algo equivalente a um erro de mensuração, pois estamos medindo Z, mas na realidade gostaríamos de medir Y.

O terceiro ponto, e talvez o mais importante, é que apenas sabemos quantas pessoas foram para as ruas, porém não sabemos qual a chance de diferentes grupos de pessoas participarem dos movimentos. Nesse link, a reportagem do DataFolha mostra claramente que existem perfis bem diferentes indo pra rua. Na manifestação contra o governo do dia 13/3/2016, na cidade de São Paulo, 77% dos manifestantes tinham educação superior. Como benchmark, na cidade de São Paulo, apenas 28% da população possui educação superior.

Parece razoável assumir que nas manifestações "contra" o publico é mais elitizado, e nas manifestações "à favor" o público é mais popular. Além de serem grupos distintos, parece haver um ímpeto maior de pessoas contra o governo se manifestarem se comparado com as pessoas à favor. Nesse contexto, existe um potencial grande para ocorrer viés de seleção. Quero dizer com isso que se pessoas contra o governo têm uma chance maior de participar de uma manifestação do que quem é à favor do governo, pode parecer que a primeira causa tem mais apoio popular que a segunda, mesmo que não seja verdade.

Segue um exemplo FICTÍCIO, extremo, apenas para ilustrar. Segundo a ABEP 30% da população é classe A/B, e 70% classe C/D/E. Para simplificar o argumento, vamos supor que as classes A/B são contra o governo, e que as classes C/D/E são à favor. Ou seja, nesse exemplo, estamos dizendo que 70% da população é favorável ao governo. Se em cada grupo a chance de uma pessoa ir a manifestação for de 1%, teríamos 1,6 milhões de pessoas nas ruas a favor do governo, e 700 mil contra. Nesse caso não haveria problema em utilizar o tamanho dos protestos pra inferir o apoio popular, pois as taxas de participação são as mesmas.

Porém, vamos supor que 2,5% da classes A/B vão a manifestação, contra apenas 1% das classes C/D/E. Ou seja, temos predisposições diferentes de participar, dependendo do fato da pessoas ser à favor ou contra o governo. Nessas condições, as manifestações esperadas seriam de tamanho quase idêntico (1,7 milhões contra e 1,6 milhões a favor), porém a verdade continua sendo a mesma, de que 70% da população é favorável ao governo. Ou seja, nesse cenário com taxas de participação diferentes, não é razoável utilizar o tamanho dos protestos para medir o apoio popular. E esse cenário me parece o mais realista hoje em dia!

No mundo real é mais difícil fazer essa avaliação, tanto porque não sabemos o tamanho dos grupos, quanto porque não sabemos as predisposições de cada grupo participar dos protestos. Se soubéssemos, não seria necessário recorrer ao número de pessoas na rua para fazer a conta. Se o objetivo é avaliar o apoio popular, então que façam pesquisas desenhadas para isso. Usar o número de manifestantes para estimar o apoio popular é perigoso, porque algumas suposições bem fortes estão sendo feitas!








Monday, March 21, 2016

Dificuldades para acompanhar as eleições Brasileiras de 2016

Hoje o site PollingData começou a acompanhar as eleições Brasileiras de 2016. As dificuldades logísticas para conseguir consolidar todas as pesquisas publicadas na mídia brasileira são enormes. Muito maiores do que em 2014, ano que o site foi lançado, pois nesse ano ocorrem mais de 5500 eleições municipais. Ou seja, temos que acompanhar muito mais eleições do que as 28 eleições de 2014 (Presidente + 27 governadores). Nesse post vou contar como estávamos nos preparando para esse ciclo eleitoral, e como acabamos tendo nossa vida tremenda facilitada pelo Blog do Fernando Rodrigues (fomos salvos por ele, novamente!!!)

Como mencionado acima, a dificuldade logística de coletar os dados em 2016 é muito maior do que foi 2014. Já há alguns anos tenho uma ideia de como buscar essas pesquisas automaticamente na internet, porém ainda não havia tentado implementá-la. Esse ano senti que seria imprescindível fazer isso para manter o site atualizado.

O algoritmo básico é razoavelmente simples, e depende essencialmente do registro das pesquisas. Em ano de eleição toda pesquisa que for publicada na mídia têm que ser antes registrada no site do TSE, e além disso, na divulgação da pesquisa é obrigatório incluir no texto o número de identificação criado pelo TSE. Com essa combinação de fatores, tenho uma lista atualizada com todas as pesquisas que têm potencial de serem publicadas, e também tenho como buscá-las no Google usando o id do TSE.

Claro que existem muitos detalhes complicados nesse algoritmo, entre eles como determinar quais sites encontrados pelo Google de fato têm de fato o resultado da pesquisa desejada e como extrair o resultado da pesquisa do texto do site. Lembrando que essas etapas são complicadas ainda mais pela existência de simulações de segundo turno, pela existência de voto estimulado e voto espontâneo, e por existirem inicialmente muitos cenários com candidatos diferentes, visto que os candidatos que concorrerão as eleições só serão definidos em Agosto.

A primeira dificuldade real que encontrei foi o site do TSE. Ele foi desenvolvido de uma forma que torna extremamente difícil para um programa extrair as informações necessárias do site. Não vou entrar em detalhes aqui, porém existem sites que são feitos para facilitar o acesso de computadores ao seu conteúdo, e outros que são desenhados pensando apenas na interação com os humanos. O site do TSE foi desenvolvido apenas pensando nos humanos. E para conseguir extrair automaticamente suas informações, tive que utilizar um programa cuja finalidade original é testar sites, para ver se estão funcionando corretamente. Por causa do objetivo desse programa, ele têm vários efeitos colaterais negativos para automatizar a busca de informações em um site. Apesar disso, consegui criar um programa que entra no site do TSE, clica em todas as pesquisas e guarda os resultados.

Feito isso, o próximo passo foi criar um programa que entra no Google e faz uma busca avançada, procurando pelo número de registro da pesquisa e controlando alguns outros detalhes. Essa parte é relativamente fácil, o difícil é decidir quais sites são os mais relevantes e extrair a informação necessária de dentro do site. Para facilitar o desenvolvimento, fiquei trabalhando apenas em extrair as informações de um site em específico. Após conseguir extrair as informações desse site, resolvi testar o algoritmo de extração nos outros hits do Google.

Foi nessa hora que tive uma grande (e boa!) surpresa. Um dos primeiros resultados que encontrei era do Blog do Fernando Rodrigues. Foi ai que descobri que ele havia atualizado seu site para incluir pesquisas de 2016. Como nesse blog existiam diversas pesquisas consolidadas, resolvi parar de desenvolver o algoritmo de extração baseado no site do TSE, e comecei a desenvolver um novo programa para extrair especificamente as pesquisas do blog do Fernando Rodrigues. Após terminar o algoritmo de extração do TSE, darei mais detalhes sobre ele num post futuro.

Apesar de inicialmente parecer mais fácil ter um site com todas as pesquisas já consolidadas do que buscar cada uma individualmente na net, tive mais um grande obstáculo: extrair as informações automaticamente do Blog, pois as pesquisas de cada eleição estão localizadas numa tabela dentro de um arquivo em pdf. Após pesquisar bastante, encontrei um programa muito bom, chamado “tabula”. Consegui executar esse programa de dentro do R (que é o programa que uso para fazer o PollingData) e pronto – consegui de forma automática extrair os resultados das pesquisas!


Depois de todo esse trabalho, estava finalmente pronto para usar os dados da pesquisa e estimar os modelos de previsão do PollingData. E adivinhem?  Mais uma dificuldade, pois com poucas pesquisas e muitos cenários com diferentes candidatos, o modelo que eu tradicionalmente uso não conseguia rodar (missing data!!!). Mas para não cansar demais quem está lendo esse post, deixo pra contar sobre as dificuldades de modelagem em um outro post.

Finalizando, gostaria novamente de agradecer publicamente ao Fernando Rodrigues. Acho o trabalho que ele faz no seu blog espetacular,e além de tudo torna minha vida muito mais fácil! Sem falar que pelo site dele consigo pesquisas fora dos anos de eleição, como em 2015. Isso não seria possível com meu algoritmo pois ele depende do registro das pesquisas.