如何在 python 中运行一个示例和两个 z 测试示例
您可以使用statsmodels包中的ztest()函数在 Python 中执行一个示例和两个示例 z 测试。
该函数使用以下基本语法:
statsmodels. stats . weightstats . ztest ( x1 , x2 = None , value = 0 )
金子:
- x1 :第一个样本的值
- x2 :第二个样本的值(如果您正在执行双样本 z 检验)
- value :平均值低于零(在一个样本情况下)或平均差(在两个样本情况下)
以下示例展示了如何在实践中使用此功能。
示例 1:Python 中的 Z 测试示例
假设某个人群的智商呈正态分布,平均值为 μ = 100,标准差为 σ = 15。
研究人员想知道一种新药是否会影响智商水平。于是他招募了 20 名患者来尝试并记录他们的智商水平。
以下代码展示了如何在 Python 中执行示例 z 检验,以确定新药是否会导致 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,因此我们没有足够的证据来拒绝原假设。也就是说,新药并不会显着影响智商水平。
示例 2:Python 中的两个 Z 测试示例
假设两个不同城市的个体智商水平呈正态分布,且标准差已知。
一位研究人员想知道 A 城市和 B 城市个体的平均智商水平是否不同。因此,她从每个城市随机抽取 20 个人作为样本,并记录他们的智商水平。
以下代码演示了如何在 Python 中执行两个样本 z 检验,以确定两个城市之间的平均 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,因此我们有足够的证据来拒绝原假设。换句话说,两个城市的平均智商水平存在显着差异。
其他资源
以下教程解释了如何在 Python 中执行其他常见的统计测试:
如何在 Python 中执行单样本 T 检验
如何在 Python 中执行两个样本 T 检验
如何在 Python 中执行配对样本 T 检验