主要内容

具有时变协变量的Cox比例风险模型

这个例子展示了如何将生存数据转换为计数过程形式,然后构建一个具有时变协变量的Cox比例风险模型。

步骤1。比较标准布局和计数流程表。

具有时变协变量的Cox模型要求生存数据为计数过程形式,而不是标准布局。要查看标准布局和计数过程形式的生存数据之间的差异,请加载以下样本数据。

负载simplesurvivaldata

这个示例数据包含两个表:复发relapseCP.这两个表分别以标准布局和计数处理形式表示相同的简单生存数据。

以标准布局显示数据。

复发
复发=2×5表身份证年龄StopTreatment时间审查  __ ____ _________ ___ _____________ 1 5 0 20南2 20 30 12

该数据代表了两名治疗状态随时间变化的患者。患者1在0 - 5周的间隔时间内未接受治疗,间隔时间结束时复发。患者2在0 - 12周期间接受治疗,而在12 - 20周期间不接受治疗。患者2未复发,20周后退出研究。

现在以计数过程的形式显示相同的数据。

relapseCP
relapseCP =3×6表ID tStart tStop审查TreatmentStatus时代  __ ______ _____ _________ ___ _______________ 1 0 5 0 20 0 2 0 12 1 30 1 2 12 20 30 0

在计数过程形式中,每一行表示风险区间(tStarttStop而不是事件时间的单个值。审查如果在风险间隔的末尾观察到事件,则为0,如果不是,则为1。TreatmentStatus对应于一个随时间变化的协变量,它表示相同的信息StopTreatment在标准布局。注意,Cox模型假设时间相关的协变量在每个风险区间都是常数。

步骤2。加载示例数据。

接下来,加载要转换的样本数据。

负载survivaldatacp

这个示例数据包含一个表实验室,这是模拟生存数据,包括在标准布局下对每个患者的重复测量。

以标准布局显示模拟生存数据。

实验室
实验室=6×7表ID时间审查性Lab_0 Lab_50 Lab_100  __ ____ _________ ___ _____ ______ _______ 1 46 0 138 0.3南南2 1 3 0 0.2 0.23 0.39 0.18 - 0.22 94 0 1南4 50 0 0 0.21 0.2南5 106 0 0 6 98 0 0 0.25 0.21 0.42 0.21 0.22南

在标准布局中,表格的每一行显示一个患者的信息。

  • ID表示患者的ID。你不包括ID作为Cox模型的输入。包括ID在数据集中确认该数据集已正确转换为计数过程形式。

  • 时间以天为单位表示事件发生的时间,对应响应变量。

  • 审查有每个患者的审查信息,其中1表示审查数据,0表示观察期结束时观察到事件的确切时间。

  • 是一个时间无关的预测器,其中1表示女性,0表示男性。

  • Lab_0Lab_50,Lab_100表示在第0、50和100天测量的三个连续的实验室结果,对应于一个时间依赖的预测器。

步骤3。将生存数据转换为计数过程形式。

转换生存数据实验室要计算进程表单,执行下面的代码。这段代码转换时间为风险区间(tStarttStop,并结合了三个时间依赖预测器的向量,Lab_0Lab_50,Lab_100,变成一个向量,实验室

mTime = [0 50 100];%的测量时间threeLabs =[实验室。Lab_0实验室。Lab_50实验室.Lab_100]; nLabMeasure = sum(sum(~isnan(threeLabs)));%实验室测量次数data = 0 (nLabMeasure 6);%每个观察对应一行oID = 0;%观察IDi = 1: size(labS,1) idx = find(mTime <= labS. time (i));j = 1: length(idx)-1 oID = oID + 1;:数据(oID) = [labS.ID (i) mTime (j: + 1) 1 labS.Sex (i) threeLabs (i, j)];结束oID = oID + 1;data(oID,:) = [labS.ID(i) mTime(length(idx)) labS.Time(i))...labS.Censoring (i) labS.Sex (i) threeLabs(我、长度(idx)));结束labCP =表(数据(:1),数据(:,2),数据(:,3),数据(:,4),数据(:,5),数据(:,6),...“VariableNames”, {“ID”“tStart”“tStop”“审查”“性”“实验室”});

以计数过程的形式显示生存数据。

labCP
labCP =13×6表ID tStart tStop审查性实验室  __ ______ _____ _________ ___ ____ 1 50 0 46 0 1 0.3 - 2 0 1 0 2 50 100 1 0 0.23 0.2 0.39 100 138 1 0 3 0 1 1 0.18 3 50 94 0 1 0.22 0.21 4 0 50 1 0 4 50 50 50 0 0 0.2 5 0 1 0 5 50 100 1 0 0.21 0.25 0.42 5 100 106 0 0 6 0 50 1 0 6 50 98 0 0 0.22 0.21

在计数过程形式中,每一行表labCP显示对应于一个风险区间的一个观察的信息。注意,Cox模型假设实验室在风险区间内保持不变(tStarttStop].的价值审查如果在风险间隔的末尾观察到事件,则为0,如果未观察到事件,则为1。

例如,患者3在第0天和第50天有两个实验室测量值,因此在计数过程表单中患者3有两行数据。Cox模型假设实验室结果0.18和0.22分别在区间(0,50]和(50,94)内是常数。审查是1在(0,50)和0在(50,94),因为患者3的确切事件时间是在第94天观察的。

步骤4。调整零长度的风险间隔。

找一个风险区间为零的病人。

idxInvalid = labCP.ID(找到(labCP。tStart = = labCP.tStop))
idxInvalid = 4

回顾病人4的资料。

labCP(找到(labCP.ID = = idxInvalid):)
ans =2×6表ID tStart tStop审查性实验室  __ ______ _____ _________ ___ ____ 4 0 50 1 0 50 50 0 0 0.2 0.21 - 4

患者4发生事件的时间与测量第50天一致。然而,(50,50)对于Cox模型是无效的风险区间,因为该模型不接受零长度区间。将风险间隔调整为有效。您可以选择任何小于时间单位的值作为调整量。调整量的选择是任意的,它不会改变结果。

idxAdjust =找到(labCP.ID = = idxInvalid);labCP.tStop (idxAdjust (1)) = labCP.tStop (idxAdjust (1)) -0.5;labCP.tStart (idxAdjust (2)) = labCP.tStart (idxAdjust (2)) -0.5;labCP (idxAdjust:)
ans =2×6表ID tStart tStop审查性实验室  __ ______ _____ _________ ___ ____ 4 0 49.5 - 1 0 50 0 0 0.2 49.5 0.21 - 4

第5步。构建Cox比例风险模型。

拟合具有时间独立变量的Cox比例风险模型和时间变量实验室

X = [labCP。性labCP.实验室]; T = [labCP.tStart labCP.tStop]; b = coxphfit(X,T,“审查”, labCP。审查,“基线”, 0)
b =2×12.0054 - 29.7530

有关如何评估Cox比例风险模型的详细信息,请参见截尾数数据的Cox比例风险模型

另请参阅

相关的例子

更多关于