概率统计Python计算(53)单个正态总体方差单侧假设的卡方检验

对正态总体的方差 σ 2 ≤ σ 0 2 \sigma^2\leq\sigma_0^2 σ2≤σ02​(或 σ 2 ≥ σ 0 2 \sigma^2\geq\sigma_0^2 σ2≥σ02​)进行显著水平 α \alpha α下的假设检验,检验统计量 n − 1 σ 0 2 S 2 \frac{n-1}{\sigma_0^2}S^2 σ02​n−1​S2~ χ 2 ( n − 1 ) \chi^2(n-1) χ2(n−1)。其中, S 2 S^2 S2为样本方差。用p值法的检验计算函数定义如下。

from scipy.stats import chi2		#导入chi2
def chi2testR(X, df, alpha):		#右侧检验函数
    p=chi2.sf(X, df)
    return p>=alpha
def chi2testL(X, df, alpha):		#左侧检验函数
    p=chi2.cdf(X, df)
    return p>=alpha

程序的第2~4行定义 χ 2 \chi^2 χ2方法右侧检验函数chi2testR,第5~7行定义左侧检验函数chi2testL。两个函数函数的参数X、df和alpha分别表示检测统计量观测值 n − 1 σ 0 2 s 2 \frac{n-1}{\sigma_0^2}s^2 σ02​n−1​s2、 χ 2 ( n − 1 ) \chi^2(n-1) χ2(n−1)分布的*度 n − 1 n-1 n−1和显著水平 α \alpha α。对于右侧检验函数chi2testR,第3行计算p值为 χ 2 ( n − 1 ) \chi^2(n-1) χ2(n−1)分布的残存函数在统计量值T处的函数值。而对于左侧检验函数chi2testL,第6行计算p值为 χ 2 ( n − 1 ) \chi^2(n-1) χ2(n−1)分布的累积分布函数在统计量值X处的函数值。返回的布尔值p>=alpha为True,则接受假设 H 0 : σ 2 ≤ σ 0 2 H_0:\sigma^2\leq\sigma^2_0 H0​:σ2≤σ02​(或 σ 2 ≥ σ 0 2 \sigma^2\geq\sigma_0^2 σ2≥σ02​),否则拒绝 H 0 H_0 H0​。
例1 已知维尼纶纤度(表示粗细程度的量)服从正态分布,正常生产时,其标准差为0.048。某日随机抽取5根纤维,测得纤度为
1.32 , 1.55 , 1.36 , 1.40 , 1.44 1.32, 1.55, 1.36, 1.40, 1.44 1.32,1.55,1.36,1.40,1.44
问这天生产的维尼纶的纤度的标准差是否显著偏大(显著水平 α = 0.05 \alpha=0.05 α=0.05)?
解:设维尼纶纤度服从 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)。按题意,需对假设
H 0 : σ 2 > 0.04 8 2 , H 1 : σ 2 ≤ 0.04 8 2 H_0:\sigma^2>0.048^2, H_1: \sigma^2\leq0.048^2 H0​:σ2>0.0482,H1​:σ2≤0.0482
作左侧检验。下列代码完成本例计算。

import numpy as np                              #导入numpy
x=np.array([1.32, 1.55, 1.36, 1.40, 1.44])      #样本数据
n=x.size                                        #样本容量
s2=x.var(ddof=1)                                #样本方差
sigma0=0.048                                    #总体均方差假设值
alpha=0.05                                      #显著水平
X=(n-1)*s2/sigma0**2                            #总体方差检验统计量值
accept=chi2testL(X, n-1, alpha)  				#总体方差左侧检验p值
print('sigma^2>%.3f^2 is %s.'%(sigma0, accept))

第2~6行按题面设置各项数据。第7行计算检验统计量值 n − 1 σ 0 2 s 2 \frac{n-1}{\sigma_0^2}s^2 σ02​n−1​s2为X,第8行调用chi2testL函数对假设 H 0 : σ 2 > 0.04 8 2 H_0:\sigma^2>0.048^2 H0​:σ2>0.0482作左侧检验。运行程序,输出

sigma^2>0.048^2 is True.

表示接受假设 H 0 H_0 H0​,即这天生产的维尼纶纤度的标准差偏大。
例2 假定一台自动装配磁带的机器装配每盒磁带的长度服从正态分布。如果磁带长度的标准差不超过 0.15 c m 0.15cm 0.15cm,认为及其工作正常,不然则需要调整机器。现随机抽取 10 10 10盒磁带测量其长度,经计算样本方差为 0.028 c m 2 0.028cm^2 0.028cm2,这时机器是否工作正常( α = 0.05 \alpha=0.05 α=0.05)?
解:按题意,应对假设
H 0 : σ 2 ≤ 0.1 5 2 , H 1 : σ 2 > 0.1 5 2 H_0:\sigma^2\leq0.15^2,H_1:\sigma^2>0.15^2 H0​:σ2≤0.152,H1​:σ2>0.152
作右侧检验。下列代码完成本例计算。

n=10
s2=0.028
sigma0=0.15
alpha=0.05
X=(n-1)*s2/sigma0**2
accept=chi2testR(X, n-1, alpha)
print('sigma^2<=%.2f^2 is %s.'%(sigma0, accept))

1~5行按题面设置各项数据,第6行调用函数chi2testR对假设作右侧检验。运行程序,输出

sigma^2<=0.15^2 is True.

表示接受假设 H 0 : σ 2 ≤ 0.1 5 2 H_0:\sigma^2\leq0.15^2 H0​:σ2≤0.152,即认为机器工作正常。

上一篇:53-1


下一篇:剑指offer 53.字符串 表示数值的字符串