Проверка значимости Scipy

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

Проверка значимости — это метод, используемый для определения того, существует ли различие между экспериментальной группой лечения и контрольной группой или между эффектами двух разных методов лечения, и является ли это различие значимым.

SciPy предоставляет модуль scipy.stats для выполнения функций проверки значимости Scipy.

Статистическая гипотеза

Статистическая гипотеза — это гипотеза о неизвестном распределении одной или нескольких случайных величин. Статистическая гипотеза, в которой вид распределения случайной величины известен и которая включает только один или несколько неизвестных параметров распределения, называется параметрической гипотезой. Процесс проверки статистических гипотез называется проверкой гипотез, а критерий, используемый для проверки параметрических гипотез, называется параметрическим критерием.

Нулевая гипотеза

Нулевая гипотеза — статистический термин, также называемый исходной гипотезой, обозначает гипотезу, выдвигаемую заранее при проведении статистических проверок. Когда нулевая гипотеза справедлива, соответствующая статистика должна подчиняться известному распределению вероятностей.

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

Гипотеза, подлежащая проверке, часто обозначается как H0 и называется нулевой гипотезой, а гипотеза, противоположная H0, обозначается как H1 и называется альтернативной гипотезой.

  • Когда нулевая гипотеза верна, решение отклонить нулевую гипотезу называется ошибкой первого рода, и вероятность её возникновения обычно обозначается какα;
  • Когда нулевая гипотеза неверна, решение не отклонять нулевую гипотезу называется ошибкой второго рода, и вероятность её возникновения обычно обозначается какβ
  • α+β не обязательно равно 1.

Обычно ограничивают только максимальную вероятность совершить ошибку первого родаα, а вероятность совершить ошибку второго рода не учитываютβ. Такая проверка гипотезы также называется проверкой значимости, а вероятностьαназывается уровнем значимости.

Наиболее часто используемыеαзначения — 0.01, 0.05, 0.10 и т. д. В общем, в зависимости от исследовательской задачи, если отклонение истинной гипотезы приводит к большим потерям, то чтобы уменьшить такие ошибки,αберут меньшее значение; наоборот,αберут большее значение.

Альтернативная гипотеза

Альтернативная гипотеза — одно из основных понятий статистики. Она содержит все утверждения о распределении генеральной совокупности, которые делают нулевую гипотезу недействительной. Альтернативную гипотезу также называют противоположной гипотезой или альтернативной гипотезой.

Альтернативная гипотеза может заменить нулевую гипотезу.

Например, для оценки студентов мы будем использовать:

"Students are worse than average" — as the null hypothesis

Односторонний тест

Односторонний тест, также называемый однохвостовым критерием, также известный как односторонний тест. В проверке гипотез метод использования площади одностороннего хвоста в области, ограниченной кривой плотности распределения тестовой статистики и осью, для построения критической области для проверки называется односторонним тестом.

Когда наша гипотеза проверяет только одну сторону значения, это называется «однохвостовым тестом».

Пример:

Для нулевой гипотезы:

“均值等于 k”

Мы можем иметь альтернативную гипотезу:

“平均值小于 k”
или 
“平均值大于 k”

Двусторонний тест

Двусторонний тест, также называемый двухвостовым критерием или двусторонним тестом. В проверке гипотез метод, использующий площади хвостов слева и справа от области, ограниченной кривой плотности распределения тестовой статистики и осью x, для построения критической области для проверки.

Когда наша гипотеза проверяет обе стороны значения.

Пример:

Для нулевой гипотезы:

“均值等于 k”

Мы можем иметь альтернативную гипотезу:

“均值不等于k”

В этом случае среднее меньше или больше k, и нужно проверить обе стороны.

Значение альфа

Значение альфа — это уровень значимости.

Уровень значимости — это вероятность совершить ошибку при оценке того, что параметр генеральной совокупности попадает в определённый интервал, обозначаемый какαуказано.

Насколько близкими к экстремальным должны быть данные, чтобы отвергнуть нулевую гипотезу.

Обычно принимается равным 0.01, 0.05 или 0.1.

P-значение

