📜  Z检验(1)

📅  最后修改于: 2023-12-03 15:06:08.514000             🧑  作者: Mango

Z检验

Z检验是用于检验样本均值与总体均值之间差异显著性的一种假设检验方法,常用于大样本的情况下。这种方法利用标准正态分布的性质,将样本均值与总体均值的差距转化为标准正态分布下的一个值,使其易于进行统计分析。

检验步骤
  1. 提出假设: $H_0$ 表示总体均值与样本均值没有显著差异,$H_1$ 表示总体均值与样本均值有显著差异。
  2. 提取样本数据,计算样本均值和标准差。
  3. 计算 $z$ 统计量: $z = \frac{\bar{x} - \mu}{\frac{\sigma}{\sqrt{n}}}$
  4. 根据显著性水平 $a$ 和自由度 $n-1$,确定临界值 $z_{\alpha/2}$。
  5. 判断 $z$ 是否在拒绝域内,若在,拒绝原假设 $H_0$;若不在,接受原假设 $H_0$。
代码实现

以下是一个基于Python的Z检验代码实现示例:

import numpy as np
from scipy.stats import norm

def z_test(sample, mu, sigma, alpha=0.05):
    '''
    Z检验函数

    :param sample: 样本数据,为一维数组
    :param mu: 总体均值
    :param sigma: 总体标准差
    :param alpha: 显著性水平,默认为0.05
    :return: 返回检验结果,包括z统计量和拒绝域,以及是否拒绝原假设
    '''
    n = sample.shape[0]
    x_bar = np.mean(sample)
    z = (x_bar - mu) / (sigma / np.sqrt(n))

    # 计算临界值
    z_crit = norm.ppf(1 - alpha / 2)

    # 判断是否在拒绝域内
    reject = np.abs(z) > z_crit

    # 返回检验结果
    return {'z_stat': z, 'reject_zone': [-z_crit, z_crit], 'reject': reject}

在利用该代码进行Z检验时,只需输入样本数据、总体均值和总体标准差,即可输出检验结果,包括 z 统计量和是否拒绝原假设等信息。