统计检验方法与R语言实现
立即解锁
发布时间: 2025-08-22 00:58:48 阅读量: 2 订阅数: 11 


R语言编程与统计入门教程
# 统计检验方法与R语言实现
## 1. 非配对t检验的包装函数
在非配对t检验中,有一个经验法则可用于决定是否使用合并方差估计。我们可以编写一个包装函数,根据这个经验法则决定是否应以`var.equal = FALSE`执行`t.test`。
### 函数要求
- 函数应接受四个定义的参数:`x`和`y`无默认值,处理方式与`t.test`中的相同参数一致;`var.equal`和`paired`的默认值与`t.test`相同。
- 应包含省略号(`...`),以表示要传递给`t.test`的任何其他参数。
- 执行时,函数应确定`paired`是否为`FALSE`:
- 如果`paired`为`TRUE`,则无需进行合并方差检查。
- 如果`paired`为`FALSE`,则函数应使用经验法则自动确定`var.equal`的值。
- 如果`var.equal`的值是自动设置的,它将覆盖用户最初提供的该参数的任何值。
- 然后,适当地调用`t.test`。
### 示例代码
```R
# 编写包装函数
my_t_test <- function(x, y, var.equal = FALSE, paired = FALSE, ...) {
if (!paired) {
# 这里应添加经验法则判断var.equal的逻辑
# 假设这里只是简单示例,实际需要根据具体经验法则实现
var.equal <- TRUE
}
return(t.test(x, y, var.equal = var.equal, paired = paired, ...))
}
```
## 2. 比例检验
在统计建模和假设检验中,关注均值是很常见的,但也需要考虑样本比例,样本比例可解释为一系列n次二元试验的均值,结果为成功(1)或失败(0)。这里主要介绍参数比例检验,即假设目标抽样分布为正态分布的Z检验。
### 2.1 单比例检验
单样本比例的抽样分布在满足一定条件下是正态分布,均值为真实比例π,标准误差为√π(1 - π)/n。条件是试验独立,n不是“太小”,π不是“太接近”0或1。
#### 经验法则
检查n和π的条件,只需检查`n * ˆp`和`n * (1 - ˆp)`是否都大于5,其中`ˆp`是π的样本估计值。
#### 示例
假设一个人注意到在吃某快餐连锁店的午餐后,他在一定时间内容易肠胃不适。一位博主认为吃这种食物后不久肠胃不适的概率为20%。这个人想确定他的真实肠胃不适率π是否与博主所说的不同,他在n = 29次不同的午餐中记录了是否肠胃不适。
- **假设**:
- $H_0$: π = 0.2
- $H_A$: π ≠ 0.2
- **计算**:
```R
sick <- c(0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1)
# 成功次数
successes <- sum(sick)
# 样本比例
p_hat <- mean(sick)
# 检查条件
n <- length(sick)
n * 0.2
n * 0.8
# 计算检验统计量Z
Z <- (p_hat - 0.2) / sqrt(0.2 * 0.8 / n)
# 计算p值
p_value <- 2 * (1 - pnorm(Z))
# 计算95%置信区间
ci <- p_hat + c(-1, 1) * qnorm(0.975) * sqrt(p_hat * (1 - p_hat) / n)
```
- **结果**:
- 成功次数:8
- 样本比例:0.2758621
- 检验统计量Z:1.021324
- p值:0.3071008
- 95%置信区间:[0.1131927, 0.4385314]
由于p值大于0.05,没有足够证据拒绝$H_0$,即不能说明这个人的肠胃不适比例与博主所说的20%不同。
#### R函数`prop.test`
```R
prop.test(x = sum(sick), n = length(sick), p = 0.2, correct = FALSE)
```
### 2.2 双比例检验
通过对标准误差的修改,可以比较来自独立总体的两个估计比例。通常检验两个比例是否相同,即差异是否为零,所以典型的零假设值为零。
#### 示例
考虑一组学生参加统计学考试,233名心理学专业学生中有180人通过,197名地理专业学生中有175人通过。假设地理专业学生的统计学通过率高于心理学专业学生。
- **假设**:
- $H_0$: π2 - π1 = 0
- $H_A$: π2 - π1 > 0
- **计算**:
```R
x1 <- 180
n1 <- 233
p_hat1 <- x1 / n1
x2 <- 175
n2 <- 197
p_hat2 <- x2 / n2
# 计算合并比例p*
p_star <- (x1 + x2) / (n1 + n2)
# 计算检验统计量Z
Z <- (p_hat2 - p_hat1) / sqrt(p_star * (1 - p_star) * (1 / n1 + 1 / n2))
# 计算p值
p_value <- 1 - pnorm(Z)
# 计算95%置信区间
ci <- (p_hat2 - p_hat1) + c(-1, 1) * qnorm(0.975) * sqrt(p_hat1 * (1 - p_hat1) / n1 + p_hat2 * (1 - p_hat2) / n2)
```
- **结果**:
- 心理学专业样本通过率:0.7725322
- 地理专业样本通过率:0.8883249
- 合并比例p*:0.8255814
- 检验统计量Z:3.152693
- p值:0.0008088606
- 95%置信区间:[0.04628267, 0.18530270]
由于p值远小于0.05,拒绝$H_0$,有足够证据支持地理专业学生的通过率高于心理学专业学生。
#### R函数`prop.test`
```R
prop.test(x = c(x2, x1), n = c(n2, n1), alternative = "greater", correct = FAL
```
0
0
复制全文
相关推荐










