流行病学
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
cc
病例对照交叉乘积优势比
Stata
cc case exposedR 包:base
unname(a * d / (b * c))与 Stata 有差异 固定流程;请明确调整示例列名。病例对照抽样可识别优势比,不能识别绝对疾病风险。
精确条件优势比推断
Stata
cc case exposed, exactR 包:stats
stats::fisher.test(tab, alternative = "two.sided")与 Stata 有差异 固定流程;请明确调整示例列名。条件估计和双侧p值计算约定可能不同。
对数优势比近似Wald区间
Stata
cc case exposed, woolfR 包:stats
{ log_or <- log(a * d / (b * c)); se <- sqrt(sum(1 / tab)); exp(c(estimate = log_or, lower = log_or - qnorm(.975) * se, upper = log_or + qnorm(.975) * se)) }与 Stata 有差异 固定流程;请明确调整示例列名。计数不能为零;未自动施加连续性修正。
cci
病例对照交叉乘积优势比
Stata
cci 20 10 80 90R 包:base
unname(a * d / (b * c))与 Stata 有差异 固定流程;请明确调整示例列名。病例对照抽样可识别优势比,不能识别绝对疾病风险。
精确条件优势比推断
Stata
cci 20 10 80 90, exactR 包:stats
stats::fisher.test(tab, alternative = "two.sided")与 Stata 有差异 固定流程;请明确调整示例列名。条件估计和双侧p值计算约定可能不同。
对数优势比近似Wald区间
Stata
cci 20 10 80 90, woolfR 包:stats
{ log_or <- log(a * d / (b * c)); se <- sqrt(sum(1 / tab)); exp(c(estimate = log_or, lower = log_or - qnorm(.975) * se, upper = log_or + qnorm(.975) * se)) }与 Stata 有差异 固定流程;请明确调整示例列名。计数不能为零;未自动施加连续性修正。
cs
风险比和风险差
Stata
cs case exposedR 包:base
{ risk1 <- a / (a + c); risk0 <- b / (b + d); c(risk_exposed = risk1, risk_unexposed = risk0, risk_ratio = risk1 / risk0, risk_difference = risk1 - risk0) }与 Stata 有差异 固定流程;请明确调整示例列名。点风险量要求可比随访的队列设计;病例对照抽样不能识别绝对风险。
暴露组和总体归因分值
Stata
cs case exposedR 包:base
{ rr <- (a / (a + c)) / (b / (b + d)); af_exposed <- 1 - 1 / rr; risk_population <- (a + b) / (a + b + c + d); c(attributable_fraction_exposed = af_exposed, attributable_fraction_population = (risk_population - b / (b + d)) / risk_population) }与 Stata 有差异 固定流程;请明确调整示例列名。因果解释还要求可交换性和正确的研究抽样。
队列表的Fisher精确关联检验
Stata
cs case exposed, exactR 包:stats
stats::fisher.test(tab)与 Stata 有差异 固定流程;请明确调整示例列名。R报告条件极大似然优势比;Stata还报告样本交叉乘积指标。
队列表的Woolf优势比区间
Stata
cs case exposed, or woolfR 包:stats
{ odds <- a * d / (b * c); se <- sqrt(1 / a + 1 / b + 1 / c + 1 / d); c(odds_ratio = odds, lower = exp(log(odds) - qnorm(.975) * se), upper = exp(log(odds) + qnorm(.975) * se)) }与 Stata 有差异 固定流程;请明确调整示例列名。Woolf近似要求所有单元格计数为正。
csi
风险比和风险差
Stata
csi 20 10 80 90R 包:base
{ risk1 <- a / (a + c); risk0 <- b / (b + d); c(risk_exposed = risk1, risk_unexposed = risk0, risk_ratio = risk1 / risk0, risk_difference = risk1 - risk0) }与 Stata 有差异 固定流程;请明确调整示例列名。点风险量要求可比随访的队列设计;病例对照抽样不能识别绝对风险。
暴露组和总体归因分值
Stata
csi 20 10 80 90R 包:base
{ rr <- (a / (a + c)) / (b / (b + d)); af_exposed <- 1 - 1 / rr; risk_population <- (a + b) / (a + b + c + d); c(attributable_fraction_exposed = af_exposed, attributable_fraction_population = (risk_population - b / (b + d)) / risk_population) }与 Stata 有差异 固定流程;请明确调整示例列名。因果解释还要求可交换性和正确的研究抽样。
队列表的Fisher精确关联检验
Stata
csi 20 10 80 90, exactR 包:stats
stats::fisher.test(tab)与 Stata 有差异 固定流程;请明确调整示例列名。R报告条件极大似然优势比;Stata还报告样本交叉乘积指标。
队列表的Woolf优势比区间
Stata
csi 20 10 80 90, or woolfR 包:stats
{ odds <- a * d / (b * c); se <- sqrt(1 / a + 1 / b + 1 / c + 1 / d); c(odds_ratio = odds, lower = exp(log(odds) - qnorm(.975) * se), upper = exp(log(odds) + qnorm(.975) * se)) }与 Stata 有差异 固定流程;请明确调整示例列名。Woolf近似要求所有单元格计数为正。
dstdize
ir
发生率比和发生率差
Stata
ir cases exposed timeR 包:base
c(rate_exposed = 20 / 100, rate_unexposed = 10 / 200, incidence_rate_ratio = (20 / 100) / (10 / 200), rate_difference = 20 / 100 - 10 / 200)与 Stata 有差异 固定流程;请明确调整示例列名。分母为人时,结果是发生率而非风险。
两组Poisson发生率的精确比较
Stata
ir cases exposed time, exactR 包:stats
stats::poisson.test(c(20, 10), T = c(100, 200))与 Stata 有差异 固定流程;请明确调整示例列名。Stata ir和iri默认mid-p,本例明确请求精确推断。
iri
发生率比和发生率差
Stata
iri 20 10 100 200R 包:base
c(rate_exposed = 20 / 100, rate_unexposed = 10 / 200, incidence_rate_ratio = (20 / 100) / (10 / 200), rate_difference = 20 / 100 - 10 / 200)与 Stata 有差异 固定流程;请明确调整示例列名。分母为人时,结果是发生率而非风险。
两组Poisson发生率的精确比较
Stata
iri 20 10 100 200, exactR 包:stats
stats::poisson.test(c(20, 10), T = c(100, 200))与 Stata 有差异 固定流程;请明确调整示例列名。Stata ir和iri默认mid-p,本例明确请求精确推断。
istdize
mcc
根据不一致配对计算匹配优势比
Stata
mcc exposed_case exposed_controlR 包:base
c(matched_odds_ratio = tab[1, 2] / tab[2, 1], discordant_pairs = tab[1, 2] + tab[2, 1])与 Stata 有差异 固定流程;请明确调整示例列名。一致配对不提供匹配优势比信息。
配对二元暴露的McNemar比较
Stata
mcc exposed_case exposed_controlR 包:stats
stats::mcnemar.test(tab, correct = FALSE)与 Stata 有差异 固定流程;请明确调整示例列名。使用未修正的渐近统计量;精确或连续性修正方法不同。
mcci
根据不一致配对计算匹配优势比
Stata
mcci 30 12 4 54R 包:base
c(matched_odds_ratio = tab[1, 2] / tab[2, 1], discordant_pairs = tab[1, 2] + tab[2, 1])与 Stata 有差异 固定流程;请明确调整示例列名。一致配对不提供匹配优势比信息。
配对二元暴露的McNemar比较
Stata
mcci 30 12 4 54R 包:stats
stats::mcnemar.test(tab, correct = FALSE)与 Stata 有差异 固定流程;请明确调整示例列名。使用未修正的渐近统计量;精确或连续性修正方法不同。
mhodds
Mantel-Haenszel共同优势比
Stata
mhodds case exposed stratumR 包:stats
stats::mantelhaen.test(tabs, correct = FALSE)与 Stata 有差异 固定流程;请明确调整示例列名。表格方向决定优势比方向;假设各层共同效应。