概率统计Python计算:单个正态总体均值双侧假设的Z检验

在这里插入图片描述
用p值法计算假设 H 0 H_0 H0的双侧检验,设 a a a b b b分别是检验统计量分布对应显著水平 α \alpha α的左、右分位点, F ( x ) F(x) F(x) S ( x ) S(x) S(x)分别为检验统计量的分布函数和残存函数。若检验统计量观测值 γ \gamma γ落在其分布的均值右边(见下图),且 S ( γ ) ≥ S ( a ) = α / 2 S(\gamma)\geq S(a)=\alpha/2 S(γ)S(a)=α/2(若令 p = 2 S ( γ ) p=2S(\gamma) p=2S(γ),则此时 p ≥ α p\geq\alpha pα), γ \gamma γ必落在 H 0 H_0 H0的非拒绝域中,否则落入拒绝域中(如下图中 ζ \zeta ζ)。相仿地,当检验统计量观测值落在其分布的均值左边(如下图中的 γ ′ \gamma^{\prime} γ ζ ′ \zeta^{\prime} ζ),则 p = 2 F ( γ ′ ) ≥ α p=2F(\gamma^{\prime})\geq\alpha p=2F(γ)α时接受假设,否则拒绝假设。
在这里插入图片描述
对单个正态总体均值 μ \mu μ的双侧检验,检验统计量 Z = X ‾ − μ 0 σ / n Z=\frac{\overline{X}-\mu_0}{\sigma/\sqrt{n}} Z=σ/n Xμ0~ N ( 0 , 1 ) N(0, 1) N(0,1),其p值检验法写成Python函数如下:

from scipy.stats import norm	#导入norm
def ztest2(z, alpha):			#双侧检验函数
    if z>=0:					#统计量值位于分布的右边
        p=2*norm.sf(z)
    else:						#统计量值位于分布的左边
        p=2*norm.cdf(z)
	return p>=alpha

第3~6行的if-else语句根据位于0(标准正态分布的均值)的两侧计算p值: z ≥ 0 z\geq0 z0则设 p = 2 S ( z ) p=2S(z) p=2S(z)(第4行),否则设 p = 2 F ( z ) p=2F(z) p=2F(z)(第6行)。第7行返回检验结果 p ≥ α p\geq\alpha pα。顺便提请注意,根据标准正态分布密度函数的对称性,第3~6行的if-else语句可简化为
p=2*norm.sf(abs(z)) \text{p=2*norm.sf(abs(z))} p=2*norm.sf(abs(z))
p p p值设置为 2 S ( ∣ x ∣ ) 2S(|x|) 2S(x)
例1 某市高三学生毕业会考,数学成绩的平均分为70分。现随机抽取10名女生的会考成绩如下:
65 , 72 , 89 , 56 , 79 , 63 , 92 , 48 , 75 , 81 65, 72, 89, 56, 79, 63, 92, 48, 75, 81 65,72,89,56,79,63,92,48,75,81
若已知女生的会考成绩服从正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2),其中 σ = 10 \sigma=10 σ=10,问女生的会考平均成绩 μ \mu μ是否为70分(显著水平 α = 0.05 \alpha=0.05 α=0.05)。
解: 本题中,假设 H 0 : μ = 70 , H 1 : μ ≠ 70 H_0:\mu=70, H_1: \mu\not=70 H0:μ=70,H1:μ=70。已知正态总体均方差 σ = 10 \sigma=10 σ=10,采用 Z Z Z检验法。下列代码完成本例计算。

import numpy as np                                  #导入numpy
x=np.array([65, 72, 89, 56, 79, 63, 92, 48, 75, 81])#样本数据
xmean=x.mean()                                      #样本均值
n=x.size                                            #样本容量
s0=10                                               #总体均方差
mu0=70                                              #总体均值假设值
alpha=0.05                                          #显著水平
z=(xmean-mu0)/(s0/np.sqrt(n))                       #检验统计量
accept=ztest2(z, alpha)                             #双侧检验
print('mu=%d is %s.'%(mu0, accept))

