TL; DR: смеси нормальных распределений могут выглядеть одинаково при больших размерах бина.
Этот ответ заимствован из примера кода @ whuber (который я сначала считал ошибкой, но, оглядываясь назад, вероятно, был намеком).
Основополагающие пропорции в популяции равны: a = b = 0.5
.
Каждая группа, А и В имеют 10000 членов: N = 10000
.
Мы будем проводить 5000 повторов моделирования: for i in range(5000):
.
На самом деле, то, что мы делаем, это число . В каждой из 5000 итераций мы будем делать . ев я т у л т я о п у н д е г л у я н г ы я м U L т я о п р т я м е ы я м U L с т я о н цев я м у л т я о пп р и м еS ям у л т я о пу н д е г л у я н гS ям у л т я о ппр и м еS ям у л т я о пу н д е г л у я н г
В каждой итерации мы будем моделировать случайное число А и В , которые являются «успехами» (АКА преобразована) , данные , лежащими в основе равных пропорций , определенные ранее: . Номинально это даст A = 5000 и B = 5000, но A и B варьируются от сима до сима и распределяются по 5000 симуляциям независимо и (приблизительно) нормально (мы вернемся к этому).S ям у л т я о пп р и м еA = np.random.binomial(N, a); B = np.random.binomial(N, b)
Давайте теперь пройдемся по для одной итерации в которой A и B добились равного числа успехов (как будет в среднем случае). На каждой итерации мы, с учетом A и B, создадим случайные вариации бета-распределения для каждой группы. Затем мы сравним их и выясним, является ли , что дает ИСТИНА или ЛОЖЬ (1 или 0). В конце прогона мы выполнили 15000 итераций и получили 15000 значений ИСТИНА / ЛОЖЬ. Их среднее значение даст одно значение из (приблизительно нормального) выборочного распределения доли ы я м у л т я о п р т я м е ев я т U L с т я о п у н д е г л у я н г Б е т >ев я м у л т я о пу п д е г л у я н гев я м у л т я о пп р и м еев я м у л т я о пу п д е г л у я н г евямултяо п у н д е г л у я н г Б е т > Б е т в BB e t aA> B e t aВев я м у л т я о пу п д е г л у я н гB e t aA> B e t aВ .
За исключением того, что теперь выберет 5000 значений A и B. A и B редко будут в точности равны, но типичные различия в количестве успехов A и B уменьшаются из-за общего размера выборки A и B. Типичные As и Bs дадут больше тяг от распределения выборки в пропорциях , но те, что находятся на краях A / B-дистрибутива, также будут извлечены.Б е т а A > B е т в Bев я м у л т я о пп р и м еB e t aA> B e t aВ
Итак, что по сути мы выполняем во многих прогонах симов, это комбинация распределений выборки для комбинаций A и B (с большим количеством вытягиваний из распределений выборки, сделанных из общих значений A и B, чем необычные значения A и B). Это приводит к смеси нормальных распределений. Когда вы объединяете их по небольшому размеру бина (как это было по умолчанию для функции гистограммы, которую вы использовали и была указана непосредственно в исходном коде), вы получаете нечто, похожее на равномерное распределение.B e t aA> B e t aВ
Рассмотреть возможность:
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()