5D Library › 衰老动力学、mTOR-AMPK自噬开关与毒物兴奋效应的生物数学模型 · English

第五章 心肺适能与死亡率:流行病学证据及其边界

三项代表性研究

心肺适能通常用最大摄氧量(VO₂max)或跑步机运动试验中达到的代谢当量(MET,1 MET 约等于静息时每千克体重每分钟 3.5 毫升的耗氧量)来衡量。过去三十多年,许多队列研究发现它与全因死亡率有很强的负相关。下面三项研究在这一领域被引用得最多。

证据

布莱尔等人 1989 年。 在得克萨斯州达拉斯一家预防医学诊所接受体检、并做了最大跑步机运动试验的 10,224 名男性与 3,120 名女性,平均随访略多于 8 年,期间共有 283 人死亡 (Blair et al. 1989)。按适能五分位数分组,年龄调整后的全因死亡率随适能升高而下降,最低适能组的死亡率是最高适能组的数倍;在调整了年龄、吸烟、胆固醇、收缩压、空腹血糖与父母冠心病史等因素之后,低适能仍与较高的死亡率相关。这是最早用客观测量的适能(而不是自我报告的活动量)研究全因死亡率的大型队列之一。

证据

小玉等人 2009 年的元分析。 汇总 33 项研究:全因死亡率分析纳入 102,980 人、6,910 例死亡,冠心病与心血管病分析纳入 84,323 人、4,485 例事件 (Kodama et al. 2009)。最大有氧能力每高 1 MET(大约相当于跑步速度快 1 公里每小时),全因死亡的合并相对风险为 0.87(95% 置信区间 0.84–0.90),冠心病与心血管病事件为 0.85(0.82–0.88),即分别约低 13% 与 15%。与高适能(10.9 MET 及以上)相比,低适能(低于 7.9 MET)的全因死亡相对风险为 1.70。

证据

曼萨格等人 2018 年。 1991–2014 年间在克利夫兰诊所因临床需要接受症状限制性跑步机运动试验的 122,007 名连续成年患者,中位随访 8.4 年,约 110 万人年,13,637 人死亡 (Mandsager et al. 2018)。按同年龄同性别的适能百分位分组:低(低于第 25 百分位)、低于平均(25–49)、高于平均(50–74)、高(75–97.6)、精英(第 97.7 百分位及以上)。调整后,低适能对精英的风险比为 5.04(4.10–6.20);精英对高适能为 0.77(0.63–0.95);低于平均对高于平均为 1.41(1.34–1.49)。同一模型中,吸烟的风险比为 1.41(1.36–1.46)、糖尿病 1.40(1.34–1.46)、冠心病 1.29(1.24–1.35)。作者的结论是:降低的心肺适能带来的调整后风险「与传统临床风险因素相当或更大」,并且适能与长期死亡率的负相关「没有观察到获益的上限」。

注

怎样读「比吸烟更危险」。 5.04 是两个极端组(最低 25% 对最高 2.3%)的比较,吸烟的 1.41 是二分比较,量级可比的是「低于平均对高于平均」的 1.41,所以原文写「相当或更大」。研究对象是因临床原因转诊的患者,适能由跑步机负荷估计;「没有观察到上限」只指在这批数据中精英组仍低于高适能组,不说明把普通人练到精英水平会带来同样的差别。

从风险比到「死亡率曲线上的年数」

风险比很难直观理解。第一章的冈珀茨曲线提供了一种换算:如果一个人群在每一个年龄的风险都是参照人群的 HRHR 倍,那么它的风险曲线等于参照曲线平移了若干年。

推导

推导。 设参照人群 μ(t)=Reαt\mu(t) = R e^{\alpha t},比较人群 HR⋅μ(t)HR \cdot \mu(t)。令 HR⋅Reαt=Reα(t+Δt)HR \cdot R e^{\alpha t} = R e^{\alpha (t + \Delta t)},得

