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

В этом руководстве мы узнаем о «Python Scipy Ttest_ind» для оценки средних значений одной или нескольких совокупностей посредством проверки гипотез и о том, как его реализовать с помощью Python Scipy.

Содержание

Что такое Т-тест в статистике

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

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

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

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

Как вычислить

В Python Scipy есть метод ttest_ind() в модуле scipy.stats. Это проверка нулевой гипотезы о том, что средние значения двух независимых выборок одинаковы.

Этот тест предполагает, что дисперсии популяций идентичны.

Синтаксис:

scipy.stats.ttest_ind(a, b, axis=0, nan_policy='propagate', equal_var=False,  permutations=None, random_state=None, trim=0, alternative='two-sided')

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

  • a,b  (array_data): массивы должны быть идентичными по форме, за исключением измерения, соответствующего оси.
  • axis (int): ось, по которой вычисляется тест. Вычислите, используя целые массивы a и b, если нет.
  • nan_policy: объясняет, что делать, если входные данные содержат nan. Доступны следующие варианты(«распространение» — значение по умолчанию):
  1. «distribution»: возвращается nan.
  2. «raise»: выдает ошибку
  3. «omit»: вычисления выполняются без учета значений nan.
  • Equal_var (boolean): выполнить типичный независимый тест с двумя выборками с одинаковыми дисперсиями генеральной совокупности, если значение True (по умолчанию). Если значение ложно, выполните t-критерий Уэлча, который не требует равной дисперсии среди генеральной совокупности.
  • permutations: вычисление p-значений с использованием t-распределения, если выбрано 0 или None (по умолчанию). В противном случае количество случайных перестановок, которые будут использоваться для расчета p-значений для теста перестановок, называется перестановками. Вместо него проводится точный тест, если количество перестановок равно или превышает количество различных разделов объединенных данных.
  • random_state (int, генератор numpy): numpy.random используется, если начальное значение равно None (или np.random). Он использует синглтон RandomState. Если начальное число является целым числом, создается новый экземпляр RandomState и заполняется этим начальным значением. Экземпляр Generator или RandomState используется, если начальное число уже имеет его. Состояние генератора псевдослучайных чисел, используемого для создания перестановок.
  • Trim (float): выполняет усеченный (Юэнь) t-критерий, если результат не равен нулю. указывает, сколько элементов с обоих концов входных выборок следует удалить. Если 0 (по умолчанию), обрезка компонентов с обеих сторон выполняться не будет. Пол обрезки, умноженный на количество деталей, — это количество обрезанных элементов с каждого хвоста. Допустимый диапазон: [0, 5].
  • alternative: описывает альтернативную гипотезу. Доступны следующие варианты (по умолчанию — «двусторонний»):
  1. «Двусторонний» означает, что средние значения распределений, из которых взяты выборки, не равны.
  2. Среднее значение основного распределения первой выборки ниже среднего значения основного распределения второй выборки, которое выражается как «меньше».
  3. «Больше» означает, что среднее значение распределения для первой выборки выше, чем среднее значение распределения второй выборки.

Метод ttest_ind() возвращает статистику и значение pvalue массива типа float.

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

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
import numpy as np
from scipy.stats import norm, ttest_ind
  • Определите генератор случайных чисел, используя np.random.default_rng(), и сгенерируйте две выборки из нормального распределения теми же средствами, используя методnormal.rvs().
rnd_num_gen = np.random.default_rng()
samp1 = norm.rvs(loc=3, scale=7, size=250, random_state=rnd_num_gen)
samp2 = norm.rvs(loc=3, scale=7, size=250, random_state=rnd_num_gen)
  • Теперь выполните Т-тест на образцах теми же средствами, используя приведенный ниже код.
ttest_ind(samp1,samp2)

ttest_ind в Python Scipy

Здесь ttest_ind возвращает два значения: статистику = 0,295 и pvalue = 0,76.

Метод ttest_ind()

Альтернативный параметр метода ttest_ind() используется для описания альтернативной гипотезы.

Альтернативный параметр принимает следующие параметры.

  1. «двусторонний»: означает, что средние значения распределений, из которых взяты выборки, не равны.
  2. «меньше»: среднее значение основного распределения первой выборки ниже, чем среднее значение основного распределения второй выборки, которое выражается как «меньше».
  3. «больше»: означает, что среднее значение распределения для первой выборки выше, чем среднее значение распределения второй выборки.

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

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
from scipy.stats import ttest_ind
  • Создайте образец, используя приведенный ниже код.
samp_1 = [[1.2,2.1,5.6,1.3],[3.4,2.1,1.6,4.8]]
samp_2 = [[2.4,1.1,3.6,5.8],[0.2,4.1,2.6,6.3]]
  • Примените Т-тест с альтернативной гипотезой, равной двусторонней.
ttest_ind(samp_1,samp_2,axis =1,alternative='two-sided')

Метод ttest_ind()

Снова примените Т-тест с альтернативной гипотезой, равной меньшему.

Альтернатива Python Scipy

Теперь снова проведите Т-тест с альтернативной гипотезой, равной большей.

Альтернатива ttest_ind больше

Вот как использовать альтернативную гипотезу с помощью Python SciPy ttest_ind.

Читайте: Собственные значения Python Scipy.

Параметр nan_policy