第2~7行按题面设置各项数据。第8行计算检验统计量观测值 x ‾ − μ 0 σ / n \frac{\overline{x}-\mu_0}{\sigma/\sqrt{n}} σ/n xμ0,第9行调用函数ztest2,对假设 H 0 : μ = μ 0 H_0:\mu=\mu_0 H0:μ=μ0作双侧检验。运行程序,输出

mu=70 is True.

表示接受假设 H 0 : μ = μ 0 = 70 H_0:\mu=\mu_0=70 H0:μ=μ0=70,即在显著水平 α = 0.05 \alpha=0.05 α=0.05下认为女生的会考平均成绩为70分。
例2 如果一个矩形的宽度 w w w和长度 l l l的比 w / l = 1 2 ( 5 − 1 ) ≈ 0.618 w/l=\frac{1}{2}(\sqrt{5}-1)\approx0.618 w/l=21(5 1)0.618,这样的矩形称为黄金矩形。这种尺寸的的矩形使人们看上去有良好的感觉。现代的建筑构件(如窗架)、工艺品(如图片镜框)、甚至司机的执照、商业的信用卡等常常都是采用黄金矩形。下面列出某工艺品工厂随机取的20个矩形的宽度和长度的比值:
0.693 , 0.749 , 0.654 , 0.670 , 0.662 , 0.672 , 0.615 , 0.606 , 0.690 , 0.628 0.668 , 0.611 , 0.606 , 0.609 , 0.601 , 0.553 , 0.570 , 0.844 , 0.576 , 0.993 0.693,0.749,0.654,0.670,0.662,0.672,0.615,0.606,0.690,0.628\\ 0.668,0.611,0.606,0.609,0.601,0.553,0.570,0.844,0.576,0.993 0.693,0.749,0.654,0.670,0.662,0.672,0.615,0.606,0.690,0.6280.668,0.611,0.606,0.609,0.601,0.553,0.570,0.844,0.576,0.993
设这一工厂生产的矩形的宽度与长度的比值总体服从正态分布 N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2),其中 μ \mu μ未知, σ 2 = 0.01 \sigma^2=0.01 σ2=0.01。试检验假设( α = 0.05 \alpha=0.05 α=0.05
H 0 : μ = 0.618 , H 1 : μ ≠ 0.618. H_0:\mu=0.618, H_1:\mu\not=0.618. H0:μ=0.618,H1:μ=0.618.
解: 这是一个已知总体方差,计算总体均值假设双侧检验的问题。下列代码完成本例计算。

import numpy as np								#导入numpy
x=np.array([0.693, 0.749, 0.654, 0.670, 0.662,	#样本数据
            0.672, 0.615, 0.606, 0.690, 0.628,
            0.668, 0.611, 0.606, 0.609, 0.601,
            0.553, 0.570, 0.844, 0.576, 0.933])
xmean=x.mean()									#样本均值
s0=0.01											#样本方差
mu0=0.618										#总体均值假设值
n=x.size										#样本容量
alpha=0.05										#显著水平
z=(xmean-mu0)/np.sqrt(s0/n)						#检验统计量
accept=ztest2(z, alpha)							#检验假设
print('mu=%.3f is %s.'%(mu0, accept))

第2~9行按题面设置数据,第10行计算检验统计量z,第11行调用ztest2计算对假设 H 0 : μ = μ 0 H_0:\mu=\mu_0 H0:μ=μ0作双侧检验。运行程序,输出

mu=0.618 is True.

表示接受假设 H 0 : μ = 0.618 , H 1 : μ ≠ 0.618 H_0:\mu=0.618, H_1:\mu\not=0.618 H0:μ=0.618,H1:μ=0.618
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好
返回《导引》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值