为什么这种分配是统一的?


12

我们正在调查贝叶斯统计检验,并且遇到一种奇怪的现象(对我来说至少是这样)。

考虑以下情况:我们有兴趣测量哪个人口A或B具有较高的转化率。对于健全性检查,我们将设置,也就是说,两组转换的可能性相等。我们使用二项式模型生成人工数据,例如pA=pB

nABinomial(N,pA)

然后,我们尝试使用贝叶斯beta二项式模型估计以便获得每种转换率的后验,例如pA,pB

PABeta(1+nA,NnA+1)

我们的测试统计量是通过蒙特卡洛通过计算来计算的。S=P(PA>PB|N,nA,nB)

令我惊讶的是,如果,则。我的想法是,随着样本大小增加,它将以0.5为中心,甚至收敛到0.5 。 pA=pBSUniform(0,1)N

我的问题是,为什么 当时?p = p SUniform(0,1)pA=pB


这是一些Python代码来演示:

%pylab
from scipy.stats import beta
import numpy as np
import pylab as P

a = b = 0.5
N = 10000
samples = [] #collects the values of S
for i in range(5000):
    assert a==b
    A = np.random.binomial(N, a); B = np.random.binomial(N, b)
    S = (beta.rvs(A+1, N-A+1, size=15000) > beta.rvs(B+1, N-B+1, size=15000)).mean() 
    samples.append(S)

P.hist(samples)
P.show()

请注意,不能完全均匀,因为它是一个离散变量。因此,您正在询问渐近行为。此外,对于较小的(小于,大约为),分布甚至无法接近均匀。SNp = p A = p B100/min(p,1p)p=pA=pB
ub

@whuber S不是离散的,它的概率可能在0到1之间。而且,即使对于低N,我也观察到统一的行为。
Cam.Davidson.Pilon,2014年

2
那我一定是误会了你的设置。据我所知,对于任何给定值,的值都是一个数字。因此,接受和目前是固定的(就像它们在您的代码中一样),是的函数。但是后者是两个二项分布的实现,只能获得一组离散值。当我复制您的代码时,对于小,我肯定会得到不一致的直方图。S N p Ap B S n An BNN,nA,nB,SN,pA,pBS(nA,nB)RN
ub

1
尽管确实您的值在到之间,但不要将它与非离散值混淆:它最多可以有不同的值(实际上小于此值)。因为你的模拟生成这可能不是完全清楚你估计的,而不是它的正确的价值观和基本的估计确实有连续分布。0 1 N 2 SS01N2S
ub

1
@whuber是的,您是正确的,非常棒的观察。我仍然坚持为什么它看起来统一。
Cam.Davidson.Pilon 2014年

Answers:


11

TL; DR: 当箱尺寸很大时,正态分布的混合可能看起来均匀。

这个答案来自@whuber的示例代码(我认为这首先是一个错误,但回想起来可能是一个提示)。

人口中的基本比例是相等的:a = b = 0.5
A和B每个组有10000个成员:N = 10000
我们将进行5000次模拟重复:for i in range(5000):

其实,我们在做什么是一个的。在每个迭代5000的我们将尽。 š 中号ü ö Ñ ù Ñ d Ë ř ÿ Ñ š 中号ü ö Ñ p - [R 中号Ë š 中号ü ö ñ ùsimulationprimesimulationunderlyingsimulationprimesimulationunderlying

在每次迭代中,我们将模拟一个随机数的A和B,它们在给定了前面定义的相等的基本比例的情况下是“成功”(AKA转换)的。从名义上讲,这将产生A = 5000和B = 5000,但A和B在模拟运行之间会有所不同,并且分别在(大约)正态分布在5000个模拟运行中(我们将回到正题)。simulationprimeA = np.random.binomial(N, a); B = np.random.binomial(N, b)

现在,让我们逐步完成 的的单个迭代,其中A和B取得了相同数量的成功(这是平均情况)。在每次迭代中,给定A和B,我们将为每个组创建beta分布的随机变量。然后,我们将对它们进行比较,找出,得出TRUE或FALSE(1或0)。在运行结束时,我们已完成15000次迭代,并具有15000个TRUE / FALSE值。这些值的平均值将从(近似正态)采样比例中simulationunderlyingsimulationprimesimulationunderlyingBetaA>BetaBsimulationunderlyingBetaA>BetaB

除了现在,将选择5000 A和B值。A和B很少会完全相等,但是A和B成功次数的典型差异与A和B的总样本量相比是微不足道的。典型的As和Bs从,但位于A / B分布边缘的那些也将被提取。simulationprimeBetaA>BetaB

因此,从本质上讲,我们可以进行许多模拟运行的是对A和B的组合的的采样分布的组合(从共同值得出的采样分布中有更多的抽取与A和B的不常见值相比)。这导致正态分布的混合。当您将它们组合成较小的bin大小时(这是您所使用的直方图函数的默认值,并且直接在原始代码中指定),结果最终看起来像是均匀分布。BetaA>BetaB

考虑:

a = b = 0.5
N = 10
samples = [] #collects the values of S
for i in range(5000):
    assert a==b
    A = np.random.binomial(N, a); B = np.random.binomial(N, b)
    S = (beta.rvs(A+1, N-A+1, size=15000) > beta.rvs(B+1, N-B+1, size=15000)).mean() 
    samples.append(S)

P.hist(samples,1000)
P.show()

1
因此,我的代码和您的代码之间是有区别的。我在每个循环中对A和B进行采样,对它采样一次,并计算S 5000次。
Cam.Davidson.Pilon 2014年

1
差异在于您对的调用rbinom,该调用返回一个向量。随后对rbetainside的调用replicate是矢量化的,因此内部(内部)循环对生成的15000个随机变量中的每使用不同的 和(自以来,最后一个5000环绕)。查看更多。这与@Cam的代码不同,@ Cam的代码在5000个采样()循环的所有15000个随机变量调用中都使用了一个固定的和B A BABNSIM = 10000?rbetaABreplicate
主教

1
这是那些好奇的输出: imgur.com/ryvWbJO
Cam.Davidson.Pilon 2014年

1
我所知道的唯一在概念上可能相关的事情是:a)结果的预期分布是对称的; b)bin大小始终为1; c)对称分布的bin大小为2 d)从N的增加中可以得出的可能的采样分布的数量,e)S的值不能单独叠加在0或1上,因为当两个组中有0个成功时,β都不确定,和f)将样品在0和1之间的窄
russellpierce

