这个例子展示了如何存活数据转换成计数处理形式,然后构建具有时间依赖性协变量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 1 30 0
在计数过程中形式中,每一行代表的风险间隔(TSTART,TSTOP]
的,而不是一个事件时间的单一值。截尾
是0,如果在风险间隔的端部观察到的事件,和1,如果它不是。TreatmentStatus
对应于时间依赖性协变量,其表示与相同的信息StopTreatment
在标准布局。请注意,Cox模型假定时间依赖性协将在每个风险区间不变。
接着,负载样品数据进行转换。
加载survivaldatacp
该样本数据包含一个表LABS
,这是模拟的存活数据包括用于在标准布局中的每个患者重复测量。
显示在标准布局的模拟生存数据。
LABS
LABS =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,其对应于时间依赖性的预测。
要转换的生存数据LABS
到计数过程的形式,执行下面的代码。此代码转换时间
到风险区间(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(ⅰ)labS.Sex(ⅰ)threeLabs(I,长度(IDX))];结束labCP =表(数据(:,1),数据(:,2),数据(:,3),数据(:,4),数据(:,5),数据(:,6),...'VariableNames'{'ID',“T开始”,“T停止”,“截尾”,'性别',“实验室”});
显示计数处理形式的存活数据。
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
对应于一个风险间隔中的一个观测节目信息。请注意,Cox模型假设实验室
是在风险间隔恒定(TSTART,TSTOP]
。在价值截尾
是0,如果在风险间隔结束观察事件,并且如果1没有观察到的事件。
例如,患者3具有在第0天及50 2次的实验室测量,所以有用于计数过程形式患者3两行数据。甲Cox模型假定实验室结果和0.18 0.22是在区间(0,50]和(50,94]常数。截尾
是1(0,50]和0中(50,94],因为患者3的确切事件时间在94天观察到。
找到一个病人谁拥有长度为零的风险区间。
idxInvalid = labCP.ID(FIND(labCP.tStart == labCP.tStop))
idxInvalid = 4
查看该数据为患者4。
labCP(FIND(labCP.ID == idxInvalid),:)
ANS =2×6表ID TSTART TSTOP截尾性别实验室__ ______ _____ _________ ___ ____ 4 0 50 1 0 0.21 4 50 50 0 0 0.2
时间到患者50测量一天然而4点相一致的情况下,(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
有关如何评估Cox比例风险模型的详细信息,请参阅Cox比例风险模型中截尾数据。