You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中对Aids2数据集应用prop.test分析男女hs感染占比

如何用prop.test检验Aids2数据集中男女hs感染的比例差异

嘿,别慌!我一步步带你完成这个检验,用R语言来操作(毕竟prop.test是R里的标准函数):

1. 先整理我们需要的数据

首先,我们需要两组核心数据:男性中通过hs感染的人数、男性总人数,以及女性中通过hs感染的人数、女性总人数。

针对你给出的98条样本数据

我帮你数了一下:

  • 男性(sex=M)总共有94人,其中74人是通过hs感染的(T.categ=hs)
  • 女性(sex=F)总共有4人,没有通过hs感染的案例(所有女性的感染方式都是id或blood)

针对完整的Aids2数据集(更推荐)

如果用的是MASS包自带的完整Aids2数据集,或者你有完整数据文件,用代码自动统计更高效:

# 加载MASS包自带的Aids2数据(如果是自己的数据集,用read.csv导入)
library(MASS)
data(Aids2)

# 统计男性组:hs感染数 & 总人数
male_hs_count <- sum(Aids2$sex == "M" & Aids2$T.categ == "hs", na.rm = TRUE)
male_total <- sum(Aids2$sex == "M", na.rm = TRUE)

# 统计女性组:hs感染数 & 总人数
female_hs_count <- sum(Aids2$sex == "F" & Aids2$T.categ == "hs", na.rm = TRUE)
female_total <- sum(Aids2$sex == "F", na.rm = TRUE)

注:加na.rm=TRUE是为了忽略数据中的缺失值,避免统计出错

2. 执行比例差异检验

有了统计好的数值,直接调用prop.test()函数就行:

# 传入两组的成功数(hs感染数)和样本量(总人数)
test_result <- prop.test(
  x = c(male_hs_count, female_hs_count),
  n = c(male_total, female_total),
  correct = TRUE  # 连续性修正,小样本下建议保留
)

# 打印完整检验结果
print(test_result)

3. 解读检验结果

输出结果里重点看这几个部分:

  • p-value:如果p值<0.05,说明男女hs感染比例存在显著差异;如果p值>0.05,则没有足够证据证明差异存在。
  • 95 percent confidence interval:这个区间是两组比例差异的置信范围,如果区间不包含0,同样支持“比例有差异”的结论。
  • sample estimates:这里会显示男女各自的hs感染比例,能直观看到两组的差异大小。

针对你提供的样本数据的特殊情况

你的样本里女性hs感染数是0,prop.test会自动处理这种情况,不过如果想关闭连续性修正,可以把correct=FALSE,但小样本场景下还是建议保留修正。

小提示

如果你的数据里有缺失值,记得先用Aids2_clean <- na.omit(Aids2)清理后再统计,避免结果偏差。

内容的提问来源于stack exchange,提问作者Laurentiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:37:56