1
仅作为观察的问题,我们可以看到,随着采样分布的质心远离.5(可能与上面的f点有关),采样分布的质心之间的距离会减小。对于A组和B组更常见的几乎相等的成功率,这种效果倾向于抵消高频率观察的趋势。但是,就为什么是这样或为什么对于某些bin大小应该产生正态分布提供数学解决方案,在我的领域中并不遥不可及。
russellpierce 2014年

16

为了对发生的事情有一些直觉,让我们随意使很大,从而忽略行为,并利用渐近定理指出β和二项分布都近似为正态。(有些麻烦,所有这些都会变得严格。)执行此操作时,结果是从各个参数之间的特定关系得出的。O 1 / N NO(1/N)


因为我们计划使用正态逼近,所以我们将注意变量的期望和方差:

  • 随着二项式,和期望和方差。因此,和具有和方差期望。ñ Ñ p Ñ p 1 - p ñ α = Ñ / Ñ β = Ñ / Ñ p p 1 - p / Ñ(N,p)nAnBpNp(1p)Nα=nA/Nβ=nB/Npp(1p)/N

  • 作为Beta变量,的期望值为并且方差为。近似地,我们发现的期望为(nA+1,N+1nA)PA(nA+1)/(N+2)(nA+1)(N+1nA)/[(N+2)2(N+3)]PA

    E(PA)=α+O(1/N)

    和方差

    Var(PA)=α(1α)/N+O(1/N2),

    对于具有相似的结果。PB

因此,让我们用正态和正态分布(其中第二个参数来和分布指定方差)。因此,的分布近似为正态;以机智,PAPB(α,α(1α)/N)(β,β(1β)/N)PAPB

PAPBNormal(αβ,α(1α)+β(1β)N).

对于非常大的,表达式将不会明显变化从除可能性极低(另一个被忽略的项)。因此,将设为标准的普通CDF,Nα(1α)+β(1β)p(1p)+p(1p)=2p(1p)O(1/N)Φ

Pr(PA>PB)=Pr(PAPB>0)Φ(αβ2p(1p)/N).

但是由于具有零均值和方差是标准的法线变量(至少近似)。 是其概率积分变换;是均匀的αβ2p(1p)/N, Z=αβ2p(1p)/NΦΦ(Z)


1
我一直你,直到 ...然后您偏离了我没有完全遵循的另一个方向。是否定义了两次,一次是作为标准正态CDF,另一次是作为概率积分变换?我希望您可以围绕这些步骤扩展您的描述,并将它们与初始代码/问题相关联。也许循环返回并重新声明哪些特定参数会产生一致的结果。PAPBNormalΦ
russellpierce 2014年

1
@rpierce(1)因为和是独立的并且各自近似正常,所以差异近似正常。平均值是均值之差,方差是方差之和。(2)概率积分变换 CDF:对于任何具有连续分布随机变量,是均匀的。PAPBPAPBXFF(X)
ub

1
哦,我得到了1,这是我迷路后的东西。这将令人难以置信,但是为什么与CDF一样?Pr(PA>PB)
russellpierce 2014年

1
@rpierce这是直接从定义中得出的,但是有一点曲折,即调用了正态分布的对称性。我们处理的是一个正态变量假定具有的期望和方差。标准化,很自然地将概率重写为 Φ μ / σ X=PAPBμ=αβσ2=2p(1p)/NX
Pr(X>0)=Pr((Xμ)/σ>(0μ)/σ)=1Φ(μ/σ)=Φ(μ/σ).

3
@whuber,这真是太神奇了。你是一位了不起的老师。感谢您和rpierce的回答,我仍然会给他功劳,因为它确实解决了我们的问题,并且您已经说明了为什么会发生这种行为。!
Cam.Davidson.Pilon 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.