Share |

вторник, 11 октября 2016 г.

Как считать Хи квадрат в Python

После того, как сгорает жесткий диск ноутбука, начинаешь думать о вечности - как сохранить свои коды. И тогда начинаешь ценить посты как этот Как в Python читать файлы формата excel.
В этом посте я сохраняю и показываю код, как считать Хи квадрат в 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 считается легко.

Пост показался полезным?

Кликните на директ рекламу - вы сэкономите время с помощью кода, а мое затраченное время будет не таким бессмысленным)))

Комментариев нет:

Отправить комментарий

рек