Calculations in Epidemiology

Calculations in Epidemiology

2025-09-14

样本量估算 (Sample Size Calculation)

无论是队列研究 (cohort study)、病例对照研究 (case-control study) 还是实验性研究 (experimental study),在设计阶段都需要进行样本量估算。分类变量的样本量估算有一个通用的基本公式。

1. 比较两组率的通用公式

\(n = \frac{(Z_{\alpha/2}\sqrt{2\bar{p}\bar{q}} + Z_\beta \sqrt{p_0 q_0 + p_1 q_1})^2}{(p_1 - p_0)^2}\)

应用场景:

2. 1:1 个体匹配病例对照研究

\(m = \frac{(Z_{\alpha/2} \cdot 0.5 + Z_\beta \sqrt{p(1-p)})^2}{(p-0.5)^2}\)

3. 计量资料的样本量估算 (实验性研究)

\(N = \frac{2(Z_{\alpha/2} + Z_\beta)^2 \sigma^2}{d^2}\)

4. 筛检试验的样本量估算

用于估计灵敏度或特异度达到一定精度时的样本量。

\(n = \frac{Z_{\alpha/2}^2 \cdot p(1-p)}{\delta^2}\)

当预估的灵敏度或特异度 \(p\) 很极端时(如 \(p < 0.2\) 或 \(p > 0.8\)),上述基于正态近似的公式会不够准确。此时,建议使用基于反正弦变换(arcsine transformation)的公式,结果更为可靠:

\(n = \frac{Z_{\alpha/2}^2}{(\arcsin\sqrt{p+\delta} - \arcsin\sqrt{p-\delta})^2}\)

注意: 计算出的样本量是理论最小值,实际研究中需考虑 10%-20% 的失访率,适当增加样本量。同时,样本量并非越多越好,过大的样本量会造成资源浪费。

关联分析 (Analysis of Association)

患病 (D+)未患病 (D-)
暴露 (E+)ab
未暴露 (E-)cd

无论是队列研究还是病例对照研究,分析流程通常都是先检验关联是否存在(假设检验),然后估算关联强度(效应量估计)。

对于检验关联是否存在,两者基于卡方检验,队列研究基于暴露组与非暴露组的期望事件发生率没有差异的零假设;而病例对照研究则基于病例组与对照组的期望暴露率没有差异的零假设。尽管两者基于不同的假设,但无论是队列研究的暴露组和非暴露组作为一个总体计算期望事件发生率,还是病例对照研究的病例组和对照组作为一个总体计算期望暴露率,最终都指向同一个代数形式,即Pearson卡方检验的计算公式。 因此我们不用关注a, b, c, d的具体含义,而是关注其代数形式,这是一个通用的公式。但是对于配对设计的病例对照研究,由于两个分类变量不是独立的,我们必须关注a, b, c, d的具体含义,使用McNemar检验。

队列研究 (Cohort Study)

队列研究结局发生率有三种计算方式。若队列总人数较多且人口比较稳定则为固定队列,计算累计发病率 (Cumulative Incidence, CI)——累计发病率需要报告追踪时间,否则流行病学意义不明确;若队列人数动态变化则为动态队列,计算发病密度 (Incidence Density, ID);若队列人数较少,结局发生率低,则计算标化比例数 (Standardized Incidence Ratio, SIR)。

  1. 相对危险度 (Relative Risk, RR): \(RR = \frac{I_e}{I_{ne}} = \frac{a/(a+b)}{c/(c+d)}\)

    • \(ln(RR)\) 的95%置信区间: \(ln(RR) \pm 1.96 \sqrt{\frac{b}{a(a+b)} + \frac{d}{c(c+d)}}\)
  2. 归因危险度 (Attributable Risk, AR): \(AR = I_e - I_{ne} = \frac{a}{a+b} - \frac{c}{c+d}\)

    • \(AR\) 的95%置信区间: \(AR \pm 1.96 \sqrt{\frac{I_e(1-I_e)}{a+b} + \frac{I_{ne}(1-I_{ne})}{c+d}}\)
  3. 暴露人群归因危险度百分比 (Attributable Risk Percent, AR%): \(AR\% = \frac{I_e - I_{ne}}{I_e} \times 100\% = \frac{RR-1}{RR} \times 100\)

  4. 人群归因危险度 (Population Attributable Risk, PAR): \(PAR = I_t - I_{ne}\) (其中 \(I_t = \frac{a+c}{a+b+c+d}\) 为全人群发病率)

  5. 人群归因危险度百分比 (Population Attributable Risk Percent, PAR%): \(PAR\% = \frac{I_t - I_{ne}}{I_t} \times 100\% = \frac{P_e(RR-1)}{P_e(RR-1)+1} \times 100\) (其中 \(P_e = \frac{a+b}{a+b+c+d}\) 为人群暴露率)

