在原假设下模拟二项式检验时 p 值的非均匀分布

机器算法验证 matlab p 值 二项分布 模拟 均匀分布
2022-02-06 21:56:00

我听说在零假设下,p 值分布应该是均匀的。然而,MATLAB 中的二项式检验模拟返回的均值大于 0.5(在本例中为 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);

试图改变我生成随机数的方式并没有帮助。我真的很感激这里的任何解释。

1个回答

结果是p值在下具有均匀分布H0适用于连续分布的测试统计信息 - 至少对于零点,就像你在这里一样。

正如 James Stanley 在评论中提到的那样,检验统计量的分布是离散的,因此该结果不适用。您的代码中可能根本没有错误(尽管我不会显示带有直方图的离散分布,但我倾向于显示 cdf 或 pmf,或者两者都显示更好)。

虽然实际上并不统一,但 p 值的 cdf 中的每次跳跃都会将其带到该行F(x)=x(我不知道它的名字,但它应该有一个名字,也许像“准制服”之类的东西):

在此处输入图像描述

完全有可能准确地计算这个分布,而不是模拟 - 但我已经按照你的领导做了一个模拟(虽然比你的大)。

这样的分布不一定有均值 0.5,尽管作为n在二项式增加中,步长 cdf 将更接近该线,平均值将接近 0.5。

p 值离散性的一个含义是,只有某些显着性水平是可实现的——这些显着性水平对应于零值下 p 值的实际总体 cdf 中的步高。所以例如你可以有一个α接近 0.056 或接近 0.04,但不接近 0.05。