卡方检验没有置信区间(您只是在检查第一个类别变量和第二个类别变量是否独立),但是您可以像这样对比例差异进行置信区间。
假设您有一些数据,其中第一组的30%报告成功,而第二组的70%报告成功:
row1 <- c(70,30)
row2 <- c(30,70)
my.table <- rbind(row1,row2)
Run Code Online (Sandbox Code Playgroud)
现在,列联表中有数据:
> my.table
[,1] [,2]
row1 70 30
row2 30 70
Run Code Online (Sandbox Code Playgroud)
您可以继续chisq.test
使用,显然这两个比例明显不同,因此分类变量必须是独立的:
> chisq.test(my.table)
Pearson's Chi-squared test with Yates' continuity correction
data: my.table
X-squared = 30.42, df = 1, p-value = 3.479e-08
Run Code Online (Sandbox Code Playgroud)
如果您prop.test
确定自己有95%的信心,则比例之间的差异在26.29%和53.70%之间,这是有道理的,因为观察到的两个比例之间的实际差异为70%-30%= 40%:
> prop.test(x=c(70,30),n=c(100,100))
2-sample test for equality of proportions with continuity correction
data: c(70, 30) out of c(100, 100)
X-squared = 30.42, df = 1, p-value = 3.479e-08
alternative hypothesis: two.sided
95 percent confidence interval:
0.2629798 0.5370202
sample estimates:
prop 1 prop 2
0.7 0.3
Run Code Online (Sandbox Code Playgroud)
@mysteRious'很好的答案的补充:如果你有一个2x2
列联矩阵,你可以使用fisher.test
而不是prop.test
测试比例的差异而不是比率的差异。在 Fisher 精确检验中,原假设对应于优势比 (OR) = 1。
使用@mysteRious'样本数据
ft <- fisher.test(my.table)
ft
#
# Fisher's Exact Test for Count Data
#
#data: my.table
#p-value = 2.31e-08
#alternative hypothesis: true odds ratio is not equal to 1
#95 percent confidence interval:
# 2.851947 10.440153
#sample estimates:
#odds ratio
# 5.392849
Run Code Online (Sandbox Code Playgroud)
OR 的置信区间如下所示fit$conf.int
ft$conf.int
#[1] 2.851947 10.440153
#attr(,"conf.level")
#[1] 0.95
Run Code Online (Sandbox Code Playgroud)
为了确认,我们手动计算 OR
OR <- Reduce("/", my.table[, 1] / my.table[, 2])
OR
#[1] 5.444444
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2943 次 |
最近记录: |