Tamanhos de amostra para pesquisas eleitorais com margens de 2 p.p.
Em todo período eleitoral, a gente vê gráficos com pontos e margens de erro de \(\pm\) 2 p.p. com nível de confiança de 95%. Estas de margens de erro são obtidas a partir do tamanho da amostra para determinado nível de confiança.
A pergunta central é: será que eles funcionam?
Bom, vamos investigar.
Definição formal do problema
Sejam \(n_1 , n_2 , \dots , n_K\) as contagens observadas em uma amostra de tamanho \(n\) extraída da distribuição multinomial com \(K\) categorias — i.e.,
\[\begin{equation} \Pr ( n_1 , n_2 , \dots , n_K ) = n! \prod_{k=1}^K \frac{ p_k^{n_k} }{ n_k! } , \end{equation}\]
com \(\sum_{k=1}^K p_k = 1\) e \(\sum_{k=1}^K n_k = n\).
O problema de determinação do tamanho de amostra para estimação simultânea de proporções se resume a encontrar o valor de \(n\) tal que, para dado um nível de confiança \(1 - \alpha\), garantimos que
\[\begin{equation} \Pr \bigg[ \cap_{k=1}^K \big( | \hat{p}_k - p_k | < \varepsilon\big) \bigg] \geqslant 1 - \alpha , \quad \hat{p}= \frac{n_k}{n} \end{equation}\]
onde \(\varepsilon\) é o erro máximo tolerável. Em outras palavras, queremos determinar \(n\) de modo que a probabilidade de que todos os intervalos \(\big[ \hat{p}_k - \varepsilon; \hat{p}_k + \varepsilon\big]\) contenham os respectivos parâmetros \(p_k\) seja pelo menos \(1 - \alpha\).
Usando os valores de referência usuais, isso significa que queremos encontrar \(n\) de modo que a probabilidade de que os intervalos \(\big[ \hat{p}_k - .02 ; \hat{p}_k + .02 \big]\) para todas as \(K\) categorias contenham os respectivos parâmetros \(p_k\) seja pelo menos \(.95\).
Método Padrão
O método padrão se baseia no uso de duas aproximações:
- Aproximar a distribuição multinomial pela distribuição binomial;
- Aproximar a distribuição binomial pela distribuição normal.
Sob amostragem aleatória simples com reposição, para dados \(\alpha\) e \(\varepsilon\), o tamanho de amostra é dado por:
\[\begin{equation} n = z_{(\alpha/2)}^2 \frac{ p_k ( 1 - p_k ) }{ \varepsilon^2 } \end{equation}\] onde \(z_{(\alpha/2)}\) é o percentil \((1 - \alpha/2) \times 100\) da distribuição normal padrão.
Na prática, como \(p_k ( 1 - p_k ) \leq .25\), costuma-se tomar este valor como referência para um tamanho conservador. Neste caso, a regra é:
\[ n = \frac{ z_{(\alpha/2)}^2 }{ 4 \varepsilon_k^2 } \]
Assim, considerando \(\alpha = .05\) e \(\varepsilon=.02\):
\[ \begin{aligned} n &= \frac{ z_{(\alpha/2)}^2 }{ 4 \varepsilon^2 } = \frac{ 1.96^2 }{ 4 \times .02^2 } = 2400.912 \\ \therefore n &\doteq 2401 \end{aligned} \] Este método tem dois problemas. A primeira aproximação ignora a dependência entre as categorias; funciona bem para uma variável binária, mas não necessariamente para uma variável categórica mais geral. A segunda aproximação introduz erros arbitrários no procedimento.
Checagem de cobertura
Embora o método se baseie em duas aproximações que podem ou não ser justificáveis, o mais importante é verificar se ele funciona. Ou seja: se uma pesquisa com este tamanho consegue produzir intervalos simultâneos de 2 pontos percentuais com o nível mínimo de cobertura de 95%.
Para avaliar a qualidade deste método, vamos usar realizar um estudo de simulação.
Vamos extrair \(R = 10^5\) amostras de tamanho \(n=2401\) de uma distribuição multinomial com \(\mathbf{p}= ( .25 , .25 , .25 , .25 )\).
Em cada cada amostra, vamos obter o vetor de estimativas \(\mathbf{\hat{p}}= ( \frac{n_1}{n} , \frac{n_2}{n} , \frac{n_3}{n} , \frac{n_4}{n} )\) e criar intervalos de confiança simultâneos com a margem de erro pré-fixada de \(\pm 2\) p.p.
Em cada amostra, se os intervalos \(\mathbf{\hat{p}}\pm .02\) cobrem os valores verdadeiros \(\mathbf{p}\), classificamos o resultado como sucesso; caso contrário, fracasso.
O valor esperado desta variável binária definida pelo evento cobertura simultânea tem que ser superior a 95%.
Este processo é resumido no código abaixo.
# parametros da simulação
pvec <- rep( 1/4 , 4 )
epsilon <- .02
alpha <- .05
r.size <- as.integer( 1e5 )
n.size <- as.integer( 2401 )
set.seed( 12345 ) # semente do gerador de números aleatórios
# estima probabilidade de cobertura simultânea usando simulação
simulated_data <- t( rmultinom( r.size , n.size , pvec ) )
estimated_probs <- simulated_data / n.size
within_margin <- abs( sweep( estimated_probs , 2 , pvec ) ) < epsilon
proportion_all_within <- mean(apply(within_margin, 1, all))
proportion_all_within
## [1] 0.91374
Isso significa que aproximadamente 91.4% das amostras com este tamanho tinham intervalos que cobriam os valores verdadeiros.
Porém, queríamos pelo menos 95% de cobertura.
Ou seja: este método não é bom para determinar tamanhos de amostra para estimação simultâneao de proporções.
De fato, outro método (Thompson, 1987) aponta que o tamanho é \(n=3184\):
# parametros da simulação
pvec <- rep( 1/4 , 4 )
epsilon <- .02
alpha <- .05
r.size <- as.integer( 1e5 )
n.size <- as.integer( 3184 )
set.seed( 23456 ) # semente do gerador de números aleatórios
# estima probabilidade de cobertura simultânea usando simulação
simulated_data <- t( rmultinom( r.size , n.size , pvec ) )
estimated_probs <- simulated_data / n.size
within_margin <- abs( sweep( estimated_probs , 2 , pvec ) ) < epsilon
proportion_all_within <- mean(apply(within_margin, 1, all))
proportion_all_within
## [1] 0.9641
Conclusão
As contas apresentadas aqui são relativamente simples, mas mostram um ponto importante: não podemos usar o método padrão para determinar o tamanho amostral se o objetivo é estimação simultânea de proporções.
Ou seja:
Para pesquisas com \(n \approx 2400\), desconfie das margens de erro de \(\pm\) 2 pontos percentuais que alegam ter probabilidade de cobertura maior ou igual a 95%.