quarta-feira, 30 de outubro de 2024

A uma semana das eleições, Trump vai na frente com 77% de probabilidade

Faltam 7 dias e o resultado das presidenciais americanas ainda está em aberto.

Quando o futuro é desconhecido, em termos estatísticos, podemos fazer uma ideia do que vai acontecer, isto é, podemos atribuir uma probabilidade a cada uma das contingências futuras.

Naturalmente, há coisas que são quase certas como chover no Outono tem uma probabilidade de quase de 100%, e outras que são quase impossíveis, como a probabilidade de nos próximos 100 anos um asteróide colidir com a Terra.

Para conseguirmos "ver" melhor o resultado eleitoral futuro, usamos sondagens que, apesar de terem problemas, permitem-nos prever melhor do que usando a técnica de atirar uma moeda ao ar.

Peguei então nas sondagens publicadas entre os dias 21 e 29 de Outubro dos 7 "estados em dúvida"(https://www.270towin.com/2024-presidential-election-polls/) e, usando o Método de Monte Carlo de re-amostragem, calculei a percentagem de vezes em que o Trump ganha. Cheguei a um valor de 77%.

Representação gráfica da probabilidade de o Trump ganhar


Não está mal para quem é acusado de ser fascista, racista, xenófobo, misógino, machista ... 

Isto só mostra a credibilidade que na América dão às pessoas que acusam o Trump de tudo e mais alguma coisa.


Valores usados

Código R usado

dados <- data.frame(
  Estado = c("Arizona","Georgia","North Carolina","Nevada","Pensilvânia","Wisconsin","Michigan"),
  Respostas = c(8748,11004,9535,6919,10185,8309,7967),
  Harris = c(4111,5211,4517,3286,4897,3994,3854),
  Trump = c(4299,5365,4629,3322,4926,3983,3763),
  Outros = c(338,428,389,311,362,332,350),
  Deputados = c(11,16,16,6,19,10,15)
  )


# Função para realizar o sorteio e calcular a soma dos deputados de quem ganhar em cada estado
simula_votos <- function(dados) {
   # Inicializa a contagem de deputados para cada simulação
   Trump=0  
   # Percorre os 7 estados
   for (i in 1:nrow(dados)) {
      # Sorteia votos com reposição para Harris e Trump
      votos= sample(c(1,2,3), dados$Respostas[i], replace = TRUE, prob = c(dados$Harris[i],dados$Trump[i],dados$Outros[i]))
      votos = table(votos)
      if (votos[1]<votos[2])
         Trump = Trump+dados$Deputados[i]
      if (votos[1]==votos[2])
         Trump = Trump+dados$Deputados[i]/2
      }
    219 + Trump
    }

niter=10000
Trump=rep(0,niter)
vitoria=0
i=0
for (i in 1:niter){
    Trump[i]=simula_votos(dados)    
    if (Trump[i] >=270){
       vitoria=vitoria+1}
    }
vitoria/niter
table(Trump)
hist(Trump)
 



0 comentários:

Enviar um comentário

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Hostgator Coupon Code