Как выполнить один образец и два образца Z-тестов в Python


Вы можете использовать функцию ztest() из пакета statsmodels для выполнения одного и двух образцов z-тестов в Python.

Эта функция использует следующий базовый синтаксис:

statsmodels. stats.weightstats.ztest ( *x1* , *x2 = None* , *value = 0 )*

куда:

  • x1 : значения для первого образца
  • x2 : значения для второй выборки (при выполнении двухвыборочного z-теста)
  • значение : среднее значение под нулем (в случае с одним образцом) или среднее значение разницы (в случае с двумя образцами)

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1: один образец Z-теста в Python

Предположим, что IQ в определенной популяции имеет нормальное распределение со средним значением μ = 100 и стандартным отклонением σ = 15.

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

В следующем коде показано, как выполнить z-тест с одним образцом в Python, чтобы определить, вызывает ли новый препарат значительную разницу в уровнях IQ:

from statsmodels. stats.weightstats import ztest as ztest

#enter IQ levels for 20 patients
data = [88, 92, 94, 94, 96, 97, 97, 97, 99, 99,
 105, 109, 109, 109, 110, 112, 112, 113, 114, 115]

#perform one sample z-test
ztest(data, value= 100 )

(1.5976240527147705, 0.1101266701438426)

Статистика теста для одного выборочного z-теста составляет 1,5976 , а соответствующее значение p равно 0,1101 .

Поскольку это p-значение не меньше 0,05, у нас нет достаточных доказательств, чтобы отклонить нулевую гипотезу. Другими словами, новый препарат не оказывает существенного влияния на уровень IQ.

Пример 2: два образца Z-теста в Python

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

Исследователь хочет знать, различаются ли средние уровни IQ между людьми в городе А и городе Б, поэтому он выбирает простую случайную выборку из 20 человек из каждого города и записывает их уровни IQ.

В следующем коде показано, как выполнить двухвыборочный z-тест на Python, чтобы определить, отличается ли средний уровень IQ между двумя городами:

from statsmodels. stats.weightstats import ztest as ztest

#enter IQ levels for 20 individuals from each city
cityA = [82, 84, 85, 89, 91, 91, 92, 94, 99, 99,
 105, 109, 109, 109, 110, 112, 112, 113, 114, 114]

cityB = [90, 91, 91, 91, 95, 95, 99, 99, 108, 109,
 109, 114, 115, 116, 117, 117, 128, 129, 130, 133]

#perform two sample z-test
ztest(cityA, cityB, value= 0 ) 

(-1.9953236073282115, 0.046007596761332065)

Статистика теста для двух выборочных z-тестов составляет -1,9953 , а соответствующее значение p равно 0,0460 .

Поскольку это p-значение меньше 0,05, у нас есть достаточно доказательств, чтобы отклонить нулевую гипотезу. Другими словами, средний уровень IQ значительно различается между двумя городами.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные статистические тесты в Python:

Как провести Т-тест с одним образцом в Python
Как провести T-тест с двумя выборками в Python
Как провести T-тест для парных выборок в Python