主要内容

具有时变协变量的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 Time censorship Sex Lab_0 Lab_50 Lab_100 ______ _________ ________ ______ _______ 1 46 0 1 0.3 NaN NaN 2 138 10 0.2 0.23 0.39 3 94 0 1 0.18 0.22 NaN 4 50 00 0 0.21 0.2 NaN 5 106 00 0.25 0.21 0.42 6 98 00 0.21 0.22 NaN

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

  • 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)));%实验室测量次数数据= 0 (nLabMeasure,6);每个观察值对应一行oID = 0;%观察IDi = 1: size(labS,1) idx = find(mTime <= labS. time (i));j = 1:长度(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)...实验室。审查(i)实验室。性(i) threeLabs(i,长度(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 in(0,50)和0 in(50,94),因为患者3的确切事件时间是在第94天观察到的。

步骤4。调整零长风险区间。

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

idxInvalid = labCP. id (find(labCP. id)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 = find(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比例风险模型

另请参阅

相关的例子

更多关于