主要内容

fitcox

创建Cox比例风险模型

描述

fitcox函数为生命周期数据创建Cox比例风险模型。基本的Cox模型包括一个危险函数h0t)和模型系数b这样,对于预测者X,即当时的危险率t

h X t h 0 t 经验值 j 1 p x j b j

在哪里b系数不依赖于时间。fitcox推导出两个模型系数b以及危害率h0t),并将它们作为属性存储在结果中CoxModel对象。

完整的Cox模型包括对基本模型的扩展,例如关于不同基线的危险或分层变量的包含。看到Cox比例风险模型的扩展

coxMdl = fitcox(XT返回一个Cox比例风险模型对象coxMdl使用预测值X以及活动时间T

例子

coxMdl = fitcox(XT名称,值使用一个或多个修改适合度名称,值参数。例如,当数据包含审查(未观察到的值)时,将审查参数指定删除的数据。

例子

全部折叠

具有相同形状参数的威布尔随机变量具有成比例的危险率;看到威布尔分布.带尺度参数的危险率 一个 形状参数 b 在时间 t

b 一个 b t b - 1

从尺度参数为1,5和1/3且形状参数相同的威布尔分布中生成伪随机样本B

rng默认的%用于再现性B = 2;A = ones(100,1);data1 = wblrnd(A,B);A2 = 5* a;data2 = wblrnd(A2,B);A3 = a /3;data3 = wblrnd(A3,B);

创建一个数据表。预测因子是三种变量类型,1、2或3。

predictors = categorical([A;2*A;3*A]);数据= table(predictors,[data1;data2;data3],“VariableNames”, (“预测”“次”]);

对数据进行Cox回归拟合。

MDL = fitcox(数据,“次”
mdl = Cox比例风险回归模型:Beta SE zStat pValue _______ _______ _______ __________ Predictors_2 -3.5834 0.33187 -10.798 3.5299e-27 Predictors_3 2.1668 0.20802 10.416 2.0899e-25
rate = exp(mll . coefficients . beta)
率=2×10.0278 - 8.7301

进行Cox比例风险回归灯泡数据集,其中包含模拟灯泡的寿命。灯泡数据的第一列包含两种不同类型灯泡的寿命(以小时为单位)。第二列包含一个二进制变量,指示灯泡是荧光灯还是白炽灯;0表示灯泡是荧光灯,1表示灯泡是白炽灯。第三列包含审查信息,其中0表示灯泡被观察到故障,1表示观察被审查。

加载灯泡数据集。

负载灯泡

为灯泡的寿命拟合考克斯比例风险模型,考虑审查。预测变量是灯泡的类型。

coxMdl = fitcox(灯泡(:,2),灯泡(:,1),...“审查”灯泡(:3))
coxMdl = Cox比例风险回归模型:Beta SE zStat pValue ______ ______ ______ __________ X1 4.7262 1.0372 4.5568 5.1936e-06

通过评价找出白炽灯和荧光灯的危害率 经验值 B e t 一个

hr = exp(coxmll . coefficients . beta)
Hr = 112.8646

对危险比的估计为 e B e t 一个 = 112.8646,这意味着白炽灯的估计危害是荧光灯的112.86倍。的小值coxMdl.Coefficients.pValue表明两种灯泡的危害率相同的可能性微乎其微,也就是说β= 0。

输入参数

全部折叠

预测值,以矩阵或表格的形式指定。

  • 矩阵包含每个预测器的一列和每个观测值的一行。

  • 每个表为每个观察值包含一行。表还可以包含时间数据和预测器。

默认情况下,如果预测器数据在表格中,fitcox如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据是一个矩阵,fitcox假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用CategoricalPredictors名称-值参数。

如果XT的值。“频率”的值“分层”包含值,然后fitcox使用当拟合Cox模型时,所有数据的值。

数据类型:|表格|分类

事件时间,指定为下列之一:

  • 实列向量。

  • 实矩阵,两列表示开始和停止时间。

  • 表中列的名称X

  • 用威尔金森符号表示的公式X.例如,指定表中的列“x”而且“y”都在模型中,使用

    'T ~ x + y'

    看到威尔金森符号

对于向量或矩阵项,的行数T必须和的行数相同X

使用的两列形式T拟合具有时变系数的模型。看到具有时变协变量的Cox比例风险模型

数据类型:||字符|字符串

名称-值参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:用删减值拟合数据,指定“审查”,岑

X计算基线危险的值,指定为实标量或行向量。如果基线是一个行向量,它的长度是预测器的数量,所以每个预测器都有一个基线。

连续预测器的默认基线为意思是(X),则违约风险率为X对于这些预测因素是h(t)*exp((X - mean(X))*b).类别预测器的默认基线是0.输入0计算相对于0的所有预测因子的基线,即Xh (t) * exp (X * b).改变基线会改变风险比,但不会影响系数估计。

对于已识别的分类预测因子,fitcox创建虚拟变量。fitcox创建的虚拟变量比类别数少一个。详细信息请参见自动创建虚拟变量

例子:“基线”,0

数据类型:

系数初始值,指定为系数值的数值向量。这些值初始化由执行的可能性最大化迭代fitcox

数据类型:

类别预测符列表,指定为此表中的值之一。

价值 描述
正整数向量 向量中的每个条目都是对应于预测器数据列(X),其中包含一个分类变量。
逻辑向量 一个真正的Entry表示预测器数据的对应列(X)是分类变量。
字符矩阵 矩阵的每一行都是表中一个预测变量的名称X.名称必须与中的条目匹配PredictorNames.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组 数组中的每个元素都是表中一个预测变量的名称X.名称必须与中的条目匹配PredictorNames
“所有” 所有预测因素都是绝对的。

默认情况下,如果预测器数据在表格中,fitcox如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据是一个矩阵,fitcox假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”名称-值参数。

对于已识别的分类预测因子,fitcox创建虚拟变量。fitcox创建的虚拟变量比类别数少一个。详细信息请参见自动创建虚拟变量

例子:“CategoricalPredictors”、“所有”

数据类型:||逻辑|字符|字符串|细胞

用于审查的指示器,指定为具有相同行数的布尔向量X或者表中列的名称X.用1表示正确截尾的观测值,用0表示完全观测值。默认情况下,所有观测值都是完全观测的。有关示例,请参见截尾数据的Cox比例风险模型

例子:“审查”,岑

数据类型:逻辑

观测的频率或权重,指定为大小相同的数组T包含非负标量值。该数组可以包含与观测频率对应的整数值,也可以包含与观测权重对应的非负值。

默认为每行1个X而且T

如果XT的值。“频率”的值“分层”包含值,然后fitcox使用当拟合Cox模型时,所有数据的值。

例子:“频率”,w

数据类型:

算法控制参数为迭代算法fitcox用于估计作为结构指定的解决方案。使用以下命令创建此结构statset.参数名称和默认值请参见下表或输入statset(“fitcox”)

在表中,“终止容差”意味着如果内部迭代导致声明值的变化小于容差,则迭代停止。

结构领域 描述
显示 返回到命令行的信息量
  • “关闭”—默认为无。

  • “最后一次”-最终输出

  • “通路”-每次迭代的输出

MaxFunEvals 函数求值的最大数量 正整数;默认是200
麦克斯特 最大迭代次数 正整数;默认是One hundred.
TolFun 似然变化的终止容忍度;看到考克斯比例风险模型 积极标量;默认是1 e-8
TolX 参数(预测器估计)变化的终止容差 积极标量;默认是1 e-8

例子:OptimizationOptions, statset (' TolX ', 1 e-6,麦克斯特,200)

预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”这取决于你如何提供训练数据。

  • 如果你提供X作为一个数字数组,那么你可以使用“PredictorNames”中预测变量的名称X

    • 里面名字的顺序PredictorNames必须对应的列顺序X.也就是说,PredictorNames {1}名字是X (: 1)PredictorNames {2}名字是X (:, 2)等等。同时,大小(X, 2)而且元素个数(PredictorNames)必须是相等的。

    • 默认情况下,PredictorNames{X1, X2,…}

  • 如果你提供X作为一个表,那么你可以使用“PredictorNames”选择在训练中使用哪些预测变量。也就是说,fitcox中仅使用预测变量PredictorNames训练中的时间变量。

    • PredictorNames的子集X.Properties.VariableNames且不能包括时间变量的名称T

    • 默认情况下,PredictorNames包含所有预测变量的名称。

    • 指定使用其中之一进行训练的预测器“PredictorNames”或者威尔金森符号的公式,但不能两者都用。

例子:PredictorNames,{“性别”、“年龄”、“重量”,“烟民”}

数据类型:字符串|细胞

分层变量,指定为实值矩阵,表中列的名称X,或一个分类变量数组。矩阵的行数必须与T,每一行对应一个观察值。

默认的[]没有分层变量。

如果XT的值。“频率”的值“分层”包含值,然后fitcox使用当拟合Cox模型时,所有数据的值。

例子:“分层”,性别

数据类型:||字符|字符串|分类

方法处理绑定故障时间,指定为‘‘健康’(Breslow的方法)或者“埃夫隆”(埃夫隆的方法)。看到捆绑事件的部分似然函数

例子:“TieBreakMethod”、“埃夫隆”

数据类型:字符|字符串

R2021a中引入