Δt=ln⁡HRα=ln⁡HRln⁡2MRDT.\Delta t = \frac{\ln HR}{\alpha} = \frac{\ln HR}{\ln 2}\,\mathrm{MRDT}.

HR<1HR < 1 时 Δt<0\Delta t < 0:这个人群的风险「相当于年轻了 |Δt||\Delta t| 岁」。这个换算有四个假设:(1)冈珀茨曲线、忽略梅克姆项;(2)风险比在所有年龄都相同(比例风险);(3)风险比是因果的;(4)适用年龄在约 30–90 岁之间(第一章)。程序对已发表的几个风险比做换算,并用第一章的冈珀茨—梅克姆生命表检查对 50 岁时预期寿命的影响。

推导

# HR on a Gompertz curve = shift of dt = ln(HR) / alpha years. Assumes no Makeham term, proportional
# hazards and a causal HR. HRs: Kodama et al. 2009; Mandsager et al. 2018 (adjusted).
import math

HRS = [("per 1 MET higher fitness (Kodama 2009)", 0.87),
       ("below vs above average fitness (Mandsager 2018)", 1.41),
       ("smoking (Mandsager 2018)", 1.41), ("diabetes (Mandsager 2018)", 1.40),
       ("low vs elite fitness (Mandsager 2018)", 5.04)]
print(" comparison                                       |  HR  | years, MRDT 7 / 8 / 9 y")
for label, hr in HRS:
    shifts = [math.log(hr) / (math.log(2) / m) for m in (7, 8, 9)]
    print(f" {label:48s} | {hr:4.2f} | " + " / ".join(f"{s:+5.1f}" for s in shifts))

# Check with a Gompertz-Makeham life table (program 1's parameters): life expectancy at 50
ALPHA = math.log(2) / 8; R = 0.004 / math.exp(ALPHA * 50); A = 0.0005
def e50(hr=1.0, dt=0.01):
    s, e = 1.0, 0.0
    for i in range(int(75 / dt)):
        e += s * dt; s *= math.exp(-hr * (A + R * math.exp(ALPHA * (50 + i * dt))) * dt)
    return e
base = e50()
print(f"life expectancy at 50, reference hazard: {base:.1f} y")
for label, hr in (("0.87 (1 MET)", 0.87), ("0.87^3 (3 METs)", 0.87 ** 3), ("1 / 5.04", 1 / 5.04)):
    print(f"  hazard x {label:16s}: {e50(hr):5.1f} y ({e50(hr) - base:+.1f})")
# If only half of the observed log-HR were causal (the rest confounding):
half = math.exp(math.log(0.87) / 2)
print(f"half of ln(0.87) causal -> HR {half:.3f}, {math.log(half) / ALPHA:+.2f} y per MET,"
      f" life expectancy at 50 {e50(half) - base:+.1f} y")
#  comparison                                       |  HR  | years, MRDT 7 / 8 / 9 y
#  per 1 MET higher fitness (Kodama 2009)           | 0.87 |  -1.4 /  -1.6 /  -1.8
#  below vs above average fitness (Mandsager 2018)  | 1.41 |  +3.5 /  +4.0 /  +4.5
#  smoking (Mandsager 2018)                         | 1.41 |  +3.5 /  +4.0 /  +4.5
#  diabetes (Mandsager 2018)                        | 1.40 |  +3.4 /  +3.9 /  +4.4
#  low vs elite fitness (Mandsager 2018)            | 5.04 | +16.3 / +18.7 / +21.0
# life expectancy at 50, reference hazard: 30.5 y
#   hazard x 0.87 (1 MET)    :  31.9 y (+1.4)
#   hazard x 0.87^3 (3 METs) :  34.8 y (+4.3)
#   hazard x 1 / 5.04        :  47.9 y (+17.4)
# half of ln(0.87) causal -> HR 0.933, -0.80 y per MET, life expectancy at 50 +0.7 y

