本篇是GBD相关的第12篇推文
这次,我们讲解Age-Period-Cohort(年龄-时期-队列模型,APC模型)分析方法以及在GBD数据库上的运用。
在讲解APC模型在GBD的数据库中运用前,我们首先需要对APC模型进行简单的介绍:APC模型主要用于对慢性病发病率和死亡率变化趋势的分析,以及预测未来疾病负担变化,其考虑因素包括年龄、时期和队列3个因素。前面2期我们将介绍APC模型在GBD疾病负担研究发病率、死亡率等时间变化趋势分析中的运用。
疾病的时间趋势通常用时期效应、年龄效应、队列效应、随机变异来解释,描述性流行病学的中心问题就是在呈现疾病率的条件下,解释时期、年龄和队列对疾病发生所产生的影响。在APC模型中,时期效应(Period effect)指人为因素影响人群疾病率的变化,比如疾病诊断技术的发展、筛查和早期检测、疾病定义及登记变化、治疗改善等,这些人为因素都可能影响不同时期的疾病率,产生时期效应。年龄效应(Age effect)是疾病率随年龄变化的效应,疾病发生最重要的决定因素之一。队列效应(Cohort effect)指由于不同代人群暴露危险因素的程度不同而导致疾病率的变化。
大概介绍APC模型后,我们看下今天需要用到的网页软件https://analysistools.cancer.gov/apc/,进入官网界面后,可以看到数据上传一个通过复制黏贴,一个通过csv文件导入到网页中。通过下图可以看到,我们需要准备的数据是不同年龄层的疾病发病(死亡)数以及所在年龄层的人群数。
我们首先下载年龄层的人群数,大家直接可以在GBD官网(http://ghdx.healthdata.org/record/ihme-data/gbd-2019-population-estimates-1950-2019)下载到下图标注的3个文件
下载好后,我们打开其中一个文件查看下内容,内容基本上和我们下载疾病的数据相似,只是换成了population data。
我们将其下载好的数据解压至同一个文件夹中
疾病发病数据,我们以一篇已经发表过的文章为例,进行操作讲解和结果解读,这篇文章题目是《The epidemiological trends in the burden of lung cancer attributable to PM2.5 exposure in China》,文章和补充材料我都会上传,我们按照文章中的方法提取数据
设置好参数后,我们下载数据,需要勾选下图这个红色选项,方便后面的操作,将其文件命名为LC。
接着我们需要提取数据整理成需要的文件格式,我们打开网页提供的案例看下,一个方框内代表的是不同年龄层在同一年份的疾病死亡病数以及人群总数
因此需要将下载的数据整理成如上的格式
我们打开R语言,这里我们借鉴了网上大佬的代码进行了修改,文件是function_year5,功能是将5个单一的年份取平均值合并成5年的区段数据。
我们设置路径,读取R包以及修改后的function_year5的R文件
接着,读取population文件,由于Population文件是以一年为一个文件,我们设立循环来读取其中的数据,并整理成需要的格式
同样的,我们读取死亡病数据,并整理成需要的格式
针对2个数据的年龄层,取交集,使年龄层能够一致
接着我们将两个数据集合并整理成能够直接复制黏贴至网页版的格式
我们打开文件查看下
我们将数据复制黏贴至网页版,然后设置参数如下,点击calculate.
运行之后,我们根据结果来讲解几个重要的变量
Net Drift(% per year)是最主要的结果,这里代表死亡率/发病率的总体时间趋势,类似于死亡率的年度百分比变化,但同时考虑了归因于period和cohort因素的趋势的两个组成部分。
APC 模型还估计了每个年龄组内死亡率的时间趋势,表示为特定年龄死亡率的年度百分比变化(Local Drift,% per year),它反映了出生队列效应的趋势,其Wald chi-squared test检验结果提示是否有出生队列效应。如果检验结果有统计学差异,一个重要的含义是单一的年龄标准化率曲线和 EAPC值不能充分描述每个年龄组的时间趋势。
Drift的绝对值大于1%认为具有实质变化,而其由Wald chi-squared test进行检验。
本次结果中,Net drift为-0.528%,具有统计学差异,表明死亡率在降低。
我们再看到local drift,可以看到以67.5岁为界,62.5岁以下的死亡率是逐年下降,但67.5岁以后死亡率是逐年升高的。同时可以看到不同年龄的local drift是不同的,Local dirft=net drift的检验结果提示具有统计学差异,支持上述结论,且ASR以及EAPC值不能充分描述每个年龄组的死亡变化时间趋势。
此外,结果部分还展示了年龄(Age effect),时期(Period effect),出生队列(cohort effect)相关的数据。
年龄效应采用Longitudinal and Cross-sectional Age
Curves,其中Longitudinal Age Curves代表年龄相关的自然病程的肺癌死亡率;当从老一代到年轻一代的发病率逐渐增加时,Cross-sectional Age Curves会给人一种错误印象,即发病率随着诊断年龄的增长而下降。因此,net drift比较小时,可以考虑使用Cross-sectional Age
Curves,否则需要谨慎使用。Age deviations整合了Longitudinal and Cross-sectional Age Curves、Long2CrossRR,是年龄的非线性效应,类似于年龄的线性趋势。在其论文中,更多采用Longitudinal Age Curves来展示。本研究中,在同一出生队列中,随着年龄的增加,其死亡率逐渐升高。
时期效应采用Fitted Temporal Trends, Period RR,Period deviations展示;在其论文中,更多采用Period RR来展示,RR>1说明该时期与参考时期比死亡/发病相对风险较高,RR<1代表该时期与参考时期比死亡/发病相对风险较低。Fitted Temporal Trends是校正了的cohort deviation的参考年龄层的发病/死亡率,类似于ASR值。Period
deviations整合了Fitted Temporal Trends、Period RR的时期的非线性效应,类似于时期的线性趋势。在本次研究的Period
RR结果中,其较近年份的死亡率较前缓慢下降
出生队列效应采用Cohort RR、Local
Drifts展示结果。在其论文中,更多采用Cohort RR来展示,RR>1说明该出生队列与参考队列比死亡/发病相对风险较高,RR<1代表该出生队列与参考队列比死亡/发病相对风险较低。cohort deviations是考虑了CRR以及local drift的非线性效应,近似于线性趋势。在本次研究中,1930年以前出生的人的死亡率逐渐增加,然后在 1930 年以后出生的人中逐渐减少。
这个最终结果可以以excel或者R语言输出格式导出,可以进一步采用R语言进行分析。