比例风险(Cox)回归模型——Proportional hazards model

比例风险(Cox)回归模型——Proportional hazards model

引言

比例风险回归模型,又称Cox回归模型,是由英国统计学家D.R.Cox与1972年提出的一种半参数回归模型。模型可以用来描述了不随时间变化的多个特征对于在某一时刻死亡率的影响。它是一个在生存分析中的一个重要的模型。

笔者在学习机器学习中首先遇到了广义线性模型,由于好奇进一步了解到了比例风险回归模型。由于数据和网上关于比例风险回归模型的介绍较少,对非相关专业人士可谓是非常不友好,因此笔者萌生了写这篇博客的想法。

关于Cox回归模型,笔者在学习时感到难以理解的有两点,一是Cox回归模型中比例风险假设的现实意义和合理性,二是Cox回归模型的极大似然估计的形式。而这两点在网上的资料中都涉及较少,所以本文对这两点做了详细的解释。
csdn地址

Motivation

假如你现在要研究一个人从出生开始,到t时刻时死亡的概率为多大。这个概率会受什么影响呢?一方面,它会受人类固有的寿命影响,一个健康的人,随着年纪的增大,他死亡的概率也会越来越大,这个因素仅仅取决于时间;另一方面,它会受一些客观因素影响,比如,一个吸烟的人在某一时刻t死亡的概率,比一个不抽烟的同龄人概率会更大,再比如,一个富豪,每年都花大价钱为自己养生、雇佣营养师为自己控制饮食起居,那么他可能就比笔者这个穷屌丝死亡的概率更小。

综上所述,我们抽象出了两部分的因素,一部分受时间的影响,你可以理解为是理想情况下的死亡的概率、是一个基准;另一部分受客观因素的影响,这些因素会影响整体的概率,使得它在基准上增加或减少。

而在Cox回归中的假设,就是基于以上的想法。好了,下面我们要来一些“数学”的干货。

基本术语

  1. 输入变量,由m个影响因素组成:X=(X_1,X_2,...,X_m)
  2. 生存函数,输入为X时,在t时刻仍然存活的概率:S(t,X)=P(T>t,X)
  3. 死亡函数,输入为X时,在t时刻已经死亡的概率:F(t,X)=P(T\leq t,X)
  4. 死亡密度函数,输入为X时,在t时刻死去的概率:f(t,x)=lim_{\Delta t \to 0} \frac {P(t<T<t+\Delta t,X)}{\Delta t}=F(t,X)'
  5. 危险率函数,输入为X时,已经生存到t时刻,而在t时刻死去的概率:

h(t,X)=lim_{\Delta t \to 0} \frac {P(t<T<t+\Delta t|T>t,X)}{\Delta t}=\frac {1}{P(T>t,X)}lim_{\Delta t\to 0}\frac {P(t<T<t+\Delta t,X)}{\Delta t}=\frac {f(t,X)} {S(t,X)}

Tips:在此我们要建立回归的,就是这个危险率函数。

模型内容

h(t,X)=\lambda_0(t) \cdot exp(\beta \cdot X)

在这里,\lambda_0(t)是一个与时间有关的基准危险率,其选择具有充分的灵活度,一种可能的选择是采用概率论中的Weibull分布。\beta是模型的参数。由于只要给定数据,就能够求出模型的参数\beta,而\lambda_0(t)的选择具有很大的灵活性,所以我们称之为一个半参数模型。

对公式进行变形,得到:

ln(h(t,X))=\beta \cdot X +ln(\lambda_0(t))

通过这个公式,我们可以发现,模型中各危险因素对危险率的影响不随时间改变,且与时间无关,同时,对数危险率与各个危险因素呈线性相关。这就是Cox回归中的两个基本假设。

参数的极大似然估计

极大似然估计的思想是,让已经发生的事件出现的可能性最大。那么,在当前的上下文中,时间出现的可能性最大的含义是什么呢?

让我们来举一个例子说明,假如有3个人,分别在时间t=1,3,7死去。我们希望我们的模型预测的结果是,当t=1时,第1个人死了,其它2个人活着,同时第1个人死掉的概率最大;当t=3时,第1,2个人死了,其它1个人活着,当t=5时,第3个人也死了。