P-значение показывает, насколько близки данные к экстремальным на самом деле.

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

Если p-значение <= альфа, мы отвергаем нулевую гипотезу и говорим, что данные статистически значимы; в противном случае мы принимаем нулевую гипотезу.

T-тест

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

Это двусторонний тест.

Функция ttest_ind() принимает две выборки одинакового размера и генерирует кортеж из t-статистики и p-значения.

Определите, происходят ли заданные значения v1 и v2 из одного и того же распределения:

Пример

import numpy as np
from scipy.stats import ttest_ind

v1 = np.random.normal(size=100)
v2 = np.random.normal(size=100)

res = ttest_ind(v1, v2)

print(res)

Результат вывода:

Ttest_indResult(statistic=0.40833510339674095, pvalue=0.68346891833752133)

Если вы хотите вернуть только p-значение, используйте свойство pvalue:

Пример

import numpy as np
from scipy.stats import ttest_ind

v1 = np.random.normal(size=100)
v2 = np.random.normal(size=100)

res = ttest_ind(v1, v2).pvalue

print(res)

Результат вывода:

0.68346891833752133

KS-тест

KS-тест используется для проверки того, соответствует ли заданное значение распределению.

Эта функция принимает два параметра: проверяемое значение и CDF.

CDF — это кумулятивная функция распределения, также называемая функцией распределения.

CDF может быть строкой или вызываемой функцией, возвращающей вероятность.

Его можно использовать как односторонний или двусторонний тест.

По умолчанию это двусторонний тест. Мы можем передать параметр alternative как одну из строк "two-sided", "less" или "greater".

Определить, соответствует ли заданное значение нормальному распределению:

Пример

import numpy as np
from scipy.stats import kstest

v = np.random.normal(size=100)

res = kstest(v, 'norm')

print(res)

Результат вывода:

KstestResult(statistic=0.047798701221956841, pvalue=0.97630967161777515)

Статистическое описание данных

С помощью функции describe() можно просмотреть информацию о массиве, включая следующие значения:

  1. nobs -- количество наблюдений
  2. minmax -- минимальное и максимальное значения
  3. mean -- среднее арифметическое
  4. variance -- дисперсия
  5. skewness -- асимметрия
  6. kurtosis -- эксцесс

Вывести информацию статистического описания массива:

Пример

import numpy as np
from scipy.stats import describe

v = np.random.normal(size=100)
res = describe(v)

print(res)

Результат вывода:

DescribeResult(
    nobs=100,
    minmax=(-2.0991855456740121, 2.1304142707414964),
    mean=0.11503747689121079,
    variance=0.99418092655064605,
    skewness=0.013953400984243667,
    kurtosis=-0.671060517912661
  )

Проверка нормальности (асимметрия и эксцесс)

Критерий, использующий наблюдаемые данные для определения того, подчиняется ли генеральная совокупность нормальному распределению, называется критерием нормальности. Это важный специальный критерий согласия в статистическом принятии решений.

Критерий нормальности основан на асимметрии и эксцессе.

Функция normaltest() возвращает p-значение нулевой гипотезы:

“x 来自正态分布”

Асимметрия

Мера симметрии данных.

Для нормального распределения она равна 0.

Если она отрицательна, это означает, что данные скошены влево.

Если она положительна, это означает, что данные скошены вправо.

Эксцесс

Мера того, имеют ли данные тяжёлые хвосты или лёгкие хвосты по сравнению с нормальным распределением.

Положительный эксцесс означает тяжёлые хвосты.

Отрицательный эксцесс означает лёгкие хвосты.

Найдите асимметрию и эксцесс значений в массиве:

Пример

import numpy as np
from scipy.stats import skew, kurtosis

v = np.random.normal(size=100)

print(skew(v))
print(kurtosis(v))

Результат вывода:

 0.11168446328610283
  -0.1879320563260931

Определите, подчиняются ли данные нормальному распределению:

Пример

import numpy as np
from scipy.stats import normaltest

v = np.random.normal(size=100)

print(normaltest(v))

Результат вывода:

NormaltestResult(statistic=4.4783745697002848, pvalue=0.10654505998635538)
Другие расширения