Почему это распределение равномерно?

12

Мы изучаем байесовское статистическое тестирование и сталкиваемся со странным (по крайней мере, мне) явлением.

Рассмотрим следующий случай: мы заинтересованы в измерении того, какая популяция, A или B, имеет более высокий коэффициент конверсии. Для проверки мы устанавливаем , то есть вероятность конверсии одинакова в обеих группах. Мы генерируем искусственные данные, используя биномиальную модель, например,pA=pB

nABinomial(N,pA)

Затем мы пытаемся оценить используя байесовскую бета-биномиальную модель, чтобы мы получили для каждого коэффициента конверсии, например,pA,pB

PABeta(1+nA,NnA+1)

Наша тестовая статистика вычисляется путем вычисления через Монте-Карло.S=P(PA>PB|N,nA,nB)

Что меня удивило, так это то, что если , то . Мои мысли были , что бы вокруг 0,5, и даже стремятся к 0,5 , как размер выборки, , растет. pA=pBSUniform(0,1)N

Мой вопрос: почему когда ?p A = p BSUniform(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()
Cam.Davidson.Pilon
источник
Обратите внимание, что не может быть точно однородным, потому что это дискретная переменная. Поэтому вы спрашиваете об асимптотическом поведении. Более того, для малых (менее , приблизительно, при ) распределение даже отдаленно не близко к равномерному. SNp = p A = p B100/min(p,1p)p=pA=pB
whuber
@whuber S не дискретен, это вероятность, которая может упасть между 0 и 1. Кроме того, даже при низких N я наблюдаю равномерное поведение.
Cam.Davidson.Pilon
2
Должно быть, я неправильно понимаю вашу настройку. Насколько я могу судить, для любых значений значение является числом. Следовательно, принимая, что и фиксированы на данный момент (как они есть в вашем коде), является функцией . Но последние, будучи реализациями двух биномиальных распределений, могут достигать только дискретного набора значений. Когда я воспроизвожу свой код , я решительно неоднородные гистограмм для малых . S N , p A , p B S ( n A , n B ) NN,nA,nB,SN,pA,pBS(nA,nB)RN
whuber
1
Хотя действительно ваш имеет значения от до , не путайте это с недискретным: он может иметь не более различных значений (и на самом деле имеет меньше, чем это). Это не может быть совершенно ясно, потому что ваша симуляция генерирует оценку из , а не его правильных значения и оценки по существу есть непрерывное распределение. 0 1 N 2 SS01N2S
whuber
1
@ whuber да, вы правы, отличное наблюдение. Я до сих пор застрял на том, почему это выглядит одинаково.
Cam.Davidson.Pilon

Ответы:

11

TL; DR: смеси нормальных распределений могут выглядеть одинаково при больших размерах бина.

Этот ответ заимствован из примера кода @ whuber (который я сначала считал ошибкой, но, оглядываясь назад, вероятно, был намеком).

Основополагающие пропорции в популяции равны: a = b = 0.5.
Каждая группа, А и В имеют 10000 членов: N = 10000.
Мы будем проводить 5000 повторов моделирования: for i in range(5000):.

На самом деле, то, что мы делаем, это число . В каждой из 5000 итераций мы будем делать . ев я т у л т я о п у н д е г л у я н г ы я м U L т я о п р т я м е ы я м U L с т я о н цsimulationprimesimulationunderlyingsimulationprimesimulationunderlying

В каждой итерации мы будем моделировать случайное число А и В , которые являются «успехами» (АКА преобразована) , данные , лежащими в основе равных пропорций , определенные ранее: . Номинально это даст A = 5000 и B = 5000, но A и B варьируются от сима до сима и распределяются по 5000 симуляциям независимо и (приблизительно) нормально (мы вернемся к этому).simulationprimeA = np.random.binomial(N, a); B = np.random.binomial(N, b)

Давайте теперь пройдемся по для одной итерации в которой A и B добились равного числа успехов (как будет в среднем случае). На каждой итерации мы, с учетом A и B, создадим случайные вариации бета-распределения для каждой группы. Затем мы сравним их и выясним, является ли , что дает ИСТИНА или ЛОЖЬ (1 или 0). В конце прогона мы выполнили 15000 итераций и получили 15000 значений ИСТИНА / ЛОЖЬ. Их среднее значение даст одно значение из (приблизительно нормального) выборочного распределения доли ы я м у л т я о п р т я м е ев я т U L с т я о п у н д е г л у я н г Б е т >simulationunderlyingsimulationprimesimulationunderlying евямултяо п у н д е г л у я н г Б е т > Б е т в BBetaA>BetaBsimulationunderlyingBetaA>BetaB .

За исключением того, что теперь выберет 5000 значений A и B. A и B редко будут в точности равны, но типичные различия в количестве успехов A и B уменьшаются из-за общего размера выборки A и B. Типичные As и Bs дадут больше тяг от распределения выборки в пропорциях , но те, что находятся на краях A / B-дистрибутива, также будут извлечены.Б е т а A > B е т в BsimulationprimeBetaA>BetaB

Итак, что по сути мы выполняем во многих прогонах симов, это комбинация распределений выборки для комбинаций A и B (с большим количеством вытягиваний из распределений выборки, сделанных из общих значений A и B, чем необычные значения A и B). Это приводит к смеси нормальных распределений. Когда вы объединяете их по небольшому размеру бина (как это было по умолчанию для функции гистограммы, которую вы использовали и была указана непосредственно в исходном коде), вы получаете нечто, похожее на равномерное распределение.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()
russellpierce
источник
1
Так что есть разница между моим и вашим кодом. Я выбираю A и B в каждом цикле, вы выбираете один раз и вычисляете S 5000 раз.
Cam.Davidson.Pilon
1
Расхождение заключается в ваших вызовах rbinom, которые возвращают вектор. Последующий вызов rbetainside replicateявляется векторизованным, поэтому внутренний (внутренний) цикл использует разные и для каждой из 15000 сгенерированных случайных величин (переход к последним 5000, начиная с вашего ). Смотрите больше. Это отличается от кода @ Cam с единственными фиксированными и используемыми во всех 15000 вызовах с произвольной переменной для каждого из 5000 циклов sampling ( ). B A BABNSIM = 10000?rbetaABreplicate
кардинал
1
Вот вывод для любопытных: imgur.com/ryvWbJO
Cam.Davidson.Pilon
1
Единственное, что мне известно о том, что потенциально уместно на концептуальном уровне, это то, что а) ожидаемое распределение результатов симметрично, б) размер ячейки 1 всегда одинаков, в) размер ячейки 2 для симметричного распределения также всегда будет выглядеть равномерно, d) число возможных распределений выборки, которые можно извлечь из увеличения с увеличением N, e) значения S не могут складываться только в 0 или 1, потому что бета не определена, если в любой группе есть 0 успехов и f) выборки ограничены между 0 и 1.
russellpierce
1
Только на основании наблюдений мы можем видеть, что расстояния между центроидами распределений выборки уменьшаются по мере того, как центроиды распределений выборки удаляются от .5 (вероятно, связано с точкой f выше). Этот эффект имеет тенденцию противодействовать тенденции к высокой частоте наблюдений для более распространенных почти равных успехов в случае группы А и группы В. Тем не менее, дать математическое решение относительно того, почему это так или почему оно должно давать нормальное распределение для определенных размеров бинов, далеко не рядом с моей территорией.
Расселпирс
16

