• Автор записи:
  • Рубрика записи:Scipy
  • Время чтения:4 минут чтения
  • Комментарии к записи:0 комментариев

Одним из методов демонстрации взаимосвязи между двумя категориальными переменными является использование статистики хи-квадрат. В Python Scipy есть метод chisquare() для этой демонстрации в модуле scipy.stats.

Метод chisquare() проверяет нулевую гипотезу о том, что категориальные данные действительно имеют указанные частоты:

  • Если наблюдаемые или ожидаемые частоты в каждой группе слишком низкие, этот тест недействителен. Согласно общему критерию, наблюдаемые и прогнозируемые частоты должны быть не менее 5.

Синтаксис:

scipy.stats.chisquare(f_obs, ddof=1, f_exp=None, axis=1)

Где параметры:

  • f_obs (array_data): наблюдаемые частоты каждой категории.
  • ddof() это «Дельта-степени свободы»: значения p-степеней свободы корректируются. Распределение хи-квадрат со степенями свободы k – 1 – ddof используется для расчета значения p, где k — количество наблюдаемых частот. ddof имеет значение по умолчанию 0.
  • f_exp(): ожидаемые частоты в каждой категории. По умолчанию предполагается, что категории равновероятны.
  • axis (int): тест должен применяться вдоль оси широковещательного результата f_obs и f_exp. Все значения в fobs считаются единым набором данных, если ось имеет значение None.

Метод возвращает chisq (статистику теста хи-квадрат) и значение p(значение p теста) типа ndarray или float.

Давайте рассмотрим пример, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy import stats
  • Теперь создайте массив и учтите, что f_obs указаны, прогнозируемые частоты предполагаются постоянными и представляют собой среднее из наблюдаемых частот. Используйте приведенный ниже код, чтобы вычислить хи-квадрат значений этого массива.
arr = [9,8,12,15,18]
stats.chisquare(arr)

метод chisqure()

Посмотрите на приведенный выше вывод: мы рассчитали хи-квадрат или p-значение значений массива, используя метод chisqure() Python SciPY.

Содержание

Метод chi2-contingency()

Критерий независимости хи-квадрат используется для проверки того, имеют ли две категориальные переменные значимую связь. В Python SciPy есть метод chi2-contingency() для такого рода тестов, который существует в модуле scipy.stats.

Синтаксис:

scipy.stats.chi2_contingency(observed, lambda_=None correction=False)

Где параметры:

  • observed (array_data): таблица непредвиденных обстоятельств. Наблюдаемые частоты(количество случаев) каждой категории указаны в таблице.
  • lambda_ (str или float): статистика хи-квадрат Пирсона является статистикой по умолчанию, вычисляемой в этом тесте. Вместо этого лямбда_ позволяет вам использовать статистику из семейства степенных расхождений Кресси-Рида.
  • correction (логическое значение): применить поправку Йейтса для непрерывности, если значение True и степени свободы равны. Коррекция приводит к корректировке каждого наблюдаемого значения на 0,5 в направлении ожидаемого значения.

Метод chi2_contingency() возвращает chi (статистику теста), p (значение p теста), dof (степень свободы) и ожидаемое значение (ожидаемые частоты).

Давайте рассмотрим пример, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy import stats
  • Создайте массив, содержащий значения наблюдений, используя приведенный ниже код.
observation = np.array([[5, 5, 5], [8, 8, 8]])

Передайте наблюдение методу chi2_contengency() для проверки независимости переменных, используя приведенный ниже код.

stats.chi2_contingency(observation)

Метод chi2_contingency()

Таблица непредвиденных обстоятельств

В статистике таблица сопряженности (иногда называемая перекрестной таблицей) обобщает связи между несколькими категориальными переменными. Мы рассмотрим таблицу, показывающую количество мужчин и женщин, купивших различные виды фруктов.

Яблоко манго Банан Клубника
женщины 203 150 190 305
Мужчины 195 170 250 400
сумма 398 320 440 705

Цель теста — определить, связаны ли между собой две переменные: пол и предпочтение фруктов.

Начнем с формулировки нулевой гипотезы (H0), которая утверждает, что переменные не имеют никакой связи. Альтернативная гипотеза (H1) заключается в том, что между ними существует значительная связь.

Теперь мы будем использовать метод chi2_contingency() для проверки вышеуказанной гипотезы, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.stats import chi2_contingency
  • Создайте таблицу, используя массив, который мы создали выше, используя приведенный ниже код.
tab_data = [[203, 150, 190, 305], [195, 170, 250, 400]]
  • Выполните тест, используя метод chi2_contingency(), используя приведенный ниже код.
chi2_contingency(tab_data)

Таблица непредвиденных обстоятельств теста Python Scipy Chi Square

