查看原文
其他

临床研究讲座:流行病学数据分析基础(5/6):队列研究数据分析实例

唐金陵 临床研究与循证医学 2022-03-25

目录

第一节  概述

第二节  流行病学专题研究数据的分析

第三节  队列研究数据分析实例

一、估计发病频率

二、估计效应的大小及其可信区间

三、识别和控制混杂

四、识别和测量交互作用

五、识别和测量剂量效应关系

第四节  常规收集的流行病学数据的分析

第五节:全文总结


第三节  队列研究数据分析实例

 

计算机和统计软件的出现使得利用统计学公式进行手工计算的年代一去不复返了,了解和掌握如何利用统计学软件进行流行病学数据分析已成了学习流行病学的必修课。下面我们将通过一个案例分析,利用统计学软件,演示如何进行流行病学数据的基本分析。

 

比值比是流行病学数据分析中最常用的效应指标。如果选择比值比做为效应指标,本系列文章介绍的所有分析内容都可以通过Logistic回归分析完成。本案例分析的数据来自一个虚拟的前瞻性研究(数据获取方式见文末),平均观察时间为5年,拟回答的研究问题是:吸烟是否可以引起高血压?因此,吸烟是暴露,高血压是疾病(结局)。


研究共包括1,967名研究对象,其中男性941人,女性1,026人;年龄范围为15岁-90岁,平均年龄44.3岁,标准差为15.6岁;<33岁、33岁-43岁、44岁-54岁、55岁以上(55+)年龄组的人数分别为:487、494、468、518人;吸烟者559人,非吸烟者1,408人。


与研究目的相对应,数据分析的主要目的是考察吸烟与高血压的关系。我们还假设性别和年龄是可疑的混杂因子,年龄是可疑的效应修饰因子。分析的重点在于展示如何利用Logistic回归分析,估计效应大小,识别和控制混杂,识别和测量交互作用,识别和测量剂量效应关系,以及估计各种指标及其可信区间。统计学软件为SPSS,假设读者对SPSS中描述性分析及logistic回归的操作方法及有关选项的含义已有基本的了解。

 


图5 SPSS数据库的界面

 

将此虚拟研究的数据输入SPSS软件(版本:16.0;界面语言:英文)后,界面如图5所示。点击数据表左下角的“Variable View”,即可查看变量的属性并对其进行编辑:Name为变量名;Type为变量的表达方式,Numeric意思是用数字表达;Values是变量的赋值,如在“性别”变量中,“0”表示“女性”,“1”表示“男性”;Measure是变量类型,其中Nominal为分类变量,Scale为连续变量,Ordinal为等级变量(分级变量或有序分类变量)。


在本研究中,各个变量的属性及含义如下:“性别”为分类变量,0 =“女性”,1 =“男性”(注:理论上讲,对于分类变量的赋值,具体要用哪个数字、采取什么顺序,是没有硬性要求的,例如此处如果设成1 =“女性”、2=“男性”,或1=“男性”、2=“女性”,都是可以的,在解释和报告的时候说明清楚即可);“年龄”为连续变量,以岁为单位;“年龄组”为等级变量(除非在分析时特别注明要设置成其它类型的变量,如“categorical covariates”,即多分类变量),1=“<33”,2=“33-43”,3=“44-54”,4=“55+”;“吸烟”为分类变量,0=“非吸烟者”,1=“吸烟者”;“血压”为分类变量,0=“血压正常人”,1=“高血压患者”;其余属性对本分析无实质性的影响,在此不做赘述。

 

接下来,我们将围绕以下5个目的,详细讲述Logistic回归分析的步骤和结果:(1)估计发病频率;(2)估计效应的大小及其可信区间;(3)识别和控制混杂;(4)识别和测量交互作用;(5)识别和测量剂量效应关系。

 

一、估计发病频率

 

如前所述,发病率由观察时间、可能发病的总人数和实际发病人数决定,并可因某些因素不同而有多种表达方式。在本分析中,我们将计算高血压的累积发病率,即以研究开始时的总人数为分母,假设随访时间为5年,以随访期间发病的高血压总人数为分子。在SPSS顶部的菜单中,选择“Analyze”,在其下拉菜单中,选择“Descriptive Statistics”,然后进一步选择其右侧下拉菜单中的“Frequencies”,表示我们要对变量的频率进行描述性统计分析。


