如何计算R中卡方的置信区间。是否有类似chisq.test()的函数,
答案 0 :(得分:4)
卡方检验没有置信区间(您只是在检查第一个类别变量和第二个类别变量是否独立),但是您可以对比例差异进行置信区间,像这样
假设您有一些数据,其中第一组的30%报告成功,而第二组的70%报告成功:
> my.table
[,1] [,2]
row1 70 30
row2 30 70
现在列联表中有数据:
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
,并且显然这两个比例明显不同,因此分类变量必须是独立的:
prop.test
如果您进行> 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
,则会发现您有95%的信心认为比例之间的差异介于26.29%和53.70%之间,这是有道理的,因为观察到的两个比例之间的实际差异为70%- 30%= 40%:
{{1}}
答案 1 :(得分:1)
@mysteRious的一个不错的答案:如果您有2x2
列联矩阵,则可以使用fisher.test
而不是prop.test
来测试比率< / em>的比例,而不是比例的差异。在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
然后在fit$conf.int
中给出OR的置信区间
ft$conf.int
#[1] 2.851947 10.440153
#attr(,"conf.level")
#[1] 0.95
为确认,我们手动计算OR
OR <- Reduce("/", my.table[, 1] / my.table[, 2])
OR
#[1] 5.444444