RR 衡量暴露的病因学意义,AR 和 PAR 则更具公共卫生学意义,表示去除暴露后可减少的超额风险。

\(ln(RR)\) 近似服从正态分布,其方差 \(Var(ln(RR)) = \frac{b}{a(a+b)} + \frac{d}{c(c+d)}\),并且对 \(RR\) 进行对数变换以后可以使得正向和负向的影响对称( \(ln0.1 = -ln10\) )。

人群归因危险度百分比的备选公式:

\(PAR\% = \frac{P_e \times AR}{I_t} = \frac{P_e(I_e - I_{ne})}{P_e I_e + (1-P_e)I_{ne}}\)

剂量反应关系分析 (Dose-Response Analysis):当暴露有不同水平(如吸烟量:不吸烟、<10支/天、10-20支/天、>20支/天)时,分析是否存在剂量反应关系可以为病因推断提供更有力的证据。 将暴露水平分为几个有序的等级,通常以无暴露组作为参照组,计算各层RR,然后进行趋势性检验 (Test for Trend)。之后可以使用 Poisson 回归 (用于发病率数据) 或 Cox 比例风险模型 (用于生存时间数据) 进行更复杂的分析。在模型中,可以将暴露水平作为有序分类变量或连续变量放入,模型的系数可以解释暴露每增加一个单位(或一个等级)对风险的影响,同时可以校正其他混杂因素。

病例对照研究 (Case-Control Study)

  1. 比值比 (Odds Ratio, OR)

    • 非配对或成组匹配设计: \(OR = \frac{ad}{bc}\)
    • 1:1 匹配设计: \(OR = \frac{c}{b}\)
  2. OR 的置信区间: 目前有两种常用的计算方法:

    • a. Woolf’s 对数转换法 (Logit-based):

      • 这是最经典和常用的方法,基于对数正态分布的近似。
      • \(ln(OR)\) 的95%置信区间: \(ln(OR) \pm 1.96 \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}}\)
      • 将计算出的上下限取反对数 (exp) 即可得到 OR 的置信区间。
      • 缺点: 当a,b,c,d中有0时,此方法失效。为解决此问题,可在计算前为所有单元格(a, b, c, d)加上0.5(Haldane-Anscombe 修正)。
    • b. Miettinen’s 检验为基础的近似法 (Test-based):

      • 这是一种利用卡方检验结果来快速估算置信区间的方法。
      • 公式: \(OR^{(1 \pm 1.96 / \chi)}\)
      • 其中 \(\chi = \sqrt{\chi^2}\),而 \(\chi^2\) 是未经校正的Pearson卡方值。
      • 优点: 计算简单,且在有零格导致Woolf法失效时依然可以使用。

要点:

实验研究 (Experimental Study) / 临床试验 (Clinical Trial)

实验研究或临床试验在关联分析上与队列研究非常相似,因为它们都前瞻性地追踪人群以观察结局。然而,其术语更侧重于评估干预措施的“疗效”或“效果”。基本数据结构仍然是 2x2 表。

结局发生 (Outcome+)结局未发生 (Outcome-)
试验组 (E+)ab
对照组 (E-)cd

疗效评价指标 (Efficacy Measures):

  1. 相对危险度 (Relative Risk, RR): \(RR = \frac{EER}{CER}\)

    • RR < 1 表示干预措施有效(降低风险)。
    • RR > 1 表示干预措施有害(增加风险)。
  2. 绝对风险降低 (Absolute Risk Reduction, ARR): \(ARR = CER - EER\)

    • 表示干预措施带来的风险净减少量。这与队列研究中的归因危险度 (AR) 在计算上是相同的。
  3. 相对风险降低 (Relative Risk Reduction, RRR): \(RRR = \frac{CER - EER}{CER} = 1 - RR\)

    • 表示与对照组相比,干预措施使风险降低的百分比。
  4. 需治疗人数 (Number Needed to Treat, NNT): \(NNT = \frac{1}{ARR} = \frac{1}{CER - EER}\)

    • 解释: 为了预防一例不良结局的发生,需要用该干预措施治疗的平均人数。NNT 是一个非常直观和实用的临床指标,通常越小越好。
    • 注意: NNT 必须与其时间范围一起报告(例如,5年 NNT 为 10)。此外,NNT的数值高度依赖于基线风险(CER)。对于同一个干预措施(具有相同的RRR),在高风险人群中(CER高),NNT会更小;在低风险人群中(CER低),NNT会更大。因此,在解读和应用NNT时,必须考虑其所对应的基线风险人群。
  5. 需伤害人数 (Number Needed to Harm, NNH):

    • 当干预措施可能导致不良反应(即有害)时使用。
    • \(NNH = \frac{1}{ARI} = \frac{1}{EER - CER}\) (其中 ARI 为绝对风险增加 Absolute Risk Increase)
    • 解释: 每治疗多少人会额外导致一例不良事件发生。NNH 通常越大越好。