在弹出的对话框中,左边的方框里有本研究的全部5个变量,即性别、年龄、年龄组、吸烟、血压。点击“血压”,然后点击对话框中部的箭头符号,将“血压”选入右边的“Variable(s)”方框,表示我们要对这个变量进行描述性分析,然后点击对话框底部的“OK”,即可得到分析的结果。在结果的表格中,“高血压”那一行所对应的“frequency”为452,“percent”为23.0,说明在1,967名研究对象中,共有452人发生了高血压,占总人数的23%,即高血压的5年累积发病率为23%。

 

二、估计效应的大小及其可信区间

 

为描述吸烟与高血压的关系,我们选择OR作为效应测量指标。在此关系中,吸烟是因,高血压是果,因此吸烟是自变量,高血压是因变量。首先,假设吸烟与高血压的关系不受其它因素的影响,估计粗OR及其95% CI。吸烟组和非吸烟组的人数分别为559和1408,两组的高血压人数分别为133和319,依此手工计算的OR=1.066,其95% CI:0.846-1.343。

 

表9 SPSS分析的结果1

 

在SPSS顶部的菜单中,选择“Analyze”,在其下拉菜单中,选择“Regression”,然后进一步选择其右侧下拉菜单中的“Binary Logistic”(二分Logistic),选择Binary Logistic是因为因变量高血压是二分变量,表示要进行因变量为二分变量的Logistic回归分析。


在弹出的对话框中,把左侧框里的“吸烟”选入右侧的“Covariates”(协变量/自变量)下面的框里,把“血压”选入“Dependent”(因变量) 下面的框里,并打开右侧的“Options”对话框,用以对分析中的一些细节要求进行设置,在此对话框中,把“CI for exp(B) 95%”左侧的方框选中,即要求在结果中给出95% CI。


然后,点击对话框底部的“Continue”运行此分析,其主要结果如表9所示。表中Wald卡方检验值为0.292,p值为0.589(>0.05),表明吸烟与高血压的关联没有统计学显著性;Exp(B)=1.066,即吸烟与高血压的关联的粗OR值=1.066,其95%CI: 0.846-1.343。Logistic回归的结果与上述手工计算的结果完全一致。

 

三、识别和控制混杂

 

以上估计的OR值为粗OR值,即可能受混杂影响的有偏倚的估计值。现假设性别和年龄是可疑的混杂因素。为考察这两个因素的影响,需计算在控制了它们的影响之后的效应值,即调整的OR值。如果粗OR值与调整的OR值之间存在差别,即提示存在年龄和性别引起的混杂,差别的大小反映了混杂作用的大小,差别越大,说明混杂作用越大,调整的OR为无(该混杂因素引起的)混杂偏倚的估计,当然这不能排除调整的OR还存在其它混杂因素引起的偏倚。反之,如二者没有区别,说明粗OR值不存在年龄和性别引起的混杂,是无(该混杂因素引起的)混杂偏倚的估计,当然这也不能排除粗OR还存在其它混杂因素引起的偏倚。

 

首先来看一下年龄的影响。仍然按照上面说过的步骤在SPSS打开Logistic回归分析的对话框,把“吸烟”和“年龄组”这两个变量同时选入“Covariates”下面的框里,表示不只考虑了吸烟的效应,同时还考虑了年龄的作用;把“血压”选入“Dependent”下面的框里,并打开右侧的“Categorical”,把年龄组选入“Categorical Covariates”(多分类变量)下面的框里,即把它定义为多分类变量,使用多分类变量可以避免对连续变量分布特征假设的错误。然后,运行此分析,其主要结果如表10所示。

 

表10 SPSS分析的结果2


可见,在控制了年龄组混杂作用的影响后,吸烟与高血压关系的OR值为0.926(95% CI:0.721-1.189),而我们之前的分析得到的粗OR值为1.066,二者存在差别,差值为0.140,说明吸烟与高血压的粗OR值存在年龄因素导致的混杂。同理可得,控制性别后,吸烟与高血压的调整OR值为0.793(95% CI:0.602-1.045),与粗OR值有差别,二者差值为0.273,说明性别对粗OR值也有混杂作用。


而且,性别造成的差别大于年龄造成的差别,提示在此研究中性别的混杂作用大于年龄。用M-H法估计的无年龄混杂和无性别混杂的OR值分别为0.927(95% CI:0.724-1.187)和0.801(95% CI:0.612-1.049)(详情省略),与Logistic回归分析的结果几乎一样,结论也一致。

 

