分享

Survival Analysis learning note

 三思与猫 2020-09-02

参考资料

http://www./english/wiki/survival-analysis-basics

http:///2017/02/09/Fancy-Survival-Plots.html

https://www.jianshu.com/p/1a8ee973b45f

https://blog.csdn.net/zfcjhdq/article/details/83502854

我还是有时间去看看文献,文献:

《基于比例风险模型的生存分析研究 》第二章 生存分析理论基础介绍的比较清楚。

三步:计算生存率-->假设检验-->预后

1. 生存分析

1.1 生存概率估计

                    假设一个人,能存活到时间t的概率: S(t) = P (T > t)

由:画说统计 | 生存分析之Kaplan-Meier曲线都告诉我们什么中介绍的生存概率的计算方式,可以知道,S(t)是一个连乘函数,前S(ti-1),是计算下一次S(ti)的基础。故很容易得出:

S(ti) =S(ti-1)(1 - di/ni)

di: ti 时刻,死亡事件人数,n:在ti-1时刻存活下来的人

    该计算方法由1958年,Kaplan Meier 提出,故叫做KM 生存估计,可知知道,该计算方法都是基础观察数据结果直接进行计算,又称为无参法。

    S(t) 是一个指数函数,可知理论上的生存概率接近指数分布如a,实际上由于采样是取一个时间节点,则如图b,呈阶梯状。

类指数分布有以下几种:

(1)指数分布

        理想的指数分布,则发生概率保持稳定,则是一种纯随机死亡模型,即无论对象如何,失败概率在每个时间间隔内都是相同的,可知p=d(发生事件数)/T(时间分割数),适用于短时间隔内对生物体的存活分析;

(2)威布尔分布
    Weibull 提出,是指数分布的扩展,允许发生概率增大或减小的失败率,适应性更广。由下图公式可知道,引入了随机变量x,p=x/λ, p是变化的

1.2 风险概率估计

   在ti-ti+δ,事件发生的概率,计算的是事件的发生的瞬时概率,

定义其计算公式:

H(t)=−log(survivalfunction)=−log(S(t))

可以由其意义及公式,知道,h(t)是关于概率P的时间求导,风险函数h(t)是生存概率函数S(t)的导数.




2. 假设检验:同/异,显著性p value

2.1 Log-Rank test :只适用于分类变量的假设检验,不适用于连续变量的假设检验

    生存分析中,首先根据生存时间长短进行排序,计算生存概率的方式,可知知道,采用的检验方式: 秩检验,S(t)为指数函数,故采用Log-Rank test:对数秩检验,是一个大样本卡方检验(chi-square test)。

        Log-Rank test 零假设:生存曲线之间没有总体差异,p > 0.05 ,不能拒绝零假设,p< 0.05,则生存曲线之间具有显著差异。


w代表加权,不同的加权策略:加权不同,适用阶段不同



2.2 Cox proportional hazards regression model :CPH : Cox 比例风险模型

            如果假设存在一系列连续变量(协变量),这些连续变量X与生存相关,KM估计肯定是不适用的,适用于连续变量函数:  风险函数h(t),而又知道,S(t)为指数函数,h(t)也必定为指数函数,故假设:h(t) 与 exp(X)存在线性关系(1),且X与时间t独立(2)基线风险函数: h0(t)-----这里有点难理解,指代具体意义不明确,我理解为剩余贡献。

h(t | xi) = h0(t) exp (xiβ)

注: cox模型假设2检验:cox_zph函数,p >0.05,则可以认为满足假设。

    由此可知:h0(t)不可求非参数,exp (xiβ)参数,cox模型又叫做叫做半参数模型。该模型即为 1975 年英国统计学家 D.R.Cox提出的Cox 比例风险模型。

    最大的优点: 可以分析包含删失数据的生存资料,且不要求估计资料的生存分布类型。Cox 模型以生存结局和生存时间为因变量,可同时分析多个因素对生存结果的影响,是应用最广泛的生存分析方法之一。

    由于h0(t)未知,进行比较的时候,通常是比较分组之间的差异,这时候,我们就可以计算不同组间的风险比:hazard risk,即建立Cox 比例风险模型,确定协变量对生存时间的影响

   若 xi为暴露组观察对象各因素的取值,xj为非暴露组观察对象各因素的取值,HR >1,风险增大,反之减小。

            所以,Cox 比例风险模型不以生存时间为因变量,而是通过风险函数和基线风险函数的比值来确定协变量对生存时间的影响,通常这两项是未知的,故,偏似然估计的方法来获得偏回归系数



L
i
(β)

2.2.2 非线性生存模型

    对神经网络不懂,暂略,以后再补充



3. R 语言的实现

survival和survminer两个包进行生存分析,下次有需要再看源代码....

survminer由kassambara开发,github上由该包的使用说明

survminer: Survival Analysis and Visualization,链接:https://github.com/kassambara/survminer


R中不同加权方式的实现

另一个函数surv_pvalue,这个函数返回的结果更简洁

居然没有代码书写的模块。。。代码简

install.packages("survminer") # 安装survminer包
install.packages("survival") # 安装survival包
library(survminer) # 加载包
library(survival) # 加载包
data("lung")
View(lung)
attach(lung)

#Surv(time = lung$time,lung$status) 
fit<-survfit(Surv(lung$time,lung$status)~lung$sex) # 估计生存曲线
summary(fit)
ggsurvplot(fit = fit,data = lung,surv.median.line = "hv",conf.int = T,pval = T) # show p-value of log-rank test.

fit<-survfit(Surv(lung$time,lung$status)~lung$age + lung$sex)
head(summary(fit));summary(fit)$table
ggsurvplot(fit = fit,data = lung,surv.median.line = "hv",conf.int = T,pval = T)

#Log-Rank test
test_diff <- survdiff(Surv(lung$time,lung$status)~lung$age,data = lung)

#-------------------summary(fit) 结果说明------------------#

n: total number of subjects in each curve.
time: the time points on the curve.
n.risk: the number of subjects at risk at time t
n.event: the number of events that occurred at time t.
n.censor: the number of censored subjects, who exit the risk set, without an event, at time t.
lower,upper: lower and upper confidence limits for the curve, respectively.
strata: indicates stratification of curve estimation. If strata is 
not NULL, there are multiple curves in the result. The levels of strata 
(a factor) are the labels for the curves.


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多