machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Как использовать параметрические тесты статистической значимости в Python

Дата публикации 2018-05-18

Параметрические статистические методы часто означают те методы, которые предполагают, что выборки данных имеют гауссово распределение.

в прикладном машинном обучении нам необходимо сравнить выборки данных, в частности, среднее значение выборок. Возможно, чтобы увидеть, работает ли один метод лучше, чем другой, в одном или нескольких наборах данных. Чтобы количественно оценить этот вопрос и интерпретировать результаты, мы можем использовать методы тестирования параметрических гипотез, такие как t-критерий Стьюдента и ANOVA.

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

После завершения этого урока вы узнаете:

  • T-критерий Стьюдента для количественной оценки разницы между средним двух независимых выборок данных.
  • Парный t-критерий Стьюдента для количественной оценки разницы между средним двух зависимых выборок данных.
  • ANOVA и повторные измерения ANOVA для проверки сходства или разницы между средними 2 или более выборок данных.

Давайте начнем.

  • Обновлено май / 2018: Улучшенный язык вокруг отклонения против неспособности отклонить статистические тесты.

Обзор учебника

  1. Параметрические тесты статистической значимости
  2. Тестовые данные
  3. Студенческий т-тест
  4. Парный студенческий t-тест
  5. Анализ дисперсионного теста
  6. Повторные измерения ANOVA Test

Параметрические тесты статистической значимости

Параметрические статистические тесты предполагают, что выборка данных была взята из определенного распределения населения.

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

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

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

Значение p можно интерпретировать в контексте выбранного уровня значимости, называемого альфа. Обычное значение для альфа составляет 5%, или 0,05. Если значение p ниже уровня значимости, то тест говорит, что имеется достаточно доказательств, чтобы отвергнуть нулевую гипотезу, и что выборки, вероятно, были взяты из популяций с различным распределением.

  • p & lt; = альфа: отвергнуть нулевую гипотезу, другое распределение.
  • p & gt; альфа: не в состоянии отклонить нулевую гипотезу, то же самое распределение.

Тестовые данные

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

Мы сгенерируем две выборки из разных дистрибутивов. Каждый образец будет взят из распределения Гаусса.

Мы будем использоватьфункция randn () NumPyдля генерации выборки из 100 гауссовских случайных чисел в каждой выборке со средним значением 0 и стандартным отклонением 1. Наблюдения в первой выборке масштабируются до среднего 50 и стандартного отклонения 5. Наблюдения во второй выборке масштабируется, чтобы иметь среднее значение 51 и стандартное отклонение 5.

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

Полный пример кода приведен ниже.

# generate gaussian data samples
from numpy.random import seed
from numpy.random import randn
from numpy import mean
from numpy import std
# seed the random number generator
seed(1)
# generate two sets of univariate observations
data1 = 5 * randn(100) + 50
data2 = 5 * randn(100) + 51
# summarize
print('data1: mean=%.3f stdv=%.3f' % (mean(data1), std(data1)))
print('data2: mean=%.3f stdv=%.3f' % (mean(data2), std(data2)))

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

data1: mean=50.303 stdv=4.426
data2: mean=51.764 stdv=4.660

Студенческий т-тест

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

Одним из наиболее часто используемых t-тестов является t-критерий независимых выборок. Этот тест используется, когда вы хотите сравнить средние значения двух независимых выборок по заданной переменной.

- страница 93,Статистика на простом английскомТретье издание, 2010.

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

  • Не в состоянии отклонить H0: Распределения выборки равны
  • Отклонить H0: Распределения выборки не равны.

T-тест Студента доступен на Python черезФункция ttest_ind () SciPy, Функция принимает две выборки данных в качестве аргументов и возвращает вычисленную статистику и значение p.

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

# Student's t-test
from numpy.random import seed
from numpy.random import randn
from scipy.stats import ttest_ind
# seed the random number generator
seed(1)
# generate two independent samples
data1 = 5 * randn(100) + 50
data2 = 5 * randn(100) + 51
# compare samples
stat, p = ttest_ind(data1, data2)
print('Statistics=%.3f, p=%.3f' % (stat, p))
# interpret
alpha = 0.05
if p > alpha:
	print('Same distributions (fail to reject H0)')
else:
	print('Different distributions (reject H0)')

При выполнении примера вычисляется t-критерий Стьюдента на сгенерированных выборках данных и выводится статистика и значение p.

Интерпретация статистики обнаруживает, что выборочные средние значения различаются со значением не менее 5%.

Statistics=-2.262, p=0.025
Different distributions (reject H0)

Парный студенческий т-тест

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

Например, образцы данных могут представлять две независимые меры или оценки одного и того же объекта. Эти выборки данных повторяются или зависят и называются парными выборками или повторными измерениями.

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

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

- страница 94,Статистика на простом английскомТретье издание, 2010.

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

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

  • Не в состоянии отклонить H0: Парные выборки распределены одинаково.
  • Отклонить H0: Парные выборки распределений не равны.

