手把手教Stata做生存分析:K

您所在的位置:网站首页 stata画曲线图命令 手把手教Stata做生存分析:K

手把手教Stata做生存分析:K

2023-05-28 17:02| 来源: 网络整理| 查看: 265

首先,我们来观察一下数据集。大家可以在command line中输入list 查看所有数据,也可以输入list in 5/10查看第5到第10个观测值,屏幕显示:

我们可以看到,在这个数据集中,共有4个变量:studytime, died, drug, age。大家可以在command line中输入“codebook+空格+变量名字”,查看变量的标签、范围、是否有缺失值等基本特征。例如我们输入codebook drug, 屏幕显示:

我们可以看到共有48个数据,不重复的值有两个,分别是0 (安慰剂,从第一行的标签"Drug type (0=placebo)"看出来) 或 1 (试验药),没有缺失值。

同理,我们可以查看其它4个变量: studytime (标签:Months to death or end of exp. ,代表了这位患者的随访时间),died (标签:1 if patient died), age (标签: Patient's age at start of exp.)。

在基本了解数据后,我们可以正式开始数据分析了。

Step 2 声明数据为生存分析数据 & 数据再观测

Stata要求我们他这是一个生存分析的数据集,因此,我们需要至少告诉Stata如何判断终点事件(Failure variable)、如何判断随访时间(Time variable)。

在窗口菜单下,我们可以通过Statistics > Survival analysis > Setup and utilities > Declare data to be survival-time data找到如下的对话框。

在Time variable一栏选择数据集中的 "studytime"变量,在failure event一栏选择数据集中的"died"变量,并在Failure values的框中输入1。若多个值代表终点事件的发生,我们也可以在Failure values一栏输入多个值,每个值之间用空格隔开。

你可能会注意到,在Main菜单界面上还有一栏"Multiple-record ID variable"。Stata默认数据集中的一行数据代表一位患者。而在某些研究中,一位患者可能会有多行数据, 这一栏便是告诉Stata用哪个变量区分不同患者,通常选择数据集中代表患者ID的变量。然而,由于这种情况在实际的临床分析中并不常见,我们不详细阐述。在我们这个例子中,因为每个患者只有一行数据,我们可以不指定ID 。

点击OK后,屏幕上Results窗口内展示出如下画面。

如果你愿意使用代码,或者希望你的合作者能够重复你的结果,请使用上图第一行的代码:stset studytime, failure(died==1)。这是你在窗口菜单操作时Stata在背后执行的命令,我们也可以直接输入这行命令得到相同结果。

我们可以看到一共有48个患者,31人发生终点事件,共有744段person-time,随访时间最长的人是t=39。

使用stsum以及stdescribe命令,我们可以得到更多的关于这个数据集的信息。请注意:必须要在指定数据集为生存分析数据集之后 (换句话说,stset之后才能使用任何其他的st开始的命令)。

屏幕显示:

通过sts list命令可以展示Stata绘制K-M曲线所用的表格,我们可以看到每一个时间节点上的at-risk的人数、发生终点事件的人数、失访的人数,以及总的生存率。我们只展示前5行。

Step 3 K-M曲线的绘制

接下来,我们可以画K-M曲线。

在菜单栏中选择Statistics > Survival analysis > Graphs > Survivor and cumulative hazard functions,我们可以选择生存曲线(Function选项中Graph Kaplan-Meier survivor function) 或死亡曲线(Function选项中Graph Kaplan-Meier failure function),并且可以在下方Grouping variables处选择按照drug的数值分组绘图。

点击OK后,屏幕上会出现代码sts graph, by(drug)以及图像(下图)。

这是最基本、最简单的K-M曲线形式,在Stata中,我们还可以做很多改变,让图像变得更美观,表达更多的信息。

例如,在刚刚 Graph the survivor and cumulative hazard functions的窗口菜单中,利用第二个标签页(if/in)可以对数据库进行符合某种条件的筛选。例如我们只关注age



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3