MRDT 取 8 年时,每 1 MET 的风险比 0.87 相当于死亡率曲线向右平移约 1.6 年;MRDT 取 7 或 9 年,结果在 1.4 到 1.8 年之间。在生命表中,把 50 岁以后每个年龄的风险乘以 0.87,50 岁时的剩余预期寿命从 30.5 年增加到 31.9 年(+1.4 年);乘以 0.8730.87^3(相当于高 3 MET),增加 4.3 年。

同样的换算用于曼萨格等人的数字:「低于平均对高于平均」的 1.41 与吸烟的 1.41 都相当于约 4 年;「低对精英」的 5.04 相当于约 19 年。最后这个数字说明了换算的局限:在生命表中把风险除以 5.04,50 岁的剩余预期寿命增加 17.4 年,即从约 80 岁延长到约 98 岁——这远远超出任何干预研究所见,提示极端组之间的差别中有很大一部分不是「适能本身」造成的。如果每 1 MET 的对数风险比只有一半是因果的,平移就只有约 0.8 年,预期寿命增加约 0.7 年。

观察性研究不能说明的事

以上数字都来自观察性研究,只说明适能与死亡率相关。至少三种偏倚会使观察到的关联大于因果效应:反向因果(未诊断的疾病同时降低运动能力与提高死亡风险,排除随访最初几年的死亡只能部分处理);遗传与体质混杂(见下一节与本系列第 22 本);健康使用者偏倚(高适能者在饮食、睡眠、就医与社会经济条件上也不同)。

推导

一个合成队列:200,000 名成年人,随访 10 年。假设:一个遗传或体质因素 GG 每高 1 个标准差使适能高 0.8 MET,同时独立地使死亡风险降低(风险比 0.85);8% 的人有未诊断的疾病,使测得的适能低 1.5 MET,并使前 2 年的死亡风险增加到 3 倍;适能本身的真实因果效应是每 1 MET 风险比 0.94。用泊松回归估计每 1 MET 的风险比。最后计算两个已发表风险比的 E 值:E 值是一个未测量的混杂因素需要与暴露和结局各自有多强的关联(风险比尺度),才能完全解释掉观察到的关联 (VanderWeele and Ding 2017)。

推导

# Synthetic cohort, 200,000 adults, 10 years (fixed seed). G raises fitness 0.8 MET/SD and lowers
# hazard (HR 0.85/SD); 8 % hidden disease: -1.5 MET, hazard x3 in years 0-2. True HR 0.94/MET.
# Poisson regression (Newton-Raphson); E-values after VanderWeele & Ding 2017.
import math, random

rng, TRUE, rows = random.Random(30), math.log(0.94), []
for _ in range(200_000):
    g = rng.gauss(0, 1); z = rng.random() < 0.08
    met = 9 + 0.8 * g + rng.gauss(0, 1.8) - (1.5 if z else 0)
    base = 0.008 * math.exp(TRUE * (met - 9) + math.log(0.85) * g)
    t1 = rng.expovariate(base * (3 if z else 1))
    t = t1 if t1 < 2 else 2 + rng.expovariate(base)
    rows.append((met, g, min(t, 10.0), int(t < 10)))

def poisson_hr(data, use_g):            # data: (MET, g, years, died); returns exp(slope on MET)
    k = 3 if use_g else 2
    b = [math.log(sum(r[3] for r in data) / sum(r[2] for r in data))] + [0.0] * (k - 1)
    for _ in range(12):
        G = [0.0] * k; Hm = [[0.0] * k for _ in range(k)]
        for x, g, y, d in data:
            v = (1.0, x - 9, g)[:k]; m = y * math.exp(sum(bi * vi for bi, vi in zip(b, v)))
            for i in range(k):
                G[i] += (d - m) * v[i]
                for j in range(k): Hm[i][j] += m * v[i] * v[j]
        for i in range(k):                  # Gauss-Jordan: solve Hm * step = G
            piv = Hm[i][i]; Hm[i] = [h / piv for h in Hm[i]]; G[i] /= piv
            for j in range(k):
                if j != i:
                    f = Hm[j][i]; G[j] -= f * G[i]
                    Hm[j] = [a - f * c for a, c in zip(Hm[j], Hm[i])]
        b = [bi + s for bi, s in zip(b, G)]
    return math.exp(b[1])

