После того, как сгорает жесткий диск ноутбука, начинаешь думать о вечности - как сохранить свои коды. И тогда начинаешь ценить посты как этот Как в Python читать файлы формата excel.
В этом посте я сохраняю и показываю код, как считать Хи квадрат в Python. У меня уже есть пост Как считать Хи квадрат в excel. Так что я продолжаю традицию.
Для начала загружаем необходимые пакеты
Создаем сводную таблицу или таблицу сопряженности
c d
a 10 5
b 6 8
Далее такой код
и получаем такой вывод
В этом посте я сохраняю и показываю код, как считать Хи квадрат в Python. У меня уже есть пост Как считать Хи квадрат в excel. Так что я продолжаю традицию.
Для начала загружаем необходимые пакеты
import pandas as pd import scipyСоздаем наш игрушечный набор данных
df = pd.DataFrame({'a' : ['b', 'b','a', 'a' , 'a', 'a', 'a', 'a' , 'a', 'a','a',
'a', 'b', 'b', 'b', 'b', 'b', 'a','a','a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a'], 'b' : ['c','c', 'c','c', 'c', 'c','c', 'c', 'c','d' , 'd' , 'd' , 'd' , 'd',
'd', 'c', 'd', 'c', 'd', 'c', 'd', 'c', 'd', 'c', 'd', 'c', 'd', 'c', 'd']})Наш файл содержит две колонки: a и b с признаками a,b,c,d.
Создаем сводную таблицу или таблицу сопряженности
pd.crosstab(df['a'], df['b'])Получаем вот такое распределение
c d
a 10 5
b 6 8
Далее такой код
table = [ [ 10, 5 ], [ 6, 8 ] ] chi2, prob, df, expected = scipy.stats.chi2_contingency(table) output = "test Statistics: {}\ndegrees of freedom: {}\np-value: {}\n" print(output.format( chi2, df, prob)) print(expected)Думаю, этот код понятен: создаем объект table, создаем формулу подсчета показателей и ожидаемых значений.
и получаем такой вывод
test Statistics: 0.8367044413919416 degrees of freedom: 1 p-value: 0.3603410063766622 [[ 8.27586207 6.72413793] [ 7.72413793 6.27586207]]Все. Хи квадрат в Python считается легко.
Комментариев нет:
Отправить комментарий