почему z-критерий значительно отличается для двух распределений, которые выглядят одинаково (проверка гипотез) - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть два распределения ниже (набор данных Kaggle: продажи Россмана), которые визуально выглядят одинаково: продажи в обычные дни и продажи в школьные каникулы.

enter image description here

Тем не менее, они, похоже, не проходят z-тест (проверку гипотез) в Python - почему это так ?

Как мне выполнить статистический тест (z-test) в Python?Должен ли я использовать pooled или unequalvar (использовать одну и ту же дисперсию или другую)?Я также обнаружил, что переключение School_hol_sales и Normal_day_sales в приведенном ниже коде дает разные результаты, и я не уверен, почему.

School_hol_sales = df[(df.Open==1)&(df.SchoolHoliday==1)&(df.StateHoliday=='0')&(df.Promo==0)].Sales
Normal_day_sales = df[(df.Open==1)&(df.SchoolHoliday==0)&(df.StateHoliday=='0')&(df.Promo==0)].Sales
School_hol_sales.mean(), Normal_day_sales.mean() # (6230.4, 5904.6)
School_hol_sales.std(), Normal_day_sales.std() # (2841.8, 2602.9)


# which is the correct one?
import statsmodels.stats.api as sms

cm = sms.CompareMeans(sms.DescrStatsW(School_hol_sales), sms.DescrStatsW(Normal_day_sales))
z, pval = cm.ztest_ind(alternative='larger', usevar='unequal')
print('z: {} , pval: {}'.format(z, pval))


from statsmodels.stats.weightstats import ztest

z, pval = ztest(School_hol_sales,Normal_day_sales, alternative='larger', usevar='pooled', ddof=1.0)
print('z: {} , pval: {}'.format(z, pval))

Вывод:

z: 28.53350149055591 , pval: 2.2504631945823565e-179
z: 30.17089944207645 , pval: 2.853425122518376e-200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...