900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 概率统计Python计算:单个正态总体均值双侧假设的卡方检验

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

时间:2019-12-09 00:12:23

相关推荐

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

对正态总体的方差 σ 2 = σ 0 2 \sigma^2=\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#导入chi2def chi2test2(X, df, alpha):#双侧检验函数if X>2*df:#检验统计量值大于卡方分布均值p=2*chi2.sf(X, df)else:#检验统计量值不超过卡方分布均值p=2*chi2.cdf(X, df)return p>=alpha

双侧检验函数chi2test2的参数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 α。第3~6行的if-else语句根据检验统计量值X位于 χ 2 ( n − 1 ) \chi^2(n-1) χ2(n−1)的均值 n − 1 n-1 n−1左、右方来计算p值:若X>df(即 n − 1 n-1 n−1)p置为2*chi2.sf(X, df)(第4行),否则p置为2*chi2.cdf(X, df)(第6行)。

例1某产品的强度服从正态分布 N ( 52.8 , 1. 6 2 ) N(52.8, 1.6^2) N(52.8,1.62)。为降低生产成本,决定更换部分原材料。现从新产品中随机抽取容量为9的样本,测得强度(单位: k g f / m m 2 kgf/mm^2 kgf/mm2)分别为

51.9 , 53.0 , 52.7 , 54.1 , 53.2 , 52.3 , 52.5 , 51.1 , 54.7 51.9, 53.0, 52.7, 54.1, 53.2, 52.3, 52.5, 51.1, 54.7 51.9,53.0,52.7,54.1,53.2,52.3,52.5,51.1,54.7

问新产品的强度是否发生了变化?

解:要回答“新产品的强度是否发生了变化”,需要考察新产品的强度均值 μ \mu μ是否依然为 52.8 52.8 52.8,及强度方差 σ 2 \sigma^2 σ2是依然否为 1. 6 2 1.6^2 1.62。先检验假设

H 0 : σ 2 = 1. 6 2 , H 1 : σ 2 ≠ 1. 6 2 . H_0:\sigma^2=1.6^2, H_1:\sigma^2\not=1.6^2. H0​:σ2=1.62,H1​:σ2=1.62.

若检验结果接受对 σ 2 = 1. 6 2 \sigma^2=1.6^2 σ2=1.62的假设,则可以用Z检验法检验假设

H 0 : μ = 52.8 , H 1 : μ ≠ 52.8 H_0:\mu=52.8, H_1:\mu\not=52.8 H0​:μ=52.8,H1​:μ=52.8

否则用T检验法检验上述总体均值的双侧假设 H 0 H_0 H0​。下列代码完成本例计算。

import numpy as np#导入numpyx=np.array([51.9, 53.0, 52.7, 54.1, 53.2, #样本数据52.3, 52.5, 51.1, 54.7])xmean=x.mean()#样本均值n=x.size#样本容量s2=x.var(ddof=1) #样本方差sigma0=1.6 #总体均方差假设值mu0=52.8#总体均值假设值alpha=0.1#显著水平X=(n-1)*s2/sigma0**2 #总体方差检验统计量值accepts2=chi2test(X, n-1) #总体方差双侧检验print('sigma^2=%.1f^2 is %s.'%(sigma0, accepts2))if accepts2:#总体均值双侧Z检验Z=(xmean-mu0)/(np.sqrt(s2/n))acceptmu=ztest2(Z, alpha)else: #总体均值双侧T检验T=(xmean-mu0)/(sigma0/np.sqrt(n))acceptmu=ttest2(T, alpha)print('mu=%.1f is %s'%(mu0, acceptmu))

程序中第2~9行按题面设置各项数据。第10行计算关于假设 H 0 : σ 2 = 1. 6 2 H_0:\sigma^2=1.6^2 H0​:σ2=1.62的检验统计量 n − 1 σ 0 2 s 2 \frac{n-1}{\sigma_0^2}s^2 σ02​n−1​s2为X,第11行调用函数chi2test2检验该假设 H 0 H_0 H0​。第13~18行的if-else语句根据对假设 H 0 : σ 2 = 1. 6 2 H_0:\sigma^2=1.6^2 H0​:σ2=1.62的检验结果accepts2的值,计算假设 H 0 : μ = 52.8 H_0:\mu=52.8 H0​:μ=52.8的双侧检验:若accepts2为True( σ 2 = 1. 6 2 \sigma^2=1.6^2 σ2=1.62),则调用ztest2函数检验假设 H 0 : μ = 52.8 H_0:\mu=52.8 H0​:μ=52.8(第14~15行)。否则,调用ttest2函数对 H 0 : μ = 52.8 H_0:\mu=52.8 H0​:μ=52.8做检验(第17~18行)。运行程序,输出

sigma^2=1.60^2 is True.mu=52.8 is True.

表示既接受假设 H 0 : σ 2 = 1. 6 2 H_0:\sigma^2=1.6^2 H0​:σ2=1.62,又接受假设 H 0 : μ = 52.8 H_0:\mu=52.8 H0​:μ=52.8。即新产品的强度没有发生变化。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

返回《导引》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。