late = [(m, g, t - 2, d) for m, g, t, d in rows if t > 2]      # follow-up from year 2
print(f"deaths: {sum(r[3] for r in rows)} of {len(rows)}; true causal HR per MET: 0.940")
print(f"observed HR per MET, all follow-up:             {poisson_hr(rows, False):.3f}")
print(f"observed, deaths in the first 2 years excluded: {poisson_hr(late, False):.3f}")
print(f"adjusted for G (unmeasurable in practice):      {poisson_hr(rows, True):.3f}")
print(f"adjusted for G, early deaths excluded:          {poisson_hr(late, True):.3f}")
def e_value(rr):
    rr = 1 / rr if rr < 1 else rr
    return rr + math.sqrt(rr * (rr - 1))
print(f"E-values: HR 0.87 per MET -> {e_value(0.87):.2f}; HR 5.04 low vs elite -> "
      f"{e_value(5.04):.2f}")
# deaths: 16263 of 200000; true causal HR per MET: 0.940
# observed HR per MET, all follow-up:             0.894
# observed, deaths in the first 2 years excluded: 0.905
# adjusted for G (unmeasurable in practice):      0.921
# adjusted for G, early deaths excluded:          0.934
# E-values: HR 0.87 per MET -> 1.56; HR 5.04 low vs elite -> 9.55

真实效应是 0.940,但直接估计得到 0.894,其对数风险比约为真实值的 1.8 倍。排除前 2 年的死亡后得到 0.905,只纠正了一小部分;调整 GG 之后得到 0.921;两者都做,才接近真实值(0.934)。在真实研究中,GG 正是无法测量的那一部分。

E 值给出另一个角度。每 1 MET 风险比 0.87 的 E 值是 1.56:一个与适能和死亡各自有约 1.56 倍关联的未测量因素,就足以解释掉这一关联——这样的因素并不难想象。「低对精英」的 5.04 的 E 值是 9.55,要完全解释掉它需要非常强的混杂;但这只说明关联不太可能全部来自混杂,而不说明 5.04 的大小是因果的。

证据

唯一的大型随机试验。 挪威的 Generation 100 研究把 1,567 名 70–77 岁的老人(出生于 1936–1942 年)随机分为每周两次高强度间歇训练(400 人)、每周两次中等强度持续训练(387 人)与按国家体力活动指南自行活动的对照组(780 人),随访 5 年 (Stensvold et al. 2020)。对照组的死亡率为 4.7%;两种训练合并与对照组相比,全因死亡率没有差别。高强度间歇训练对对照的风险比为 0.63(0.33–1.20),对中等强度为 0.51(0.25–1.02),都没有达到统计学显著。作者指出,对照组中许多人自己做了相当多的高强度活动,组间差别因此缩小。

这项试验不否定适能的重要性(对照组本身很活跃、参与者较健康、死亡事件有限),但它提醒我们,从观察性风险比推断「开始训练会带来多少年」是一个很大的跳跃。

适能的遗传成分与训练反应的异质性

证据

HERITAGE 家庭研究。 久坐的成年人在标准化的 20 周训练后,最大摄氧量平均增加 384 毫升/分,标准差 202 毫升/分,个体之间从几乎没有增加到增加约 1,000 毫升/分不等(720 名完成并依从训练的受试者);在白人家庭中,家庭之间的方差是家庭内部方差的约 2.5 倍 (Bouchard and Rankinen 2001)。布沙尔等人 2011 年估计,最大摄氧量训练增益的遗传力约为 47%(来自 99 个家庭的 473 名白人成年人);他们筛选出的 21 个单核苷酸多态性在同一样本中解释了训练反应变异的约 49%,并在其他队列中做了部分重复 (Bouchard et al. 2011)。在同一样本中筛选并评估的预测力会高估在新样本中的表现,这一数字应当谨慎看待。

