Продолжаю публиковать стандартные функции в Python. См. предыдущий пост Как считать Хи квадрат в Python.
Крускал Уоллис тест позволяет определить значимость различий признака по нескольким группам. Например, уровень зарплаты (числовая переменная) по Москве, Санкт-Петербургу и Красноярску. Стаж (числовая переменная) по группам бухгалтеров, продажников и кассиров. Крускал Уоллис тест -тест непараметрический, это значит, что для различия поста русских, китайцев, эфиопов мы применим, скорее всего, дисперсионный анализ - параметрический аналог теста Крускал Уоллис. Рост у нас имеет нормальное распределение, что позволяет применить диспресионный анализ. А вот стаж, зарплата не имеют нормального рапределения, что требует непараметрический тест, в нашем случае Крускал Уоллис тест.
Крускал Уоллис тест позволяет определить значимость различий признака по нескольким группам. Например, уровень зарплаты (числовая переменная) по Москве, Санкт-Петербургу и Красноярску. Стаж (числовая переменная) по группам бухгалтеров, продажников и кассиров. Крускал Уоллис тест -тест непараметрический, это значит, что для различия поста русских, китайцев, эфиопов мы применим, скорее всего, дисперсионный анализ - параметрический аналог теста Крускал Уоллис. Рост у нас имеет нормальное распределение, что позволяет применить диспресионный анализ. А вот стаж, зарплата не имеют нормального рапределения, что требует непараметрический тест, в нашем случае Крускал Уоллис тест.
Загружаем необходимые пакеты
import pandas as pd import numpy as np import scipy
Делаем игрушечный набор данных
Самое интересное в данном посте - переводим наши данные в требуемый формат.
Теперь вычисляем Крускал Уоллис тест
Или, если нужна группировка
Все. В Python Крускал Уоллис тест вычисляется не так просто, как в R, но ... привыкаешь:)
df = pd.DataFrame({'numbers':range(9), 'group':['a', 'b', 'c']*3})
Самое интересное в данном посте - переводим наши данные в требуемый формат.
groups = {} for grp in df['group'].unique(): groups[grp] = df['numbers'][df['group']==grp].values print(groups)
Теперь вычисляем Крускал Уоллис тест
args = groups.values() scipy.stats.kruskal(*args)
Или, если нужна группировка
args = [groups[grp] for grp in sorted(df['group'].unique())]
Все. В Python Крускал Уоллис тест вычисляется не так просто, как в R, но ... привыкаешь:)
Комментариев нет:
Отправить комментарий