微信直播

倾向性分析的应用和统计学处理方法(下):倾向性分析的统计学处理方法

Published at: 2015年第1卷第S1期

关键词:

选自即将面世新书《疯狂统计学》第16章第2节 

欢迎点击倾向性分析的应用和统计学处理方法(上):倾向性分析案例剖析回顾阅读第1节内容。

作者/ 王晓燕 胡志德 李潇

本研究的主要统计学框架分为如下四部分:

  • 第一部分:列表展示贫血组与非贫血组患者基线资料。

  • 第二部分:进行倾向性匹配,并对匹配之后的贫血组与非贫血组患者进行基线资料比较。

  • 第三部分:采用COX风险比例模型分析贫血是否是患者长期不良事件的独立预测因素。

  • 第四部分:采用Kaplan-Meier曲线法,计算贫血组与非贫血组患者之间长期不良事件发生率。

注意:本文所提及的统计学过程均在Mac中操作完成,Windows中的操作过程与之大体类似。所用统计学软件是Stata,该软件操作既可以使用菜单,也可以使用命令进行操作。图16-4为Stata全景图,command图框内输入运算命令。

图16-4 在EXCEL表单中将所有变量名称规范化

【本文采用数据并非解读文献(http://jtd.amegroups.com/article/view/5819/

pdf ) 的原始数据,仅以模拟数据向大家展示利用Stata 进行倾向性分析的全过程】。

在进行统计分析之前,首先在EXCEL 表单中,将所有变量名称进行规范化。

1 导入数据

首先将EXCEL 表单中的数据导入到StataStata 软件中,其步骤为:

(1) 先打开Stata 程序,然后依次点击菜单栏中的File →Import →Excel Spreadsheet 。

(2) 找到EXCEL 文件所在的位置,选中需要导入Stata 的EXCEL 表格,点击Open ,如图16-5 。

(3) 此时要在Import first row as variable names 这一栏勾选,表示第一行是数据参数的位置,如图16-6 。

图16-5 将EXCEL文件导入到Stata软件中

图16-6 选择EXCEL第一行作为变量名称

(4)数据已经被导入 Stata软件,如图 16-7所示。

(5)数据导入完成后,建议先保存文件,以免出现意外情况导致数据丢失。在本文中,笔者保存的文件名为“ shili”。

2 检查数据类型和属性

由于 EXCEL和 Stata之间并不是无缝对接,因此建议读者导入数据后检查数据的类型属性。具体操作为:

(1)点击数据栏右侧的 Variable view,可以查看变量的属性,如图 16-8所示。

(2)Variable栏中出现了 Name, Lable, Type等变量,作者可以根据自己的要求选择,各个属性解读如下:

Name :变量的名字,可以双击进行更改。

Lable :变量的标签,即对变量的说明。

Type :变量类型。数据类型包括字符型数据和数值型数据,其中字符型数据的存储格式是str# ,数值型数据的存储格式包括字节型(byte) ,整数(int) ,长整数(long) ,浮点(float) ,双浮点(double) 。

Format :变量的显示格式。Stata 中数值变量的基本格式有3 种,e 格式( 科学计数法格式) 、f 格式( 固定格式) 、和g 格式( 一般格式) 。这3 种格式的表达式均包含用黑点隔开的两个数字w.d 。其中的w 表示整个显示所占的字符数,即宽度;d 表示显示的数字中小数点后的位数。普通格式g 中的d 要灵活一些。它自动调整显示的格式。

图16-7 EXCEL数据导入Stata的界面

图16-8 变量属性视图

显示格式是%w.d 加上3 种基本格式的显示符。例如,%9.2f 表示变量的整个显示宽度为9 个字符,其中小数点后有两个数位的固定显示格式。另外,在f 后面加上字母c 则是要求Stata 给出带逗号“,”的数字显示格式,如表16-5 所示。

字符变量的显示格式只有一种。其表达式为%#s 。其中% 是一个提示符;#表示显示的字符数,即宽度;s 表示字符变量的显示格式。例如,%22s 表示22个字符的字符变量显示格式。

以上信息,在数据编辑页面,双击可修改。

3 数据分析

3.1 倾向性匹配前两组基线资料比较

3.1.1 连续性变量比较

两组之间连续性变量的比较,如果为正态分布,可采用独立样本t 检验( 两组) ,偏态分布可采用Mann-Whitney U 检验( 两组) ;两组之间分类变量之间的比较,可采用卡方检验,如果是等级变量,则采用秩和检验。