「练了没效果」常被归结为「无反应者」,但观测到的变化中混有测量误差与日间变异。

推导

阿特金森与巴特汉姆 2015 年指出,真实的个体反应标准差应当用干预组与对照组变化量标准差的差来估计:SD真实=SD干预2−SD对照2SD_\text{真实} = \sqrt{SD_\text{干预}^2 – SD_\text{对照}^2} (Atkinson and Batterham 2015)。HERITAGE 没有不训练的对照组,下面的对照组标准差都是假设。程序的第二部分在 100,000 名合成受试者中,比较「观测增益低于 100 毫升/分」与「真实增益低于 100 毫升/分」的比例。

推导

# True response SD = sqrt(SD_trained^2 - SD_control^2) (Atkinson & Batterham 2015). HERITAGE:
# mean gain 384, SD 202 mL/min (Bouchard & Rankinen 2001); control SDs are assumptions.
import math, random

MEAN, SD_OBS = 384.0, 202.0
print(" assumed SD of change without training | implied SD of true response | true CV")
for sd_ctrl in (0, 80, 120, 160):
    sd_true = math.sqrt(SD_OBS ** 2 - sd_ctrl ** 2)
    print(f"              {sd_ctrl:3d} mL/min               |        {sd_true:5.0f} mL/min"
          f"         |  {sd_true / MEAN:4.0%}")

rng = random.Random(30)
print(" assumed control SD | observed 'non-responders' | true gain < 100 | of observed, truly")
for sd_ctrl in (80, 120, 160):
    sd_true = math.sqrt(SD_OBS ** 2 - sd_ctrl ** 2)
    obs_nr = true_nr = both = 0
    for _ in range(100_000):
        true = rng.gauss(MEAN, sd_true); obs = true + rng.gauss(0, sd_ctrl)
        obs_nr += obs < 100; true_nr += true < 100; both += (obs < 100) and (true < 100)
    print(f"      {sd_ctrl:3d} mL/min    |          {obs_nr / 1000:4.1f} %          |"
          f"     {true_nr / 1000:4.1f} %     |       {both / max(obs_nr, 1):4.0%}")
print("heritability of the VO2max gain in HERITAGE: about 47 % (Bouchard et al. 2011)")
#  assumed SD of change without training | implied SD of true response | true CV
#                 0 mL/min               |          202 mL/min         |   53%
#                80 mL/min               |          185 mL/min         |   48%
#               120 mL/min               |          162 mL/min         |   42%
#               160 mL/min               |          123 mL/min         |   32%
#  assumed control SD | observed 'non-responders' | true gain < 100 | of observed, truly
#        80 mL/min    |           7.9 %          |      6.2 %     |        61%
#       120 mL/min    |           8.0 %          |      4.0 %     |        34%
#       160 mL/min    |           8.2 %          |      1.1 %     |         7%
# heritability of the VO2max gain in HERITAGE: about 47 % (Bouchard et al. 2011)

如果不训练时变化量的标准差为 120 毫升/分,真实反应的标准差约为 162 毫升/分,仍然相当大(变异系数约 42%):训练反应的个体差异是真实的。但「观测到的无反应者」与「真正的无反应者」是两回事:观测增益低于 100 毫升/分的人约占 8%,其中只有约三分之一的人真实增益也低于 100;如果测量误差更大(标准差 160),这一比例降到 7%。所以,一次训练前后的测量不足以把某个人判定为「无反应者」,更不能据此推断此人「天生练不出来」。

假说 · 尚未验证