Метод ttest_ind() принимает параметр nan_policy для обработки значений nan в массивах или выборках.

  • nan_policy: объясняет, что делать, если входные данные содержат nan. Доступны следующие варианты(«распространение» — значение по умолчанию):
  1. «distribution»: возвращается nan.
  2. «raise»: выдает ошибку
  3. «omit»: вычисления выполняются без учета значений nan.

Давайте посмотрим на примерах, как обрабатывать значения nan в массивах или выборках при выполнении T-теста:

  • Импортируйте необходимые методы или библиотеки, используя приведенный ниже код Python.
from scipy.stats import ttest_ind
import numpy as np
  • Сгенерируйте данные со значениями nan, используя приведенный ниже код.
data1 = np.random.randn(30)
data2 = np.random.randn(30)
mask_nan = np.random.choice([1, 0], data1.shape, p=[.1, .9]).astype(bool)
data1[mask_nan] = np.nan
data2[mask_nan] = np.nan
  • Выполните T-тест для данных с nan_policy, равным подъему, используя приведенный ниже код.
ttest_ind(data1,data2, nan_policy='raise')

параметр nan_policy

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

ttest_ind(data1,data2, nan_policy='omit')

равный omit

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

ttest_ind(data1,data2, nan_policy='propagate')

Обработка значения nan

Вывод

Метод ttest_ind() Python Scipy возвращает или выводит два значения после выполнения T-теста на образце. Первое значение — это статистика, а второе — значение pvalue.

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

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

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
from scipy.stats import ttest_ind
  • Сгенерируйте два образца данных, используя приведенный ниже код.
sample_1 = [2.4,5.1,2.6,1.8]
sample_2 = [1.4,2.1,5.6,3.8]
  • Выполните Т-тест, чтобы получить два значения, которые мы обсуждали выше.
ttest_ind(sample_1,sample_2)

Вывод Python Scipy ttest_ind

Параметр оси

Параметр оси метода ttest_ind() Python Scipy позволяет нам вычислить T-тест вдоль указанной оси данного массива или образца.

Предоставленный двумерный массив имеет две оси: одна проходит вертикально по строкам — ось 1, а другая — горизонтально по столбцам — ось 0.

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

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
from scipy.stats import ttest_ind
  • Сгенерируйте образец данных, используя приведенный ниже код.
samp_1 = [[1.2,2.1,5.6,1.3],[2.4,1.1,3.6,5.8]]
samp_2 = [[2.4,1.1,3.6,5.8],[1.2,2.1,5.6,1.3]]
  • Выполните T-тест для всего массива, который используется по умолчанию.
ttest_ind(samp_1,samp_2)
  • Теперь вычислите T-тест по указанной оси данных, используя приведенный ниже код.
ttest_ind(samp_1,samp_2,axis =1)

Параметр оси

Параметр qual_var

Если у нас есть выборки данных с равными дисперсиями, то что мы будем делать в этом случае? Мы будем использовать параметр qual_var метода ttest_ind() логического типа Python Scipy.

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

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

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код.
import numpy as np
from scipy.stats import norm, ttest_ind
  • Сгенерируйте данные с равной дисперсией, используя приведенный ниже код.
rnd_num_gen = np.random.default_rng()
samp1 = norm.rvs(loc=4, scale=5, size=100, random_state=rnd_num_gen)
samp2 = norm.rvs(loc=4, scale=5, size=200, random_state=rnd_num_gen)
  • Вычислите Т-тест для приведенного выше образца с равными дисперсиями, используя приведенный ниже код.
ttest_ind(samp1,samp2)

с равными дисперсиями

Статистика

Метод ttest_ind() Python Scipy возвращает значение t-статистики.

Т-статистика измеряет, насколько оценочное значение параметра отклоняется от его предполагаемого значения относительно его стандартной ошибки.

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

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
from scipy.stats import ttest_ind
  • Сгенерируйте образец данных, используя приведенный ниже код.
samp_data1 = [[0.2,5.1,1.6,1.3],[2.4,1.1,3.6,5.8]]
samp_data2 = [[1.4,2.1,5.6,3.8],[2.2,5.1,1.6,5.3]]
  • Вычислите T-тест и получите значение t-статистики, используя приведенный ниже код.
ttest_ind(samp_data1,samp_data2)

Статистика

Степени свободы

Во-первых, мы узнаем о том: «Что такое степени свободы?». Количество независимых точек данных, используемых для расчета оценки, называется степенью свободы оценки.

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

Представьте, что мы ищем среднюю потерю веса для диеты. Один из вариантов — использовать 50 человек с df = 49 или 10 человек с 9 степенями свободы(10 – 1 = 9).

Количество значений в коллекции данных, которые можно свободно изменять, — это еще один способ подумать о степенях свободы. «Свобода перемен» – что это значит? Среднее значение(среднее) используется в следующем примере:

Выберите группу чисел со средним значением 10, как мы могли бы выбрать из следующих наборов чисел: 7, 9, 11, 2, 10, 9 или 4, 8, 12.

Третье число в наборе фиксируется после того, как мы выбрали первые два. Другими словами, мы не можем выбрать третий кусок из группы. Первые два числа — единственные, которые могут меняться. Мы можем выбрать 7 + 9 или 2 + 10, но как только мы сделали свой выбор, мы должны выбрать конкретное число, которое даст желаемое среднее значение. Следовательно, набор из трех чисел имеет ДВЕ степени свободы.

Добавить комментарий