利用Excel、Matlab、R等软件都可以计算P值,本文以R软件l为例,对正态总体均值的假设检验计算P值,正态总体方差以及其他总体的假设检验均可用软件实现P值的计算。
R软件以一组数据102.5,102.4,102.0,101.8,101.8,102.1,102.3,102.5,102.6,
102.8,103.4,104.2为例,检验其均值是否为102.4,此时数据方差未知,用样本方差来代替总体方差做t检验,在R中,对这组数据分别做左侧、右侧、和双边检验,直接调用t.test函数即可,代码见附录,运行结果如下:
#双侧检验
data: bj
t = 0.67006, df = 11, p-value = 0.5166
alternative hypothesis: true mean is not equal to 102.4
95 percent confidence interval:
102.0954 102.9713
sample estimates:
mean of x
102.5333
#左侧检验
data: bj
t = 0.67006, df = 11, p-value = 0.7417
alternative hypothesis: true mean is less than 102.4
95 percent confidence interval:
-Inf 102.8907
sample estimates:
mean of x
102.5333
#右侧检验
data: bj
t = 0.67006, df = 11, p-value = 0.2583
alternative hypothesis: true mean is greater than 102.4
95 percent confidence interval:
102.176 Inf
sample estimates:
mean of x
102.5333
由此运行结果我们可以得知,在左侧、右侧、和双侧检验下得到的P值分别为0.7417,0.2583,0.5166,P值都很大,因此接受原假设,认为这组数据的均值为102.4。
在数据方差已知的情况下,仍然利用上面的数据,在方差已知的情况下做均值的假设检验问题。在R中,可以安装BSDA包,直接调用z.test函数,进行单样本或双样本的假设检验问题。代码见附录,运行结果如下:
#做置信度为95%,方差为0.67的双侧检验
data: bj
z = 0.68937, p-value = 0.2453
alternative hypothesis: true mean is greater than 102.4
95 percent confidence interval:
102.2152 NA
sample estimates:
mean of x
102.5333
#右侧检验
data: bj
z = 0.68937, p-value = 0.7547
alternative hypothesis: true mean is less than 102.4
95 percent confidence interval:
NA 102.8515
sample estimates:
mean of x
102.5333
由运行结果可得到双侧、左侧、右侧检验的P值,P值仍然很大,故接受原假设,认为这组数据的均值为102.4。
附录
方差未知时对样本做t检验
bj=c(102.5,102.4,102.0,101.8,101.8,102.1,102.3,102.5,102.6,
102.8,103.4,104.2)
t.test(x=bj,mu=102.4,alternative="two.sided")#双侧检验
t.test(x=bj,mu=102.4,alternative="less")#左侧检验
t.test(x=bj,mu=102.4,alternative="greater")#右侧检验
方差已知时对样本做Z检验
install.packages("BSDA")
library("BSDA")
z.test(x=bj,mu=102.4,sigma.x=0.67, alternative="two.sided",conf.level=0.95)
#做置信度为95%,方差为0.67的双侧检验
z.test(x=bj,mu=102.4,sigma.x=0.67, alternative="greater",conf.level=0.95)
#右侧检验
z.test(x=bj,mu=102.4,sigma.x=0.67, alternative="less",conf.level=0.95)
#左侧检验