python实现假设检验-z检验

一. 什么是z检验

当总体服从正太分布 N ( μ , δ 2 ) N(\mu, \delta^2) N(μ,δ2)时,统计量 z = X ‾ − μ δ / n z = \frac{\overline{X} - \mu}{\delta/\sqrt{n}} z=δ/n Xμ服从标准正太分布,因此可以利用该统计量对样本均值 X ‾ \overline{X} X进行假设检验。这种检验方法称为 z z z检验法。

适用条件:

  1. 总体服从正态分布且方差已知,此时统计量 z = X ‾ − μ δ / n z = \frac{\overline{X} - \mu}{\delta/\sqrt{n}} z=δ/n Xμ
  2. 总体的方差未知,但样本量足够大,一般样本容量 n n n需要大于30,此时统计量 z = X ‾ − μ S / n z = \frac{\overline{X} - \mu}{S/\sqrt{n}} z=S/n Xμ

δ \delta δ为总体标准差, S S S为样本标准差, μ \mu μ为总体均值, X ‾ \overline{X} X为样本均值。

二. 常见z检验的实现
1. 单样本双边检验

假设某车间用一台包装机包装葡萄糖。已知每袋糖的净重是一个随机变量,且服从标准差为 0.015 kg 的正态分布。某日随机抽取它所包装的9袋糖,称得净重为(kg):
0.497 , 0.506 , 0.518 , 0.524 , 0.498 , 0.511 , 0.520 , 0.515 , 0.512 0.497,0.506,0.518,0.524,0.498,0.511,0.520,0.515,0.512 0.4970.5060.5180.5240.4980.5110.5200.5150.512 问每袋糖的净重的均值 μ \mu μ是不是0.5kg?

原假设 H 0 : μ = 0.5 k g H_0: \mu = 0.5kg H0:μ=0.5kg
备则假设 H 1 : μ ≠ 0.5 k g H_1: \mu \neq 0.5kg H1:μ=0.5kg

从备则假设的形式可以得知总体的实际均值可能大于0.5kg,也可能小于0.5kg,因此它是一个双边检验,置信水平 α \alpha α = 0.05。

代码实现:

import math
import numpy as np
from scipy.stats import norm

if __name__ == '__main__':
    # 总体标准差
    std = 0.015
    # 置信水平
    alpha = 0.05
    sample = [0.497,0.506,0.518,0.524,0.498,0.511,0.520,0.515,0.512]
    # 样本均值
    sample_mean = np.mean(sample)

    # 统计量
    z_statistics = (sample_mean - 0.5) / (std / math.sqrt(len(sample)))

    z_left_value = norm(loc=0, scale=1).ppf(alpha / 2)
    z_right_value = norm(loc=0, scale=1).ppf(1 - alpha / 2)
    print("z_statistics: ", round(z_statistics, 2))
    print("z_left_value: ", round(z_left_value, 2), ", z_right_value: ", round(z_right_value, 2))

    # 计算p值
    pval = norm(loc=0, scale=1).sf(abs(z_statistics)) * 2

    if z_statistics > z_right_value or z_statistics < z_left_value:
        print("reject null hypothesis, p value is: ", round(pval, 2))
    else:
        print("not reject null hypothesis, p value is: ", round(pval, 2))

运行结果:

z_statistics:  2.24
z_left_value:  -1.96 , z_right_value:  1.96
reject null hypothesis, p value is:  0.02
2. 单样本单边检验

还是以上面葡萄糖净重的例子,原假设 H 0 : μ = 0.5 k g H_0: \mu = 0.5 kg H0:μ=0.5kg保持不变,将备则假设修改为: H 1 : μ > 0.5 k g H_1: \mu > 0.5kg H1:μ>0.5kg,此时该假设检验就变成了右边检验。置信水平 α = 0.05 \alpha = 0.05 α=0.05

代码实现:

import math
import numpy as np
from scipy.stats import norm

if __name__ == '__main__':
    # 总体标准差
    std = 0.015
    # 置信水平
    alpha = 0.05
    sample = [0.497,0.506,0.518,0.524,0.498,0.511,0.520,0.515,0.512]
    # 样本均值
    sample_mean = np.mean(sample)

    # 统计量
    z_statistics = (sample_mean - 0.5) / (std / math.sqrt(len(sample)))

    z_right_value = norm(loc=0, scale=1).ppf(1 - alpha)
    print("z_statistics: ", round(z_statistics, 2))
    print("z_right_value: ", round(z_right_value, 2))

    # 计算p值
    pval = norm(loc=0, scale=1).sf(abs(z_statistics))

    if z_statistics > z_right_value:
        print("reject null hypothesis, p value is: ", round(pval, 2))
    else:
        print("not reject null hypothesis, p value is: ", round(pval, 2))

运行结果:

z_statistics:  2.24
z_right_value:  1.64
reject null hypothesis, p value is:  0.01

相关推荐

  1. python实现假设检验-z检验

    2024-04-09 06:04:07       36 阅读
  2. python实现假设检验-t检验

    2024-04-09 06:04:07       43 阅读
  3. 假设检验(三)(单侧假设检验

    2024-04-09 06:04:07       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 06:04:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 06:04:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 06:04:07       82 阅读
  4. Python语言-面向对象

    2024-04-09 06:04:07       91 阅读

热门阅读

  1. 国内镜像源拉取Ubuntu,并实现网络配置

    2024-04-09 06:04:07       39 阅读
  2. Python的学习之路

    2024-04-09 06:04:07       37 阅读
  3. RFID详解

    2024-04-09 06:04:07       36 阅读
  4. C语言的数组

    2024-04-09 06:04:07       33 阅读
  5. 速盾:游戏cdn什么意思

    2024-04-09 06:04:07       40 阅读
  6. html实现登录界面

    2024-04-09 06:04:07       33 阅读
  7. 中国联通软件研究院春招3场面试Offer面经

    2024-04-09 06:04:07       89 阅读
  8. PyCharm详细安装教程与高效使用指南

    2024-04-09 06:04:07       41 阅读
  9. 【uniapp小程序-跳转另一个小程序】

    2024-04-09 06:04:07       38 阅读
  10. el-table-column 有两个input怎么校验

    2024-04-09 06:04:07       40 阅读
  11. Day7:学习尚上优选项目

    2024-04-09 06:04:07       31 阅读
  12. 神经网络中的权重初始化

    2024-04-09 06:04:07       34 阅读
  13. 速盾:前端挂载到cdn托管

    2024-04-09 06:04:07       33 阅读