因此,对于连续性变量,我们首先确定该变量是否为正态分布,本篇文章中正态性检验选用的是偏度− 峰度检验(sktest) ,Stata 中的命令为sktest 。基线资料中的连续型变量包括BMI 、LVEF 、TNT 、Creatinine clearance( 由eGFR 转化) 。

表16-5 数值型变量的显示格式举例

此时输入命令:sktest bmi lvef tnt egfr

或输入sktest ,在变量栏内将相关变量一一选中至命令框(图16-9) 。

本篇文章中,偏度− 峰度检验拒绝了正态假设,不论是峰度还是偏度或者两者结合在一起,P 值都<0.001 ,即以上4 个变量均呈现出显著的非正态性。

因此,对以上4个偏态连续型变量,应采用Mann-Whitney U检验。在Stata中进行Mann-Whitney U检验的命令是ranksum 。

输入Stata 命令:ranksum, bmi, by (anemia)

结果如下所示,H0 代表建立的假设

H0: bmi(anemia ==0)  = bmi(anemia ==1) ,即假设贫血组患者BMI 与非贫血组患者BMI 相等。

Prob  > |z|  = 0.0027 ,表明取得更大z 值绝对值的概率。本里中Prob 等于0.0027 ,因此贫血组与非贫血组BMI 之间存在显著统计学差异(图16-10) 。

计算到这里,我们发现贫血组与非贫血组之间的BMI 的描述性数据还没有,所以还应计算BMI 的均值和标准差,以在表格中呈现具体数据。

输入命令:tabstat bmi, by(anemia) stat(mean sd)

命令中,stat( 选择项) ,是指在结果中呈现的数据,mean 是指平均数,sd是指标准差。

通过以上命令可以得出,贫血组患者BMI 均值和标准差为:24.06Å}3.03 ;非贫血组患者BMI 均值和标准差为24.79Å}3.15 。

图16-9 

图16-10 

其实以上结果,除Mann-Whitney U 检验外,均可通过一条命令得出:

tabstat bmi lvef tnt egfr, by (anemia) stat (mean, sd skew kurt) col(stat) long

3.1.2 分类变量比较

对分类变量进行卡方分析,输入命令为:

tab2 anemia gender, row chi2

命令中,anemia 为分组数据,gender 为检验变量。

通过上述命令,即可进行贫血组和非贫血组患者分类变量的卡方检验。

3.2 倾向性匹配

命令窗口输入如下命令:

set seed 10101

gen x =uniform()

sort x

psmatch2 anemia gender age bmi tnt egfr hr noofvessel history arrhythmia hypertension dm pvd family emergentpci access contrast completely hyperlipoimia lvef smoker ,outcome( ischemia3y) common ties ate n (1) logit pstest gender age bmi tnt egfr hr noofvessel history arrhythmia hypertension dm pvd family emergentpci access contrast completely hyperlipoimia lvef smoker,both graph

注:倾向性分析也可在SPSS 中安装psmatch2 软件包进行。

命令解读:

以下是帮助菜单中psmatch2 语法格式,

psmatch2 分组变量 匹配变量,outcome(varlist) common ties ate n(1) logit

pstest 分组变量 匹配变量,both graph

简单说就是:psmatch2 分组变量匹配变量,[ 选择项] 。重点解读命令语句中选择项的含义。out(varlist) 指明结局变量。common 强制排除试验组中倾向值大于对照组最大倾向值或低于对照组最小倾向值。ties 强制当试验组观测有不止一个最优匹配时同时记录。ate 是倾向值匹配的重要指标,代表总体的平均干预效应。n(1) 即neighbor(1) 指定按照1:1 进行匹配,如果要按照1:3 进行匹配,则设定为neighbor(3) ,本例中因对照组样本量有限,仅适合1:1 进行匹配。logit指定使用logit 模型进行拟合,默认的是probit 模型。

pstest ,both 做匹配后均衡性检验,理论上说此处只能对连续变量做均衡性检验,对分类变量的均衡性检验应该重新整理数据后运用χ2 检验或者秩和检验。但此处对于分类变量也有一定的参考价值。

打开数据编辑窗口,会发现软件自动生成了几个新变量:其中_pscore 是每个观测值对应的倾向值;_id 是自动生成的每一个观测对象唯一的ID( 事实上这列变量即是对_pscore 排序) ;_treated 表示某个对象是否试验组;_n1 表示的是他被匹配到的对照对象的_id( 如果是1:3 匹配,还会生成_n2, _n3) ;_pdif 表示

