对汤老师的p-value有点小小的疑惑?R语言与统计分析-by汤银才-p171
此题是方差sigma已知的情况下, 对假设进行检验,并对均值区间进行估计
z.test<-function(x,n,sigma,alpha,u0=0,alternative="two.sided"){
options(digits=4)
result<-list( )
mean<-mean(x)
z<-(mean-u0)/(sigma/sqrt(n))
p<-pnorm(z,lower.tail=FALSE)
result$mean<-mean
result$z<-z
result$p.value<-p
if(alternative=="two.sided"){
p<-2*p
result$p.value<-p
}
else if (alternative == "greater"|alternative =="less" ){
result$p.value<-p
}
else return("your input is wrong")
result$conf.int<- c(mean-sigma*qnorm(1-alpha/2,mean=0, sd=1,lower.tail = TRUE)/sqrt(n),
mean+sigma*qnorm(1-alpha/2,mean=0, sd=1,lower.tail = TRUE)/sqrt(n))
result
}
红色部分,是疑惑的地方,p.value是取得 lower.tail=F,是上侧的面积,那么 less时即假设H0:u>= u0时,p.value =p是不是错误的呢?另外,双侧检验的时候,z如果是负数,那么2*p(上侧面积)会不会出现 大于 1的情况!!!!
也尝试修改下,大大们帮忙看看有没有统计知识的问题撒?
z.test <- function(x,n,sigma,alpha,u0=0,alternative="two.sided"){
options(digits=4)
result <- list()
mean <- mean(x)
z <-(mean-u0)/(sigma/sqrt(n))
result$mean <- mean
result$z <- z
ifelse(alternative=="two.sided",result$p.value <- 2*(1-pnorm(abs(z))), #双侧检测
ifelse(alternative=="less",result$p.value <- pnorm(z,lower.tail=T), #下侧检验
ifelse(alternative=="greater",result$p.value <-pnorm(z,lower.tail=F), #上侧检验
return("your input is wrong"))))
result$conf.int <- c(mean-qnorm(1-alpha/2)*sigma/sqrt(n),
mean+qnorm(1-alpha/2)*sigma/sqrt(n)) #有误
result
}
刚学到 假设检验, p-value 又是太重要了
自学统计, 没老师。。。
请大大们帮忙指点统计知识的问题撒 谢谢
谢谢 epoh老师的指导 之前把alternative 给搞反了,p.value 的面积真是有点绕


雷达卡



京公网安备 11010802022788号







