Хи-квадрат для данных из столбца панд

Мне нужно вычислить хи-квадрат

 CAT    Label
0   A   0.0
1   A   0.0
2   B   1.0
4   A   0.0
6   B   0.0
... ... ...
3566    C   0.0
3567    A   0.0
3568    B   0.0
3571    C   1.0

Я использовал кросс-таблицу:

data = pd.crosstab(df['CAT'],df['Label'], margins = False)

Я получаю следующее:

Label   0.0 1.0
CAT     
A   425 37
B   718 82
C   637 128

Рассчитав хи-квадрат, я получаю следующие результаты:

contingency = pd.crosstab(df['CAT'], df['Label'])
stat, p, dof, expected = chi2_contingency(contingency)

alpha = 0.05

print('Significance=%.3f, p=%.3f' % (alpha, p))
if p <= alpha:
    print('-> Variables are associated')
else:
    print('-> Variables are not associated')

Результат

Significance=0.050, p=0.000
Variables are associated. 

Считаете ли вы правильный подход и достоверность результатов? Я также получаю p_value = 0,000, когда проверяю другую переменную. Мне интересно, если у меня есть A, B и C, я не могу применить хи-квадрат в этом случае.

Всего 1 ответ


Вы ограничиваете количество десятичных знаков до 3. Скорее всего, ваше p-значение намного меньше и округляется до 0,000. Попробуйте изменить формат p на '.5g', например, и, возможно, отобразятся даже небольшие значения p.


Есть идеи?

10000