sexta-feira, 25 de setembro de 2015

A determinação do "erro da sondagem"

OK, hoje o Costa vai-se deitar com azia. 
A sondagem da TVI deu PSD+PP = 37,0% e PS = 32,3%
A sondagem da TV 1 deu PSD+PP = 42,0% e PS = 37,0%

Sendo que outra sondagem disse que o PS estava um poucochinho à frente, os leitores devem-se perguntar se podemos afirmar com base nestas duas sondagens de que, o povo português está maioritariamente  com o PSD+PP.

1) Posso já dizer que a vantagem do PSD+PP sobre o PS é significativa a 95%.

2.1)Que a votação no PS está entre 31,2% e 36,2% com probabilidade de 95%;
2.2) Que a votação no PSD+PP está entre 36,9% e 42,3% com probabilidade de 95%;
2.3) E que a vantagem do PSD+PP sobre o PS está entre 1,5 pp e 10,3 pp com 95% de probabilidade

Vamos agora ver como eu pude dar estas respostas a partir das sondagens de hoje.

Anda cá Costa, que nunca passarás de Presidente de Câmara

A perspectiva Clássica.
Neste quadro conceptual, eu assumo que na população ambos os partidos têm os mesmos votos e calculo, depois, a probabilidade de observar uma amostra teórica com uma diferença maior ou igual que a observada na sondagem. 

H0: A percentagem do PSD+PP é igual à percentagem do PS. 
H1: A percentagem do PSD+PP é diferente da percentagem do PS.

Para responder a esta questão tenho que assumir que ambos os partidos têm na população a mesma percentagem dada pela média das sondagens, ponderado pelo número de respostas.

H0: ambos os partidos têm (37,0%+32,3%+42%+35%) / 4 = 36,575%

Agora, tenho que refazer a amostra
Casos válidos = 1024+1027 = 2051
Abstenção e não respostas = (25% + 7%)*1027 + 22,2%*1024 = 556 => 27,1% dos casos válidos
Respostas no PSD+PP e no PS => (2051 - 556) * 36,575% = 547 => 26,7% dos casos válidos
Respostas nos outros partidos = 2051 - 556 - 2*547 = 401 => 19,5% dos casos válidos
Sucessos no telefonema =(59,5% + 61%)/2 = 60,25%

Agora, vou retirar 10000 amostras.
Para isso, vou usar o programa R

Resultado.
A distância de zero aos percentis 2,5% e 97,5% é de 4,2 pontos percentuais.
Como a média das duas sondagens indicam uma vantagem do PSD+PP de 4,85 pontos
    ((37,0% - 32,3%) + (42% - 37,0%) )/2 = 4,85
A perspectiva clássica apenas permite dizer que
Pode-se rejeitar H0 (a hipótese de que ambos os partidos estão empatados) ao nível de sigificância de 5%.

A perspectiva Bayesiana.
Neste quadro conceptual, eu conheço a amostra e vou, num espaço de populações, ver que população poderia dar origem a amostra que tenho.
Apesar de parecer uma perpectiva estranha, só assim posso determinar os "intervalos" das votações dos partidos e da vantagem.

Agora, tenho que refazer o cálculo
Casos válidos = 1024+1027 = 2051
Abstenção e não respostas = (25% + 7%)*1027 + 22,2%*1024 = 556 => 27,1% dos casos válidos
Respostas no PSD+PP => (37,0%*1024 + 42%*1027)*(1-27,1%) = 591 => 28,9% dos casos válidos
Respostas no PS => (32,3%*1024 + 35%*1027)*(1-27,1%) = 503 => 24,6% dos casos válidos
Respostas nos outros partidos = 2051 - 556 - 2*547 = 401 => 19,6% dos casos válidos
Sucessos no telefonema =(59,5% + 61%)/2 = 60,25%

Resultados.
Posso apresentar resultados mais ricos.
O PS está entre 31,2% e 36,3% com probabilidade de 95%;
O PSD+PP está entre 36,9% e 42,3% com probabilidade de 95%;
A vantagem do PSD+PP sobre o PS está entre 1,5 pp e 10,2 pp com 95% de probabilidade
A probabilidade de o PSD+PP estar acima do PS é de 99,6%;
A probabilidade de o PSD+PP estar acima dos 44% é de 0,1%.

