J'ai entendu que dans l'hypothèse nulle, la distribution de la valeur de p devrait être uniforme. Cependant, les simulations du test binomial dans MATLAB renvoient des distributions très différentes de celles uniformes avec une moyenne supérieure à 0,5 (0,518 dans ce cas):
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);
Essayer de changer la façon dont je génère des nombres aléatoires n'a pas aidé. J'apprécierais vraiment toute explication ici.
binocdf
c'est juste le CDF du binôme uk.mathworks.com/help/stats/binocdf.htmlRéponses:
Comme James Stanley le mentionne dans les commentaires, la distribution de la statistique de test est discrète, donc ce résultat ne s'applique pas. Vous pouvez ne pas avoir d'erreurs du tout dans votre code (bien que je n'affiche pas une distribution discrète avec un histogramme, je pencherais pour afficher le cdf ou le pmf, ou mieux, les deux).
Il est tout à fait possible de calculer cette distribution exactement, plutôt que de simuler - mais j'ai suivi votre exemple et fait une simulation (bien que plus grande que la vôtre).
la source