统计假设检验中的卡方检验与误差分析
立即解锁
发布时间: 2025-08-22 00:58:48 阅读量: 2 订阅数: 11 


R语言编程与统计入门教程
### 统计假设检验中的卡方检验与误差分析
#### 1. 卡方检验基础
卡方检验可用于多种场景,其中包括针对给定概率的检验以及两个分类变量的独立性检验。
##### 1.1 给定概率的卡方检验
例如,执行如下代码进行给定概率的卡方检验:
```R
chisq.test(x=hairy.tab,p=c(0.25,0.5,0.25))
```
输出结果如下:
```
Chi-squared test for given probabilities
data:
hairy.tab
X-squared = 0.5094, df = 2, p-value = 0.7751
```
由于 p 值非常高,没有证据拒绝原假设 $H_0$,即没有证据表明 $H_0$ 中假设的比例是错误的。
##### 1.2 两个分类变量的独立性检验
当有两个相互排斥且完备的分类变量(设为变量 A 和变量 B)时,可使用卡方检验来检测它们之间是否存在某种影响关系(即依赖性)。此时的假设如下:
- $H_0$:变量 A 和变量 B 相互独立(即 A 和 B 之间没有关系)。
- $H_A$:变量 A 和变量 B 不相互独立(即 A 和 B 之间存在关系)。
为进行检验,需将观察数据与假设分布完全无关时预期看到的计数进行比较。若与预期频率的总体偏差较大,将导致 p 值较小,从而提供反对原假设的证据。
以皮肤科医生治疗皮肤疾病的例子来说明。他们记录了 355 名患者接受四种治疗方法(片剂疗程、一系列注射、激光治疗和草药疗法)的治疗结果(无效果、部分成功和完全成功),数据存储在矩阵 `skin` 中:
```R
skin <- matrix(c(20,32,8,52,9,72,8,32,16,64,30,12),4,3,
dimnames=list(c("Injection","Tablet","Laser","Herbal"),
c("None","Partial","Full")))
```
这个二维表格呈现频率的形式称为列联表。
#### 2. 独立性卡方检验的计算
假设数据以 $k_r \times k_c$ 列联表(即基于两个分类变量的计数矩阵)形式呈现,检验统计量 $\chi^2$ 的计算公式为:
$\chi^2 = \sum_{i=1}^{k_r} \sum_{j=1}^{k_c} \frac{(O[i, j] - E[i, j])^2}{E[i, j]}$
其中,$O[i, j]$ 是观察计数,$E[i, j]$ 是行位置 $i$ 和列位置 $j$ 的预期计数,$E[i, j]$ 的计算公式为:
$E[i, j] = \frac{(\sum_{u=1}^{k_r} O[u, j]) \times (\sum_{v=1}^{k_c} O[i, v])}{N}$
结果 $\chi^2$ 遵循自由度为 $\nu = (k_r - 1) \times (k_c - 1)$ 的卡方分布。p 值始终是上尾面积,当至少 80% 的 $E[i, j]$ 至少为 5 时,可认为检验有效。
以下是计算过程的代码示例:
```R
kr <- nrow(skin)
kc <- ncol(skin)
rowSums(skin)
colSums(skin)
rep(colSums(skin),each=kr)
rep(colSums(skin),each=kr)*rowSums(skin)
rep(colSums(skin),each=kr)*rowSums(skin)/sum(skin)
skin.expected <- matrix(rep(colSums(skin),each=kr)*rowSums(skin)/sum(skin),
nrow=kr,ncol=kc,dimnames=dimnames(skin))
skin.array <- array(data=cbind(skin,skin.expected,
(skin-skin.expected)^2/skin.expected),
dim=c(kr,kc,3),
dimnames=list(dimnames(skin)[[1]],dimnames(skin)[[2]],
c("O[i,j]","E[i,j]",
"(O[i,j]-E[i,j])^2/E[i,j]")))
X2 <- sum(skin.array[,,3])
1-pchisq(X2,df=(kr-1)*(kc-1))
```
计算得到检验统计量 $X^2 = 66.16615$,对应的 p 值为 $2.492451e - 12$。由于 p 值极小,提供了强烈的证据反对原假设,应拒绝 $H_0$,表明皮肤疾病的治疗方法类型与治疗成功水平之间似乎存在关系。
也可以使用 R 中的内置函数 `chisq.test` 进行验证:
```R
chisq.test(x=skin)
```
#### 3. 假设检验中的误差
在统计假设检验中,有两种常见的误差类型。
##### 3.1 第一类错误(Type I Error)
当错误地拒绝了真实的原假设 $H_0$ 时,就会发生第一类错误。在任何给定的假设检验中,第一类错误的概率等于显著性水平 $\alpha$。
可以通过数值模拟来演示第一类错误率,定义如下函数:
```R
typeI.tester <- functio
```
0
0
复制全文
相关推荐