Из приведенного выше вывода мы видим, что значение p больше 0,5, что означает независимость между вышеуказанными переменными, полом и фруктами.

Категориальные переменные

Мы уже знаем о тесте хи-квадрат и о том, существует ли связь между двумя категориальными переменными или нет. Для выполнения этого теста мы использовали метод chisquare() модуля scipy.stats.

Давайте возьмем пример, выполнив следующие шаги, где наши данные будут категориальными:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
import numpy as np
from scipy.stats import chisquare
  • Создайте два типа данных: первый содержит данные о фактическом количестве часов, которые посетители проводят на веб-сайте «pythonguides.com», а другой — ожидаемое время, которое посетитель проводит на веб-сайте, используя приведенный ниже код.
obs_data = [3,8,6,5,7,10]
exp_data = [4,6,7,8,1,2]
  • Передайте эти два данных в метод chisquare(), чтобы проверить связь между этими двумя категориальными переменными, используя приведенный ниже код.
chisquare(obs_data,exp_data)

Категориальные переменные Python Scipy Chi Square Test

Глядя на приведенный выше вывод, нас интересует значение p, которое показывает связь между категориальными переменными, и значение p-значения составляет 9,380 с чем-то.

Значение p больше 0,5, что означает отсутствие связи между двумя вышеуказанными категориальными переменными.

Нормальное распределение

Здесь, в этом разделе, мы будем использовать метод chisquare() Python SciPy, чтобы проверить, принадлежит ли выборка к нормальному распределению или нет.

Давайте разберемся на примере, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy import stats
import numpy as np
  • Сгенерируйте данные, содержащие значения нормального распределения, используя приведенный ниже код.
norm_data = np.random.normal(10,3,200)
  • Выполните проверку нормальности, используя приведенный ниже код.
stats.chisquare(norm_data)

Python Scipy Chi Square Test Нормальное распределение

Из выходных данных мы видим, что значение p больше 0,5, что означает, что выборочные данные принадлежат к нормальному распределению.

Проверка на соответствие

Чтобы проверить, соответствует ли категориальная переменная прогнозируемому распределению, используется критерий соответствия хи-квадрат. В модуле scipy.stats есть метод chisquare().

Давайте рассмотрим пример, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy.stats import chisquare
  • Предположим, мы ожидаем одинаковое количество посетителей на нашем сайте pythonguides.com каждый день недели. Чтобы проверить это ожидание или гипотезу, количество клиентов, посещающих веб-сайт, фиксируется для каждого дня недели.

Создайте два массива для хранения количества посетителей на веб-сайте для ожидаемых и наблюдаемых посетителей, используя приведенный ниже код.

exp = [90, 90, 90, 90, 90]
obs = [40, 70, 60, 50, 85]
  • Критерий соответствия хи-квадрат — это то, что мы можем сделать с этими данными, чтобы проверить гипотезу. Используйте метод chisquare() и созданные выше массивы exp и obs.
chisquare(obs,exp)

Проверка на соответствие

Значение p для теста хи-квадрат составляет 2,53, а статистика теста хи-квадрат равна 60,36.

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

  • H0: Распределение переменной основано на гипотезе.
  • H1: переменная отличается от ожидаемого распределения.

Мы можем отвергнуть нулевую гипотезу, поскольку значение p(2,53) больше 0,05. Если вы не знаете о гипотезе, прочитайте подраздел ниже «Р-значение теста хи-квадрат Python Scipy».

P-значение

Значение p используется для измерения значимости ваших результатов относительно нулевой гипотезы при выполнении тестов хи-квадрат.

Чтобы понять, как используется p-значение, нам нужно знать о гипотезе. Обоснованное предположение о чем-то в окружающем нас мире и есть гипотеза. Оно должно быть наблюдаемым или проверяемым.

Существует два вида гипотез:

  • Нулевая гипотеза (H0): нулевая гипотеза теста всегда предсказывает отсутствие эффекта или связи между переменными.
  • Альтернативная гипотеза (H1): альтернативная гипотеза — это заявление о том, что две измеримые переменные имеют некоторую статистическую значимость.

Теперь, когда мы знаем о нулевой гипотезе, следует ли нам принять нулевую или альтернативную гипотезу, такого рода решение можно принять, используя значение p:

  • В общем, если ценность гипотезы меньше 0,5, это дает существенные доказательства против нулевой гипотезы, поскольку вероятность того, что нулевая гипотеза окажется верной, составляет менее 5%. В результате нулевая гипотеза отклоняется, тогда как альтернативная гипотеза принимается.
  • Значение p, большее или равное 0,05, не является статистически значимым и предполагает сильную поддержку нулевой гипотезы. Это означает, что нулевая гипотеза сохраняется, а альтернативная гипотеза отклоняется.
Добавить комментарий