Ouvi dizer que, sob a hipótese nula, a distribuição do valor-p deve ser uniforme. No entanto, simulações de teste binomial no MATLAB retornam distribuições muito diferentes de uniformes com média maior que 0,5 (neste caso, 0,518):
coin = [0 1];
success_vec = nan(20000,1);
for i = 1:20000
success = 0;
for j = 1:200
success = success + coin(randperm(2,1));
end
success_vec(i) = success;
end
p_vec = binocdf(success_vec,200,0.5);
hist(p_vec);
Tentar mudar a maneira como gero números aleatórios não ajudou. Eu realmente aprecio qualquer explicação aqui.
binocdf
é apenas o CDF do binomial uk.mathworks.com/help/stats/binocdf.htmlRespostas:
Como James Stanley menciona nos comentários, a distribuição da estatística do teste é discreta, portanto esse resultado não se aplica. Você pode não ter nenhum erro no seu código (embora eu não exiba uma distribuição discreta com um histograma, eu gostaria de exibir o cdf ou o pmf, ou melhor, ambos).
É bem possível calcular exatamente essa distribuição, em vez de simular - mas eu segui seu exemplo e fiz uma simulação (embora maior que a sua).
fonte