Парный t-тест Стьюдента может быть реализован на Python с использованиемФункция ttest_rel () SciPy, Как и в случае непарной версии, функция принимает в качестве аргументов две выборки данных и возвращает вычисленную статистику и значение p.

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

Полный пример приведен ниже.

# Paired Student's t-test
from numpy.random import seed
from numpy.random import randn
from scipy.stats import ttest_rel
# seed the random number generator
seed(1)
# generate two independent samples
data1 = 5 * randn(100) + 50
data2 = 5 * randn(100) + 51
# compare samples
stat, p = ttest_rel(data1, data2)
print('Statistics=%.3f, p=%.3f' % (stat, p))
# interpret
alpha = 0.05
if p > alpha:
	print('Same distributions (fail to reject H0)')
else:
	print('Different distributions (reject H0)')

При выполнении примера вычисляется и распечатывается статистика теста и значение p. Интерпретация результата предполагает, что образцы имеют разные средние значения и, следовательно, разные распределения.

Statistics=-2.372, p=0.020
Different distributions (reject H0)

Анализ дисперсионного теста

Иногда возникают ситуации, когда у нас может быть несколько независимых выборок данных.

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

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

  • Не в состоянии отклонить H0: Все примеры распределений одинаковы.
  • Отклонить H0: Одно или несколько примеров распределений не равны.

Важно отметить, что тест может только прокомментировать, являются ли все образцы одинаковыми или нет; он не может количественно определить, какие образцы отличаются или насколько.

Цель одностороннего дисперсионного анализа (односторонний ANOVA) состоит в том, чтобы сравнить средние значения двух или более групп (независимой переменной) по одной зависимой переменной, чтобы увидеть, значительно ли отличаются групповые значения друг от друга.

- страница 105,Статистика на простом английскомТретье издание, 2010.

Тест требует, чтобы выборки данных были гауссовским распределением, чтобы выборки были независимыми и чтобы все выборки данных имели одинаковое стандартное отклонение.

Тест ANOVA можно выполнить в Python, используяf_oneway () функция SciPy, Функция принимает две или более выборки данных в качестве аргументов и возвращает статистику теста и значение f.

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

Полный пример приведен ниже.

# Analysis of Variance test
from numpy.random import seed
from numpy.random import randn
from scipy.stats import f_oneway
# seed the random number generator
seed(1)
# generate three independent samples
data1 = 5 * randn(100) + 50
data2 = 5 * randn(100) + 50
data3 = 5 * randn(100) + 52
# compare samples
stat, p = f_oneway(data1, data2, data3)
print('Statistics=%.3f, p=%.3f' % (stat, p))
# interpret
alpha = 0.05
if p > alpha:
	print('Same distributions (fail to reject H0)')
else:
	print('Different distributions (reject H0)')

При выполнении примера вычисляется и распечатывается статистика теста и значение p

Интерпретация p-значения правильно отвергает нулевую гипотезу, указывающую, что одно или несколько выборочных средних отличаются.

Statistics=3.655, p=0.027
Different distributions (reject H0)

Повторные измерения ANOVA Test

У нас может быть несколько образцов данных, которые связаны или зависят каким-либо образом.

Например, мы можем повторить одни и те же измерения на объекте в разные периоды времени. В этом случае образцы больше не будут независимыми; вместо этого у нас будет несколько парных образцов.

Мы могли бы повторить попарный критерий Стьюдента несколько раз. Кроме того, мы можем использовать один тест, чтобы проверить, имеют ли все образцы одинаковое среднее значение. Можно использовать вариант теста ANOVA, модифицированный для тестирования более чем 2 образцов. Этот тест называется тестом ANOVA с повторными измерениями.

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

  • Не в состоянии отклонить H0: Все парные выборочные распределения одинаковы.
  • Отклонить H0: Одно или несколько парных распределений выборок не равны.

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

- страница 131,Статистика на простом английскомТретье издание, 2010.

К сожалению, на момент написания, в SciPy нет версии теста ANOVA для повторных измерений. Надеюсь, этот тест будет добавлен в ближайшее время.

Я упоминаю этот тест на полноту, если вам требуется его в вашем проекте и вы можете найти и найти альтернативную реализацию.

расширения

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

  • Обновите все примеры для работы с образцами данных, имеющими одинаковое распределение.
  • Создайте блок-схему для выбора каждого из трех тестов статистической значимости с учетом требований и поведения каждого теста.
  • Рассмотрим 3 случая сравнения выборок данных в проекте машинного обучения, предположим, что распределение выборок негауссово, и предложите тип теста, который можно использовать в каждом случае.

Если вы исследуете какое-либо из этих расширений, я хотел бы знать.

Дальнейшее чтение

Этот раздел предоставляет больше ресурсов по теме, если вы хотите углубиться.

книги

API

статьи

Резюме

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

В частности, вы узнали:

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

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

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map