разный результат p-value в статистических тестах и в ручном аб тесте
Я сделал аб тест как написано в книге по статистике. Считал доли. Но мой результат p значения очень сильно отличается от p значения которое я получаю просто при помощи scipy.stats.f_oneway или scipy.stats.ttest_ind или любого другого который я пробовал. При том что t-тест вообще для среднего а не для доли
Раз они все выдают одинаковый результат значит проблема в моей реализации аб теста но я не понимаю где она. Все сделал как написано в книге "практическая статистика для специалистов data science"
Вот мой аб тест:
a=list()
b=list()
data2=data2.reset_index()
for i in range(1000):
# перемешиваю перед каждой итерацией
data2=pd.DataFrame(data2.sample(len(data2)))
# беру из перемешанного две выборки с возвратом
a.append(data2.iloc[:126145].conversion.value_counts()[1])
b.append(data2.iloc[126145:].conversion.value_counts()[1])
# считаю доли
aa=[i/126145 for i in a]
bb=[i/126145 for i in b]
cc=[x-y for x,y in zip(aa,bb)]
# считаю сколько раз разница в долях после аб теста была выше чем изначально посчитанная разница
c=0
for i in cc:
if i>=line:
c+=1
# само p значение
c/n
В итоге у меня получается p 0.001728169963137659 а в тестах 0.3771198560435267