五、假设检验:使用Python进行单个正态总体方差的假设检验

设总体 X ∼ N ( μ , σ 2 ) , μ , σ 2 X\sim N(\mu, \sigma^2), \mu, \sigma^2 XN(μ,σ2),μ,σ2未知, X 1 , . . . , X n X_1,...,X_n X1,...,Xn是总体X的样本。则其检验统计量为:
( n − 1 ) S 2 σ 2 ∼ χ 2 ( n − 1 ) \frac{(n-1)S^2}{\sigma^2}\sim \chi^2 (n-1) σ2(n1)S2χ2(n1)
方差的假设检验也可分为三类:双边检验,左侧检验和右侧检验。

双边检验

假设检验的形式:
H 0 : σ 2 = σ 0 2 H 1 : σ 2 ≠ σ 0 2 H_0: \sigma^2=\sigma_0^2 \quad H_1:\sigma^2\neq \sigma_0^2 H0:σ2=σ02H1:σ2=σ02
拒绝域为:
χ 2 = ( n − 1 ) s 2 σ 0 2 ≤ χ 1 − α / 2 2 ( n − 1 ) o r χ 2 = ( n − 1 ) s 2 σ 0 2 ≥ χ α / 2 2 ( n − 1 ) \chi^2=\frac{(n-1)s^2}{\sigma_0^2} \le \chi^2_{1-\alpha/2}(n-1) \quad or\quad \chi^2=\frac{(n-1)s^2}{\sigma_0^2}\ge \chi^2_{\alpha/2}(n-1) χ2=σ02(n1)s2χ1α/22(n1)orχ2=σ02(n1)s2χα/22(n1)
p值求法:
因为 χ 2 \chi^2 χ2为非对称分布,所以在求其p值是一定要注意:
p = { χ 2 ( n − 1 ) ≤ χ 0 2 } p=\{\chi^2(n-1) \le \chi_0^2\} p={χ2(n1)χ02}
上式中,n为样本容量,而
χ 0 2 = ( n − 1 ) s 2 σ 0 2 \chi_0^2 =\frac{(n-1)s^2}{\sigma_0^2} χ02=σ02(n1)s2
真正的pval应该如下取值:
p v a l = 2 m i n ( p , 1 − p ) pval = 2min(p, 1-p) pval=2min(p,1p)

左侧检验

假设检验的形式:
H 0 : σ 2 = σ 0 2 H 1 : σ 2 < σ 0 2 H_0: \sigma^2=\sigma_0^2 \quad H_1:\sigma^2\lt \sigma_0^2 H0:σ2=σ02H1:σ2<σ02
拒绝域为:
χ 2 = ( n − 1 ) s 2 σ 0 2 ≤ χ 1 − α 2 ( n − 1 ) \chi^2=\frac{(n-1)s^2}{\sigma_0^2} \le \chi^2_{1-\alpha}(n-1) χ2=σ02(n1)s2χ1α2(n1)
p值求法:
p v a l = { χ 2 ( n − 1 ) ≤ χ 0 2 } pval=\{\chi^2(n-1) \le \chi_0^2\} pval={χ2(n1)χ02}

右侧检验

假设检验的形式:
H 0 : σ 2 = σ 0 2 H 1 : σ 2 > σ 0 2 H_0: \sigma^2=\sigma_0^2 \quad H_1:\sigma^2\gt \sigma_0^2 H0:σ2=σ02H1:σ2>σ02
拒绝域为:
χ 2 = ( n − 1 ) s 2 σ 0 2 ≥ χ α 2 ( n − 1 ) \chi^2=\frac{(n-1)s^2}{\sigma_0^2}\ge\chi^2_\alpha(n-1) χ2=σ02(n1)s2χα2(n1)
p值求法:
p v a l = { χ 2 ( n − 1 ) ≥ χ 0 2 } pval=\{\chi^2(n-1) \ge \chi_0^2\} pval={χ2(n1)χ02}

Python计算实现

import numpy as np
from scipy import stats

def chi2test(sample_var, sample_num,sigma_square,side='both', alpha=0.05):
    '''
    参数:
    sample_var--样本方差
    sample_num--样本容量
    sigma_square--H0方差
    返回值:
    pval
    '''
    x0=((sample_num-1)*sample_var)/(sigma_square)
    chi2 = stats.chi2(df=sample_num-1)
    pval = None
    if side == 'both':
        p = chi2.cdf(x0)
        pval = 2*np.min(p, 1-p)
    elif side == 'left':
        pval = chi2.cdf(x0)
    else: 
        pval = chi2.sf(x0)
    return {"pval": pval}

应用案例

例1:一个园艺科学家正在培养一个新品种苹果,这种苹果除了口感好和颜色鲜艳外,另一个重要特征是单个重量差异不大(对照品种的方差 σ 2 = 7 \sigma^2=7 σ2=7). 为了评估新苹果,他随机挑选了 25 个测试重量(单位:克),其样本方差为 S 2 = 4.25 S^2=4.25 S2=4.25. 问新品种的方差是否比对照品种方差小?( α = 0.05 \alpha=0.05 α=0.05)
解: H 0 : σ 2 ≥ 7 H 1 : σ 2 ≤ 7 H_0:\sigma^2\ge 7 \quad H_1:\sigma^2 \le7 H0:σ27H1:σ27
python计算如下:

chi2test(4.25, 25, 7,side='left')
# 结果
{'pval': 0.067325420131622044}

因为 p v a l = 0.067325420131622044 > α = 0.5 pval=0.067325420131622044>\alpha=0.5 pval=0.067325420131622044>α=0.5, 所以接受原假设,即认为新品种的方差并不比对照组的小。

参考文献

  • 《概率论与数理统计》 浙大
  • numpy and scipy documents

联系交流

  • email: hflag@163.com
  • qq: 532843488
    本人一直从事《概率论与数理统计》教学,欢迎遇到难题的童靴联系我。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值