将吸烟、年龄和性别做为自变量同时放入回归方程,也就是在上述SPSS操作的时候把“年龄组”和“性别”这两个变量都选进“Covariates”下面的框里,得出的OR值为0.650(95%CI:0.480-0.879),此OR值是同时控制了年龄和性别的混杂作用后的无偏倚的估计值。


四、识别和测量交互作用

 

在本研究中,我们假设年龄是可能的效应修饰因子,也就是说吸烟与年龄可能存在交互作用。如前所述,识别交互作用的关键在于一致性检验。因此,识别吸烟与年龄之间是否有交互作用,就是检验不同年龄组之间吸烟对高血压的效应是否具有一致性。在SPSS中,可以通过多种方法来进行一致性检验,在此我们只介绍其中的一种。

 

首先,在SPSS顶部的菜单中,选择“Data”,在其下拉菜单中,选择“Split File”,在弹出的对话框中,选中右侧“Compare Groups”左侧的圆圈,并将左侧框中“年龄组”这个变量选入到右边“Groups Based on”下面的框里,即根据年龄组把研究对象分为不同的层,目的是使得接下来的Logistic回归分析可以在不同的层里面分别估计吸烟与高血压的OR值,设置好之后点击对话框底部的“OK”。


接着,重复上面说过的Logistic回归分析操作:在SPSS顶部的菜单中,选择“Analyze”,在其下拉菜单中,选择“Regression”,然后进一步选择其右侧下拉菜单中的“Binary Logistic”,在弹出的对话框中,把左侧框里的“吸烟”选入右侧的“Covariates”下面的框里,把“血压”选入“Dependent”下面的框里,最后点击对话框底部的“OK”运行分析,其结果如表11所示。可见,在<33岁、33-43岁、44-54岁、55岁以上(55+)年龄组,吸烟与高血压的OR值分别为2.576、1.079、0.915、0.756,有随着年龄的增加而降低的趋势。下面,我们将用Logistic分析进行趋势检验,这是一种更敏感的一致性检验方法。

 

表11 SPSS分析的结果3


在趋势检验里,年龄必须是连续或等级变量,可用三种方式表达:连续变量、等级变量、“分级连续变量”。连续变量就是使用每一个人的原始实际年龄;等级变量就是用1、2、3、4分别表达四个年龄组的年龄及其差别的大小;“分级连续变量”为非正式的专用名词,在此指用每组的平均年龄替代该组每一个人的年龄(四个组的平均年龄取值分别为25.1、37.7、48.8和64.8岁)。在此,我们将年龄作为“分级连续变量”进行一致性检验。

 

首先,在SPSS顶部的“Data”下拉菜单中,选择“Split File”,在弹出的对话框中,选中“Analyze all cases, do not create groups”左侧的圆圈以取消上面刚刚做过的按照年龄组的分层分析。然后,产生“平均年龄”这个新变量,方法如下。在SPSS顶部的“Transform”下拉菜单中,选择“Recode into different variables”,在弹出的对话框中,将左侧框中的“年龄组”选入中间的“Numeric Variable -> Output Variable”框,在右侧的“Output Variable”下面的“Name”框中输入“平均年龄”,意思是根据年龄组的不同生成新的变量“平均年龄”;单击对话框中下部的“Old and New Values”打开子对话框,设置每一个Old Value(即年龄组)对应的New Value(即平均年龄),例如,在“Old Value”下方的“Name”框中输入“1”,在“New Values”下方的“Name”框中输入“25.1”,即表示将年龄组1的平均年龄设置成25.1,点击“Old-> New”框左侧的“Add”,框中就会出现“1--> 25.1”,表明设置成功;以此类推,可设置其它3个年龄组的平均年龄;全部设置好之后,先后点击“Continue”和“OK”,退出对上述两个对话框;在Variable View窗口中将“平均年龄”设置成Scale(连续型)变量,至此,年龄作为“分级连续变量”已经设置成功。

 

然后,进行Logistic回归分析。在Logistic回归中纳入3个协变量:吸烟、平均年龄、吸烟*平均年龄(即它们的乘积项)。吸烟*平均年龄乘积形成的新变量又叫吸烟和年龄交互作用项,用以检查二者间统计学交互作用,其实质是检验吸烟和高血压的OR值随着年龄不同的变化(上升或下降)趋势。


具体操作如下:按前面说过的方法打开“BinaryLogistic”的对话框,在该对话框中,先分别把“吸烟”和“平均年龄”选入“Covariates”框,然后,按住电脑键盘的“ctrl”键,同时选中“吸烟”和“平均年龄”这两个变量,这时候,对话框中箭头下面的“>a*b>”按钮就会凸显出来,点击该按钮,“Covariates”下面的框里就会出现“吸烟*平均年龄”,即两者的交互作用项。