这些指标为评价一项临床干预的有效性和安全性提供了核心证据。

现场试验和社区干预试验 (Field and Community Trials)

除了以患者为中心的临床试验,实验流行病学还包括在更广泛人群中进行的现场试验和社区干预试验。

  1. 现场试验 (Field Trials)

    • 对象: 通常是尚未患病但有风险的个体(如对儿童进行疫苗试验)。
    • 目的: 评价预防性措施(如疫苗、饮食补充)在真实世界环境中的效果。
    • 核心指标: 保护率 (Protective Rate, PR)疫苗效力 (Vaccine Efficacy, VE)
      • 该指标衡量干预措施相比于对照组能减少多少发病风险。
      • 公式: \(PR = \frac{I_{对照组} - I_{试验组}}{I_{对照组}} \times 100%\)
      • 从公式可以看出,保护率在数学上等同于相对风险降低 (RRR)
  2. 社区干预试验 (Community Intervention Trials)

    • 对象: 以社区或群体(如学校、村庄、城市)作为干预和分析的基本单位,而非个体。这是一种整群随机试验 (Cluster Randomized Trial)
    • 目的: 评价针对整个社区的公共卫生措施(如健康教育项目、环境改造、政策改变)的效果。
    • 评价指标:
      • 指标本身与临床试验类似,如比较干预社区和对照社区的发病率患病率或某些行为改变率的差异。
      • 然而,分析时必须考虑“整群效应”,即同一社区内个体间的相似性(Intracluster Correlation, ICC)。标准的统计检验方法需要调整,否则会增加假阳性的风险。
    • 挑战: 由于干预单位是社区,可供研究的单位数量通常较少,这使得在社区层面控制混杂因素和进行随机分配变得更加困难。

这些试验将研究从临床环境扩展到现实世界,其结果对于制定公共卫生政策至关重要。

分层分析与混杂控制

分层分析是控制混杂因素的一种重要方法。

  1. 计算各层 OR (\(OR_i\)): 按混杂因素(如年龄、性别)分层,计算每层的 OR。

  2. 同质性检验 (Test for Homogeneity):

    • 目的: 判断各层间的 \(OR_i\) 是否有统计学差异。若无差异(同质),则该因素为混杂因素,可计算合并 OR;若有差异(异质),则提示该因素为效应修饰物,应分别报告各层 OR。
    • 方法: Woolf’s \(\chi^2\) 检验。
    • 公式: \(\chi^2_{homogeneity} = \sum_{i=1}^k w_i (lnOR_i - \overline{lnOR})^2\),自由度 df = k - 1。
    • 判断: 通常以 P < 0.10 作为异质性的判断标准。
  3. 计算合并 OR (Pooled OR):

    • 方法: 常用 Mantel-Haenszel (M-H) 法计算合并的 OR (\(OR_{MH}\)),该值是各层 OR 的加权平均,校正了混杂因素的影响。
    • 公式: \(OR_{MH} = \frac{\sum_{i=1}^k (a_i d_i / n_i)}{\sum_{i=1}^k (b_i c_i / n_i)}\)
    • 同时,可进行 \(\chi^2_{MH}\) 检验来判断合并后的 OR 是否与 1 有统计学差异。

筛检试验评价 (Evaluation of Screening Tests)

疾病状态: 有 (D+)疾病状态: 无 (D-)
筛检结果: 阳性 (T+)a (真阳性, TP)b (假阳性, FP)
筛检结果: 阴性 (T-)c (假阴性, FN)d (真阴性, TN)

