Skip to content

Instantly share code, notes, and snippets.

@ldeassis
Created July 22, 2014 01:15
Show Gist options
  • Save ldeassis/224bd7ff0384cd54f8fd to your computer and use it in GitHub Desktop.
Save ldeassis/224bd7ff0384cd54f8fd to your computer and use it in GitHub Desktop.
Calcula a probabilidade do segundo maior valor ser maior ou igual ao maior valor.
###
### Simula um cenário onde duas proporções possuem
### diferença de 4 pontos em uma margem de erro de 2 pontos
###
### simula amostras aleatórias de tamanho n
### A idéia principal é contar quantas vezes
### o B (menos proporção) ficou na frente
### do A (Maior proporção) quando temos 0.44 a 0.40
### como valor estimado de ambas
simula <- function(
total = 100000,
n = 2401) { ### tamanho mínimo para um erro de 2 pontos percentuais
teste <- 0
### Definindo candidatos e proporções
cand <- c("A","B", "Outros")
prop <- c(0.44,0.40, 0.16)
for(i in 1:total) {
### Resultado de uma amostra
a <- table(sample(cand, size=n, replace = TRUE, prob=prop))
### O candidato com menor proporção ficou na frente?
if(a[2] >= a[1]) teste <- teste + 1
}
teste / total
}
set.seed(1234) ### apenas para tornar resultado reproduzível
### calculando, baseado no tamanho mínimo de amostra para se obter erro de 2 pontos
simula(n=2401) * 100
### calculando baseado no tamanho de amostra utilizado pelo datafolha
simula(n=5468) * 100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment