p值的计算,R语言和python的实现
今天来说说频率中假设检验要依赖的评估指标:p值,对,你也许很清楚的知道它表达的意思,但是它是怎么算得的呢?不知道你是否知道呢?这次将介绍几种分布计算p值的方法(套路)。
这里以两样本均值的假设检验为例来说明。要介绍的分布有:
正态分布
t分布
设两样本分别为
X
和
1、大样本情况下
设样本
X
为
那么对应的统计量为:
Z=x¯−y¯S2xn+S2ym−−−−−−−√∼N(0,1)
假设检验的介绍看博客:http://blog.csdn.net/xxzhangx/article/details/67640775
p值是说在原假设成立的条件下,原假设发生的概率,若是p值小于0.05,发生概率小于0.05时,认为是小概率发生了,即是差异性显著,拒绝原假设。
公式:
双边假设的p值:
p=P(z<−|x¯−y¯S2xn+S2ym−−−−−−−√|)
代码
> x <- 0.3
> y <- 0.5
> sx <- 3
> sy <- 5
> nx <- 10000
> ny <- 20000
> z <- (x-y)/(sqrt(sx^2/nx + sy^2/ny))
> p = 2*pnorm(-abs(z))
> p
结果:
[1] 1.608277e-05
2、小样本情况下:
- 方差相等
- 方差不等
方差相等时,
方差不等时:
> m1 <- c(10)
> m2 <- c(13)
> sd1 <- c(3)
> sd2 <- c(5.3)
> num1 <- c(300)
> num2 <- c(230)
> se <- sqrt(sd1*sd1/num1+sd2*sd2/num2)
> t <- (m1-m2)/se
> 2*pt(-abs(t),df=pmin(num1,num2)-1)
结果:
[1] 4.280554e-13