如何达到上述目标呢?以t=1时为例,要想达到上述目标,就要:

max\;h(1,X_1) ,min\;h(1,X_2)+h(1,X_3)

为了将这两个目标统一起来,我们得到:

max\;\frac {h(1,X_1)}{h(1,X_2)+h(1,X_3)}

以此类推,得到t=3时的目标为:max \; \frac {h(3,X_2)}{h(3,X_3)},当t=5时,遇到问题了,因为没有其它人活着了,第二个目标不存在,分母为0。为了解决这个问题,我们在分母上加上分子这一项用来平滑。

所以最终三个目标为:max\;\frac {h(1,X_1)}{h(1,X_1)+h(1,X_2)+h(1,X_3)},max \; \frac {h(3,X_2)}{h(3,X_3)+h(3,X_3)},max\; \frac {h(5,X_3)}{h(5,X_3)}

似然函数为:

L(\beta)=\frac {h(1,X_1)}{h(1,X_1)+h(1,X_2)+h(1,X_3)} \frac {h(3,X_2)}{h(3,X_3)+h(3,X_3)}\frac {h(5,X_3)}{h(5,X_3)}

化简消去\lambda_0(t),得到:
L(\beta)=\frac {exp(\beta \cdot X_1)}{exp(\beta \cdot X_1)+exp(\beta \cdot X_2)+exp(\beta \cdot X_3)} \frac {exp(\beta \cdot X_2)}{exp(\beta \cdot X_3)+exp(\beta \cdot X_3)}\frac {exp(\beta \cdot X_3)}{exp(\beta \cdot X_3)}

公式化

以下对上述讨论进一步推广、泛化。设共有N个事件,第i个事件的风险特征为X_i,发生的时间为t_i,由此我们得到极大似然函数为:

L(\beta)=\prod_{i=1}^N \frac {exp(\beta \cdot X_i)}{\sum_{j:\; t_j \geq t_i} exp(\beta \cdot X_j)}

对数似然函数为:

l(\beta)=log\,L(\beta)=\sum_{i=1}^N [\beta \cdot X_i-log(\sum_{j:\;t_j \geq t_i} exp(\beta \cdot X_j))]

梯度为:
\frac {\partial l(\beta)}{\partial \beta}=\sum_{i=1}^N [ \beta-\frac {\sum_{j:\;t_j \geq t_i} X_j \cdot exp(\beta \cdot X_j)}{\sum_{j:\;t_j \geq t_i} exp(\beta \cdot X_j)}]

接下来,就可以采用梯度下降法等方法对参数进行估计。

Reference

  1. 公式部分,参考了Wikipedia:Proportional hazards model
  2. 基本假设部分,参考了百度百科:COX回归模型
  3. 极大似然部分的例子,参考了科学网:关于Cox回归模型你需要知道的数学,邵斌的博文

推荐阅读更多精彩内容

  • 回归,最初是遗传学中的一个名词,是由生物学家兼统计学家高尔顿首先提出来的。他在研究人类的身高时,发现高个子回归于人...
    黄成甲阅读 32,689评论 0 52
  • 回归分析可以说是统计学中内容最丰富、应用最广泛的分支。这一点几乎不带夸张。包括最简单的 t 检验、方差分析也都可以...
    wyrover阅读 3,484评论 2 19
  • 看完梁冬对蔡志忠先生关于生命话题的采访,首先是对这种人的敬佩,同时也清楚这种人生本来就是很少见很难得的,所以,不会...
    明_露阅读 268评论 0 1
  • 曾国藩说:做大事首重格局。 格局就是我们所有行动结果的天花板。格局决定了你的视野范围,你所做的一切,只能是自己所能...
    遇见未来的我阅读 151评论 0 0
  • 大概在2个月前,我感觉自己突然遇到了水逆。 意志消沉、工作拖延、心情沮丧,总觉得事事不顺。 直到有一天,因为有事需...
    馨小胖阅读 322评论 0 1