一组匹配了的观察对象他们概率值的差(图16-11) 。

匹配后数据,导出至EXCEL 表单(图16-12) 。

图16-11 

图16-12 

在Excel filename 中填写文件名称,同时注意勾选”将变量名称复制到Excel表单首行”(图16-13) 。

首先,剔除所有未匹配到对应组别的数据,即_support 一栏内出现off_support 或空白的数据。然后EXCEL 中使用vlookup 函数整理进行统计分析。

(1) 选择匹配之后的贫血组患者( 即匹配结果的treated 组)(图16-14) 。

(2) 选择贫血组患者对应的非贫血组患者的编号_n1 ,然后复制到新的表单(图16-15) 。

(3) 对新表单中的n1 进行升序排列(图16-16) 。

(4) 将原来表单中病历的id 号进行升序排列,并将id 号拷贝至原表单第一列(图16-17) 。

图16-13 

图16-14 

图16-15 

图16-16 

图16-17

(5)输入 VLOOKUP函数公式:

以第一列 gender为例:= VLOOKUP(A2,Sheet1!A2:E1750,2,0)这一函数的意义是帮助我们在 sheet1表单中 A2:E1750区域,调出与新建表单A2对应患者的所有数据。

函数解读:

 VLOOKUP函数= VLOOKUP(查找的值,查找区域,返回列的位置,查找的方式 )

此处的查找值,即新表单中的 A2,也就是 n1,查找区域为 sheet1!A2:E1750,返回列的位置也就是调取的 gender列在 sheet1中位于引用数据源(Sheet1!A2:E1750)的第几列,很显然, gender列位于引用数据源的第二列,应为 2。查找方式分为精确查找和模糊查找,如果为 false或 0,则返回精确配,如果找不到,则返回错误值 #N/A。如果为 TRUE或 1,函数  VLOOKUP将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value的最大数值。如果 range_lookup省略,则默认为近似匹配。

(6)输入公式后下拉即可,对于其他列的数据,只需将“返回列的位置”依次改为  3、 4、 5等等,然后依次下拉即可(图16-18)。

(7)将匹配之后的数据再次导入 Stata软件,进行下一步分析。

3.3 COX回归分析

键入命令:

stset ischemia3yday, failure(ischemia3y)

stcox anemia age gender dm pvd hr family history noofvessel completely, hr

命令解读:

(1)在对随访资料进行生存分析之前,需现将数据库定义为生存资料数

据库。

 ◆ stset时间变量, failure(截尾变量== #)

其中,选择项 failure(截尾变量== #)规定截尾变量取值为“ #”时研究对象

出现预期结果,没有该选择项时, Stata以所有不等于 0的非缺失值为出现预期

结果。

(2)在应用 stset对数据进行规定后,可直接用 stcox命令进行 Cox回归分析

◆ stcox分组变量比较变量, hr

hr即表示在结果中计算 HR值。

如图16-19 ,我们可以看到贫血等变量对应的HR 、标准误、P 值以及95% 可信区间。

COX 分析也可在SPSS 软件中实现,这部分内容已经在第一章节中介绍,本章不再赘述。需要指出的是,Stata 和SPSS 由于算法上存在一定区别,因此所得数据会存在略微差别,但并不影响最终结果。

3.4 Log-rank检验

输入Stata 命令:

sts list, by(anemia)

sts test anemia, logrank

命令解读:

(1) 用于输出生存率、生存率的标准误等统计量的命令是:

◆ sts list, by( 分组变量)strata( 分层变量)adjustfor( 校正变量) 选择项

选择项有:

failure/* 输出死亡函数(1-S(t))

na/* 输出累积风险函数

level/* 规定所输出可信区间的可信度

图16-19

结果如下:

(2) 检验两组生存率比较,多用log-rank 检验

sts test anemia, logrank

从结果中看到,P 值<0.001 ,即贫血与非贫血组3 年缺血事件发生率存在显著差异。

3.5 绘制Kaplan-Meier曲线

键入命令

sts graph, by(anemia) failure nolog

事实上,对于Kaplan-Meier 曲线(图16-20) ,SPSS 绘制更为便捷,本书其他章节已有详细描述,本章节不再赘述。

综上,本文通过一篇回顾性分析详细阐述了倾向性分析的应用场景,研究设计思路和统计分析思路,并详细讲解了使用Stata 进行倾向性分析的操作步骤,希望该章节对读者能有所帮助。

图16-20

comments powered by Disqus

附件