As vantagens do uso de métodos de simulação.
É que não preciso saber qual é a função de distribuição da população nem dos estimadores.

Código de R utilizado
#Para a perspectiva clássica
#Primeiro, os dados da amostra retirados da TVI e da RTP1
resp.validas <-2051; perc.resp <- 0.6025; perc.abst <- 0.271

# Vamos determinar sob a hipotese H0: perc.ps = perc.psd.pp
#Percentagem dos partidos num telefonema válido
prob.ps <- 0.267; prob.psd.pp <- 0.267; prob.outros <- 0.195

# Agora, vou repetir a experiencia muitas vezes (vou fazer 10000)
 ps<-0;  psd <- 0
 for (i in 1:10000)
   {
    # Vou telefonar até obter 2051 respostas válidas
    #1 é PS; 2 é PSD+PP; 3 são outros; 4 é abstençao e 5 é chamada não valida
    # vou extrair muitos telefonemas
    amostra<-sample(1:5,2*resp.validas,prob=c(prob.ps,prob.psd.pp,prob.outros,perc.abst,1-perc.respostas), replace=TRUE)
    # Agora, escolho as primeiras respostas válidas até dar 2051
    amostra <- amostra[amostra!=5][1:resp.validas]
    #Guardo as respostas nos 2 partidos maiores
    ps[i] <- table(amostra)[1]
    psd[i] <- table(amostra)[2]
   }

# finalmente, já posso calcular o desvio entre zero e os percentis 2,5% e 97,5%
(sort(ps-psd)[10000-250]+sort(ps-psd)[10000-250])/2/(resp.validas*(1-perc.abst))

# Para a perspectiva bayesiana
#Primeiro, os dados da amostra retirados da TVI e da RTP1
resp.validas <-2051; perc.resp <- 0.6025; perc.abst <- 0.271

# Vamos determinar sob a hipotese H0: perc.ps = perc.psd.pp
#Percentagem dos partidos num telefonema válido
prob.ps <- 0.246; prob.psd.pp <- 0.289; prob.outros <- 0.195

# Agora, vou repetir a experiencia muitas vezes (vou fazer 10000)
 ps<-0
 psd <- 0
 for (i in 1:10000)
   {
    # Vou telefonar até obter 2051 respostas válidas
    #1 é PS; 2 é PSD+PP; 3 são outros; 4 é abstençao e 5 é chamada não valida
    # vou extrair mais telefonemas
    amostra<-sample(1:5,2*resp.validas,prob=c(prob.ps,prob.psd.pp,prob.outros,perc.abst,1-perc.respostas), replace=TRUE)
    # Agora, escolher as primeiras respostas válidas
    amostra <- amostra[amostra!=5][1:resp.validas]
    #Agora vejo as respostas nos 2 partidos maiores
    ps[i] <- table(amostra)[1]
    psd[i] <- table(amostra)[2]
   }

#Valor mínimo e máximo do PS
sort(ps)[250]/(resp.validas*(1-perc.abst))
sort(ps)[10000-250]/(resp.validas*(1-perc.abst))

#Valor mínimo e máximo do PSD+PP
sort(psd)[250]/(resp.validas*(1-perc.abst))
sort(psd)[10000-250]/(resp.validas*(1-perc.abst))

#Valor mínimo e máximo da diferença PSD+PP - PS
sort(psd-ps)[250]/(resp.validas*(1-perc.abst))
sort(psd-ps)[10000-250]/(resp.validas*(1-perc.abst))

#Probabilidade de o PSD+PP ficar à frente do PS
margem  <- psd-ps
(length(margem[margem>0]+length(margem[margem==0])/2))/10000

#Probabilidade de PSD+PP ter mais de 44%
resultado.psd<-psd/(resp.validas*(1-perc.abst))
length(resultado.psd[resulta.psd>0.44])/10000

Pedro Cosme Vieira

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