遗传混杂能解释适能—死亡关联的相当一部分(尚未确立)。如果遗传因素同时影响适能与死亡风险,那么在同卵双生子中,适能较高的一方相对于另一方的死亡风险降低,应当明显小于在无关个体之间观察到的降低。可以在有客观适能测量的大型双生子队列中检验;如果同卵双生子内部的风险比与人群中的风险比相近,说明遗传混杂不是主要原因,这一假说被削弱。

本章小结

布莱尔 1989、小玉 2009 与曼萨格 2018 一致显示,心肺适能与全因死亡率强烈负相关:每高 1 MET 风险约低 13%,最低与最高适能组之间的调整风险比可达 5 倍。按原文,降低的适能的风险「与传统风险因素相当或更大」,可比的对比是「低于平均对高于平均」的 1.41 与吸烟的 1.41。在冈珀茨曲线上,0.87 约相当于 1.6 年的平移,但这要求风险比是因果的、各年龄成比例;合成队列显示反向因果与遗传混杂可以使观察到的效应放大约一倍,唯一的大型随机试验没有发现有组织的训练在 5 年内降低死亡率。训练反应的个体差异是真实的,并有约一半的遗传力,但单次测量不足以判定「无反应者」。下一章讨论怎样训练:强度分布、Zone 2 与脉冲—响应模型。

参考文献

Atkinson, Greg, and Alan M. Batterham. 2015. “True and False Interindividual Differences in the Physiological Response to an Intervention.” Experimental Physiology 100 (6): 577–88. https://doi.org/10.1113/EP085070.
Blair, Steven N., III Kohl Harold W., Jr. Paffenbarger Ralph S., Debra G. Clark, Kenneth H. Cooper, and Larry W. Gibbons. 1989. “Physical Fitness and All-Cause Mortality: A Prospective Study of Healthy Men and Women.” JAMA 262 (17): 2395–401. https://doi.org/10.1001/jama.1989.03430170057028.
Bouchard, Claude, and Tuomo Rankinen. 2001. “Individual Differences in Response to Regular Physical Activity.” Medicine & Science in Sports & Exercise 33 (6 Suppl): S446–51.
Bouchard, Claude, Mark A. Sarzynski, Treva K. Rice, et al. 2011. “Genomic Predictors of the Maximal O2_2 Uptake Response to Standardized Exercise Training Programs.” Journal of Applied Physiology 110 (5): 1160–70. https://doi.org/10.1152/japplphysiol.00973.2010.
Kodama, Satoru, Kazumi Saito, Shiro Tanaka, et al. 2009. “Cardiorespiratory Fitness as a Quantitative Predictor of All-Cause Mortality and Cardiovascular Events in Healthy Men and Women: A Meta-Analysis.” JAMA 301 (19): 2024–35. https://doi.org/10.1001/jama.2009.681.
Mandsager, Kyle, Serge Harb, Paul Cremer, Dermot Phelan, Steven E. Nissen, and Wael Jaber. 2018. “Association of Cardiorespiratory Fitness with Long-Term Mortality Among Adults Undergoing Exercise Treadmill Testing.” JAMA Network Open 1 (6): e183605. https://doi.org/10.1001/jamanetworkopen.2018.3605.
Stensvold, D., H. Viken, S. L. Steinshamn, et al. 2020. “Effect of Exercise Training for Five Years on All Cause Mortality in Older Adults—the Generation 100 Study: Randomised Controlled Trial.” BMJ 371: m3485. https://doi.org/10.1136/bmj.m3485.
VanderWeele, Tyler J., and Peng Ding. 2017. “Sensitivity Analysis in Observational Research: Introducing the E-Value.” Annals of Internal Medicine 167 (4): 268–74. https://doi.org/10.7326/M16-2607.

Fan, Y. (2026). Ageing Kinetics, the mTOR-AMPK Autophagy Switch and Hormesis: From the Gompertz Mortality Law and Mitohormesis to Cardiorespiratory Fitness Epidemiology, Read Beside Classical Chinese Longevity Philosophy [衰老动力学、mTOR-AMPK自噬开关与毒物兴奋效应的生物数学模型] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23770092 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).