GBD 概述
GBD(全球疾病负担研究)由 IHME 主持,覆盖 200+ 国家/地区、300+ 疾病/危险因素的时间序列数据。 clinResearchKit 支持 EAPC 趋势分析、APC 年龄-时期-队列建模、BAPC 预测等。
常见发表场景
某疾病发病率 1990-2021 趋势分析、EAPC 计算、"近年来 XX 疾病负担显著上升"
数据来源
IHME GBD Results Tool 下载 CSV,含 1990-2021 或 1990-2024 最新数据
01 数据加载
library(clinResearchKit) # 加载 GBD 数据(CSV / TSV) gbd_data <- gbd_load("gbd") # 查看数据结构 str(gbd_data) head(gbd_data) # 筛选:中国、发病率、1990-2021 china_inc <- gbd_data[gbd_data$location == "China" & gbd_data$measure == "Incidence" & gbd_data$year >= 1990 & gbd_data$year <= 2021, ]
GBD 数据预处理:从 IHME 下载时建议选择"Both Sex"和"All Ages", 再在 R 中按 age_group 拆分分析。
02 EAPC 趋势分析
EAPC(Estimated Annual Percentage Change):对数线性回归计算发病率/死亡率年均变化率。 "发病率每年增加 X% (95%CI: Y%-Z%)" 是期刊中常用的表述。
# 计算 EAPC(中国卒中发病率趋势) eapc_result <- gbd_eapc( gbd_data, measure = "Incidence", location = "China", age_group = "All Ages", sex = "Both", cause = "Stroke" ) # 查看结果 print(eapc_result) # 输出示例:EAPC = 1.23 (95%CI: 0.87 - 1.59), p < 0.001
# 批量计算多个疾病的 EAPC eapc_multi <- gbd_eapc( gbd_data, measure = "Incidence", location = "China", sex = "Both", group_by = "cause" # 按病种分组计算 ) # 筛选显著趋势的疾病 eapc_significant <- eapc_multi[eapc_multi$p_value < 0.05, ]
03 趋势图
# 绘制发病率趋势图(带 EAPC 标注) p_trend <- gbd_trend_line( gbd_data, measure = "Incidence", location = "China", cause = "Ischemic heart disease", age_group = "All Ages", add_eapc = TRUE, # 自动在图上标注 EAPC ci_show = TRUE # 显示置信区间 ) print(p_trend) ggsave("gbd_trend_ihd_china.pdf", p_trend, width = 10, height = 6)
# 多国家/地区对比趋势图 p_compare <- gbd_trend_line( gbd_data, measure = "Incidence", location = c("China", "United States", "Japan"), cause = "Lung cancer", age_group = "15 to 49", add_eapc = TRUE ) print(p_compare)
04 APC 年龄-时期-队列建模
APC 模型将年龄、时期、队列效应分离,是疾病时间趋势分析的标准方法。 BAPC 在 APC 基础上加入随机效应,更稳健。
# APC 模型(卒中发病率) apc_result <- gbd_apc( gbd_data, measure = "Incidence", location = "China", cause = "Stroke", sex = "Both", model = "APC", # 或 "BAPC" n_sim = 1000 # Bootstrap 次数 ) # 绘制 APC 图 p_apc <- plot_gbd_apc(apc_result) print(p_apc) # BAPC 预测(未来 5 年) bapc_pred <- gbd_bapc( gbd_data, measure = "Incidence", location = "China", cause = "Stroke", n_future = 5 # 预测未来 5 年 )
APC vs BAPC:APC 适合数据质量高、队列效应明确的分析; BAPC 适合数据稀疏或存在过离散问题的情况。
05 热力图与国家排名
# 国家发病率热力图(特定年龄组) p_heat <- gbd_heatmap( gbd_data, measure = "Incidence", age_group = "50 to 74", year_range = c(2010, 2019), top_n = 20 # 显示前 20 个国家 ) print(p_heat) # 发病率地区排名 rank_df <- gbd_area_rate( gbd_data, measure = "Incidence", cause = "Diabetes", year = 2019, sort_by = "rate", top_n = 30 )