筛检实验经常需要考虑不同指标的权衡,及其相互影响,但是只要知道对于真实性的评价是以金标准作为基准判断——即其作为分母,是一个不变量(其只与患病率有关);而对于预测值的评价是以筛检结果作为基准判断——即其作为分母,是一个变量,而且分子——即金标准的结果是一个不变量,就能理清各种指标之间的关系。

1. 真实性 (Validity)

评价筛检试验结果与金标准“诊断”结果的符合程度。

  1. 灵敏度 (Sensitivity): \(Se = \frac{TP}{TP + FN} = \frac{a}{a+c}\) (真实患者中,被正确检出为阳性的概率)

  2. 特异度 (Specificity): \(Sp = \frac{TN}{TN + FP} = \frac{d}{b+d}\) (真实非患者中,被正确检出为阴性的概率)

  3. 似然比 (Likelihood Ratio, LR)

    • 阳性似然比 (LR+): \(LR+ = \frac{Sensitivity}{1 - Specificity}\) (越大越好, >10 则价值高)
    • 阴性似然比 (LR-): \(LR- = \frac{1 - Sensitivity}{Specificity}\) (越小越好, <0.1 则价值高)
  4. 约登指数 (Youden’s Index): \(J = Sensitivity + Specificity - 1\) (综合评价真实性的指标,值越大越好)

灵敏度表明了筛检实验发现病人的能力,特异度表明了筛检实验发现非病人的能力。似然比的含义为真实患者之于非患者中,筛检结果为阳性(阳性似然比)或者阴性(阴性似然比)的比值。约登指数是灵敏度与特异度的加权综合指标。

2. 预测值 (Predictive Value)

评价筛检结果本身的预测价值,受患病率 (Prevalence) 影响极大。

  1. 阳性预测值 (Positive Predictive Value, PPV): \(PPV = \frac{TP}{TP + FP} = \frac{a}{a+b}\) (筛检结果为阳性的人中,真正患病的概率)

  2. 阴性预测值 (Negative Predictive Value, NPV): \(NPV = \frac{TN}{TN + FN} = \frac{d}{c+d}\) (筛检结果为阴性的人中,真正未患病的概率)

核心关系: 灵敏度和特异度是筛检试验的内在属性,不受患病率影响。而预测值 (PPV, NPV) 会随患病率变化:患病率升高,PPV 升高,NPV 降低。

预测值属于收益评价的部分;而收益评价还包括在卫生经济学评价中:效果(Effectiveness) 使用临床自然单位(如治愈率),效用(Utility) 综合生命质量(如QALYs),而 效益(Benefit) 则将所有产出统一为货币单位。

3. 可靠性 (Reliability)

评价筛检试验结果的稳定与一致性。

  1. 符合率 (Agreement Rate): \(P_o = \frac{a+d}{a+b+c+d}\) (两次检验结果一致的比例)

  2. Kappa 检验:

    • 公式: \(Kappa = \frac{P_o - P_e}{1 - P_e}\)
    • \(P_e\) 为机遇一致率: \(P_e = \frac{(a+b)(a+c) + (c+d)(b+d)}{(a+b+c+d)^2}\)
    • 意义: Kappa 值校正了机遇造成的一致性,更真实地反映一致性程度。通常认为 Kappa > 0.75 表示一致性很好。

4. 试验的联合应用

  1. 并联试验 (Parallel Testing)

    • 规则: 任一试验为阳性,即为阳性。
    • 目的: 提高灵敏度,常用于初筛。
    • 净灵敏度: \(Se_{net} = 1 - (1 - Se_A)(1 - Se_B)\) (升高)
    • 净特异度: \(Sp_{net} = Sp_A \times Sp_B\) (降低)
  2. 串联试验 (Serial Testing)

    • 规则: 所有试验均为阳性,才为阳性。
    • 目的: 提高特异度,常用于确诊。
    • 净灵敏度: \(Se_{net} = Se_A \times Se_B\) (降低)
    • 净特异度: \(Sp_{net} = 1 - (1 - Sp_A)(1 - Sp_B)\) (升高)

联合实验是提高筛检与诊断实验效率的有效方法;在筛检实验确定后,灵敏度和特异度是固定的,此时也可以通过在患病率高的人群中进行筛检来提高阳性预测值。

卡方检验 (Chi-Square Test)

1. 2x2 四格表卡方检验 (Pearson’s \(\chi^2\) Test)

2. R×C 列联表卡方检验

3. 配对设计卡方检验 (McNemar’s Test)

病例暴露病例不暴露
对照暴露ab
对照不暴露cd

4. 卡方趋势性检验 (Cochran-Armitage Test for Trend)