设置完毕,运行此分析,结果如表12所示。表中,年龄与吸烟交互作用的显著性检验的Wald值=4.872,p=0.027,说明吸烟和高血压关系的OR值随年龄增加而降低的趋势有统计学显著性,更有力地说明不同年龄层的OR值是不一致的。因此,不能用一个总的OR值来表示吸烟与高血压的关系,而应该分别报告不同的年龄组的OR值。

 

另外,如果将年龄分别作为连续变量和等级变量引入回归方程,相应的Wald值分别为3.658和4.871,p值分别为0.056和0.027。在三种年龄变量中,连续变量与吸烟的交互作用检验p值与显著性水平(a=0.05)很接近,因此不宜据此就轻易下结论认为异质性不存在,有可能是因为年龄作为连续型变量时统计模型的拟合不够理想。等级变量及分级连续变量与吸烟的交互作用检验P值均较小,说明用等级变量或分级连续变量作为年龄变量的趋势检验比较敏感。

 

表12 SPSS分析的结果4

 


五、识别和测量剂量效应关系

 

剂量效应关系是指随暴露强度变化效应变化的现象。因此,对剂量反应关系的识别,实际上也是对某种趋势的检验。在本分析中,我们以年龄为自变量(原因,或曰暴露因素),高血压为因变量(结果,或曰暴露效应),考察二者见的剂量效应关系,即检验高血压发病风险随年龄变化而变化的趋势。如前所述,在趋势检验中,年龄可用三种方式表达:连续变量、等级变量、分级连续变量。在此我们以前述的分级连续变量(即用每组的平均年龄替代该组每个人的原始实际年龄)为例。

 

按照前面说的步骤,打开“Binary Logistic”对话框,把左侧框里的“平均年龄”选入右侧的“Covariates”框中,把“血压”选入“Dependent”框中,并打开右侧的“Options”,选中“CI for exp(B) 95%”。然后,运行此分析,其主要结果如表13所示。对平均年龄与血压关系的显著性检验的Wald 检验值=251.002,p<0.001,有高度统计学显著性,表明高血压的发病危险随年龄的变化而变化;OR=1.072(95% CI:1.063-1.081),大于1,表明患高血压的危险与年龄呈正相关,年龄每增加1岁,患高血压的危险约为原来的1.072倍,即相对增加7.2%。

 

另外,如果将年龄分别作为连续变量和等级变量引入回归方程,相应的Wald值分别为258.999和244.276,p值均<0.001,与分级连续变量的检验结果相近。值得注意的是,年龄为等级变量(即年龄组)的时候,相邻两组之间比较的OR值高达2.587(95% CI:2.296-2.914),这是因为每个年龄组都涵盖了大约12岁的年龄范围,因此从一个年龄组跨到相邻的另一个年龄组时OR值的变化会比较明显,大概接近年龄为连续变量(即以1岁为单位)时OR值的12次方。

 

表13 SPSS分析的结果5

 


数据获取方式:

1. 复制链接 https://pan.baidu.com/s/1FODYO7NB-Z3nMuhn9wqmxQ 在浏览器中打开,输入提取码“2th0”,即可找到并免费下载;

2. 若上述途径无法下载,请留意文末留言。

(本文是全文六个部分的第五部分,未完待续)



原文出处:唐金陵. 第二十章: 流行病学研究数据统计分析概述. 见: 李立明 主编. 《流行病学》. 第一卷. 第三版. 北京: 人民卫生出版社: 2015: 369-397.


作者:唐金陵,广州市妇女儿童医疗中心临床研究总监、《英国医学杂志》高级临床研究编辑、香港中文大学流行病学荣休教授


编辑:唐惠、邬德华



唐金陵教授《临床研究方法学文章汇集》 | 2019-11-27


系统综述中的统计分析(5/5):Meta分析软件与分析实例


临床研究讲座:流行病学数据分析基础(1/6):目的、原则和内容


临床研究讲座:流行病学数据分析基础(2/6):估计主效应


临床研究讲座:流行病学数据分析基础(3/6):识别和控制混杂


控制混杂:统计分析方法进展


临床研究讲座:流行病学数据分析基础(4/6):识别和分析交互作用与剂量反应关系




长按上方二维码关注我们


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存