这个例子展示了如何将生存数据转换为计数过程形式,然后构建一个Cox比例风险模型与时间相关的协变量。
与时间相关的协变量甲Cox模型需要存活数据是在计数过程的形式和不能在标准的布局。看在标准布局和在计数过程形式存活数据之间的差,加载下面的示例数据。
负载simplesurvivaldata
这个示例数据包含两个表:复发
和relapseCP
。这两个表中表示标准布局和在分别计数过程的形式,同样的简单的存活数据。
以标准布局显示数据。
复发
复发=2×5表ID时间截尾年龄StopTreatment __ ____ _________ ___ _____________ 1 5 0 20 2的NaN 20 1 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
在计数过程中形式中,每一行代表的风险间隔(tStart tStop]
而不是单一的事件时间值。审查
是0,如果在风险间隔的端部观察到的事件,和1,如果它不是。TreatmentStatus
对应于时间依赖性协变量,其表示与相同的信息StopTreatment
在标准布局。请注意,Cox模型假设时间依赖的协变量在每个风险区间是恒定的。
接下来,加载要转换的示例数据。
负载survivaldatacp
该样本数据包含一个表实验室
,即模拟生存数据,包括按标准布局对每个患者进行重复测量。
以标准布局显示模拟生存数据。
实验室
实验室=6×7表ID时间截尾性别Lab_0 Lab_50 Lab_100 __ ____ _________ ___ _____ ______ _______ 1 46 0 1 0.3楠楠2 138 1 0 0.2 0.23 0.39 3 94 0 1 0.18 0.22 NaN的4 50 0 0 0.21 0.2的NaN 5 106 0 0 0.25 0.21 0.42 698 0 0 0.21 0.22 NaN的
在标准布局中,表的每一行显示一个患者的信息。
ID
指示病人的ID。您不包括ID
作为Cox模型的输入。包括ID
在一个数据组,以确认该数据集被正确转换为计数处理的形式。
时间
表示天的时间到事件,其对应于一个响应变量。
审查
具有用于每个患者,其中1表示截尾数据和0表示的确切时间到事件在观察期结束时所观察到的检查信息。
性
是一个时间无关的预测器,其中1表示女性,0表示男性。
Lab_0
,Lab_50
和Lab_100
代表在第0天,50测量三个连续的实验室结果,和100,其对应于时间依赖性的预测。
转换生存数据实验室
要计数过程形式,执行下面的代码。这段代码转换时间
到风险区间(tStart tStop]
并结合与时间相关的预测的三个矢量,Lab_0
,Lab_50
和Lab_100
成一个矢量,实验室
。
MTIME = [0 50 100];%的测量时间threeLabs = [labS.Lab_0 labS.Lab_50 labS.Lab_100];nLabMeasure =总和(总和(〜isnan(threeLabs)));%实验室测量数数据=零(nLabMeasure,6);每个观察对应一行OID = 0;%观测ID为I = 1:尺寸(实验室,1)IDX =找到(MTIME <= labS.Time(I));为J = 1:长度(IDX)-1 OID = OID + 1;数据(OID,:) = [labS.ID(ⅰ)MTIME(j:J + 1)1 labS.Sex(ⅰ)threeLabs(I,J)];结束OID = OID + 1;数据(OID,:) = [labS.ID(ⅰ)MTIME(长度(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 0 46 0 1 0.3 2 0 50 1 0 0.2 2 50 100 1 0 0.23 2 100 138 1 0 0.39 3 0 50 1 1 0.18 3 50 94 0 1 0.22 4 050 1 0 0.21 4 50 50 0 0 0.2 5 0 50 1 0 0.25 5 50 100 1 0 0.21 5 100 106 0 0 0.42 6 0 50 1 0 0.21 6 50 98 0 0 0.22
在计数过程形式中,每一行表labCP
显示对应于一个风险区间的一个观察的信息。请注意,考克斯模型假设实验室
是在风险间隔恒定(tStart tStop]
。在价值审查
如果在风险区间的末尾观察到事件,则为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天。
找一个风险间隔为零的病人。
idxInvalid = labCP.ID(FIND(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 0.21 4 49.5 50 0 0 0.2
用时间自变量拟合Cox比例风险模型性
和时间变量实验室
。
X = [labCP.Sex labCP.Lab];T = [labCP.tStart labCP.tStop];B = coxphfit(X,T,“截尾”,labCP.Censoring,“基线”,0)
b =2×12.0054 29.7530
有关如何评估考克斯比例风险模型的详细信息,请参见截尾数据的考克斯比例危险模型。