library("BSDA")#可能需要单独运行这一行代码
## Loading required package: lattice
##
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
##
## Orange
library("ggplot2")
library("RColorBrewer")
cafe <- c(15,14,16,16,17,15,16,17,18,16,15,14,16,16,17,15,16,17,
18,16,15,14,16,16,17,15,16,17,18,16,14,15,13,14,17)
n <- length(cafe)
hist(cafe,main = "Histogram of cafe",xlab = "Value",ylab = "Frequency",col = "lightblue")
plot(density(cafe),main = "Density Plot of cafe",xlab = "Value",ylab = "Density",col="blue",lwd=2)
# 95%区间估计
mean_cafe <- mean(cafe)
sd_cafe <- sd(cafe)
n <- length(cafe)
#因为样本量超过30且呈现正态分布,所以选择正态分布计算置信区间
se <- qnorm(0.975) * sd_cafe / sqrt(n) #缺少总体方差信息,使用样本方差替代
CI <- c(mean_cafe - se, mean_cafe + se)
cat("95% z检验置信区间为:",CI)
## 95% z检验置信区间为: 15.38403 16.21597
t_test_result <- t.test(cafe)
confidence_interval <- t_test_result$conf.int
cat("95% t检验置信区间为:",confidence_interval[1], confidence_interval[2], "\n")
## 95% t检验置信区间为: 15.36869 16.23131
#统计量z值
z <- (mean_cafe - 15.2)/(sd_cafe/sqrt(n))
cat("z:",z,"\n")
## z: 2.827108
#p值
p_value <- 1 - pnorm(z)
cat("p_value:",p_value,"\n")
## p_value: 0.002348527
if(p_value < 0.05){
cat("拒绝原假设,即摄入咖啡因显著提高记忆力","\n")
}else{
cat("不拒绝原假设,即摄入咖啡因没有显著提高记忆力")
}
## 拒绝原假设,即摄入咖啡因显著提高记忆力
z.test(cafe, alternative="greater", mu=15.2, sigma.x= sd_cafe)
##
## One-sample z-Test
##
## data: cafe
## z = 2.8271, p-value = 0.002349
## alternative hypothesis: true mean is greater than 15.2
## 95 percent confidence interval:
## 15.45091 NA
## sample estimates:
## mean of x
## 15.8
#拒绝域与z值
z_cri <- qnorm(0.95,0,1)
ztestdata <- data.frame(x = seq(-3, 3, 0.01), y = dnorm(seq(-3, 3, 0.01)))
p <- ggplot(data = ztestdata, aes(x = x, y = y)) +
geom_line() + xlab("z value") +
theme(panel.border = element_rect(linetype = "solid", fill=NA),
panel.background = element_rect(fill = "white"),
strip.background = element_rect(fill = "white"))
p1 <- p + geom_area(data = ztestdata[ztestdata$x > abs(z_cri), ], fill = brewer.pal(8, "Paired")[5])
p1 <- p1 + geom_segment(aes(x = z, y = 0, xend = z, yend = dnorm(z)), col = brewer.pal(8, "Reds")[8], size = 1.2)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
p1
#统计量t值
t <- (mean_cafe - 15.2)/(sd_cafe/sqrt(n))
cat("t:",t,"\n")
## t: 2.827108
#p值
p_value <- 1 - pt(t,n-1)
cat("p_value:",p_value,"\n")
## p_value: 0.003907154
if(p_value < 0.05){
cat("拒绝原假设,即摄入咖啡因显著提高记忆力","\n")
}else{
cat("不拒绝原假设,即摄入咖啡因没有显著提高记忆力")
}
## 拒绝原假设,即摄入咖啡因显著提高记忆力
#拒绝域与t值
t_cri <- qt(0.95,n-1)
ttestdata <- data.frame(x = seq(-3, 3, 0.01), y = dt(seq(-3, 3, 0.01),df = n - 1))
p <- ggplot(data = ttestdata, aes(x = x, y = y)) +
geom_line() + xlab("t value") +
theme(panel.border = element_rect(linetype = "solid", fill=NA),
panel.background = element_rect(fill = "white"),
strip.background = element_rect(fill = "white"))
p2 <- p + geom_area(data = ttestdata[ttestdata$x > abs(t_cri), ], fill = brewer.pal(8, "Paired")[5])
p2 <- p2 + geom_segment(aes(x = t, y = 0, xend = t, yend = dt(z,df = n-1)), col = brewer.pal(8, "Reds")[8], size = 1.2)
p2