Вы можете использовать функцию 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