разный результат 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


Ответы (0 шт):