Чтобы получить некоторую интуицию о том, что происходит, давайте не стесняемся делать очень большим и при этом игнорировать поведение и использовать асимптотические теоремы, которые утверждают, что бета- и биномиальные распределения становятся примерно нормальными. (С некоторыми проблемами все это можно сделать строгим.) Когда мы делаем это, результат получается из определенных отношений между различными параметрами.O ( 1 / N )NO(1/N)


Поскольку мы планируем использовать нормальные приближения, мы обратим внимание на ожидания и дисперсии переменных:

  • Как биномиальный переменные, и есть ожидания и дисперсии из . Следовательно и есть ожидания и дисперсией .n A n B p N p ( 1 - p ) N α = n A / N β = n B / N p p ( 1 - p ) / N(N,p)nAnBpNp(1p)Nα=nA/Nβ=nB/Npp(1p)/N

  • Поскольку бета , имеет ожидание и дисперсию . Приблизительно, мы находим, что имеет ожидание(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)

Whuber
источник
1
Я буду с тобой до тех пока ... тогда ты пойдешь в другом направлении, которому я не совсем следовал. Определяется ли дважды, один раз как стандартный нормальный CDF, а затем как интегральное преобразование вероятности? Я надеюсь, что вы можете расширить свое описание вокруг этих шагов и связать их с исходным кодом / проблемой. Возможно, вернитесь назад и уточните, какие конкретные параметры дают одинаковый результат. PAPBNormalΦ
Расселпирс
1
@rpierce (1) Разница приблизительно нормальная, потому что и независимы и каждый приблизительно нормален. Среднее - это разность средних, а дисперсия - сумма дисперсий. (2) Интегральным преобразованием вероятности является CDF: для любой случайной величины с непрерывным распределением случай , когда является равномерным. PAPBPAPBXFF(X)
whuber
1
О, я получил 1, это был материал после этого, где я заблудился. Это будет ошеломительно глупо, но почему такой же, как CDF? Pr(PA>PB)
Расселпирс
1
@rpierce Это, скорее, следует из определения, но есть небольшой поворот, при котором вызывается симметрия нормального распределения. Мы имеем дело с нормальной случайной величиной предполагаются иметь ожидание и дисперсия . Стандартизируя , естественно переписать вероятность какX=PAPBμ=αβσ2=2p(1p)/NX
Pr(X>0)=Pr((Xμ)/σ>(0μ)/σ)=1Φ(μ/σ)=Φ(μ/σ).
whuber
3
@ Whuber это довольно удивительно. Вы замечательный учитель. Я ценю как ваш, так и ответ Рпирса, я все равно буду ему благодарен, так как это решило нашу проблему, и вы показали, почему такое поведение имеет место. Ty!
Cam.Davidson.Pilon