Fine-Gray检验、竞争风险模型、列线图绘制

医学大数据|R|竞争风险模型:基础、R操作与结果解读 竞争风险模型:基础、R操作与结果解读 阅读详情

竞争风险模型(Competing Risk Model)适用于多个终点的生存数据,传统的生存分析(survival analysis) 一般只关心一个终点事件(即研究者感兴趣的结局)。将其他事件均按删失数据(Censored Data)处理,要求个体删失情况与个体终点事件相互独立,结局不存在竞争风险。

竞争风险模型(Competing Risk Model) : 指的是在观察队列中,存在某种已知事件可能会影响另一种事件发生的概率或者是完全阻碍其发生,则可认为前者与后者存在竞争风险。

比如我们研究某药物和肠癌复发的关系,感兴趣事件是肠癌复发,但是研究过程中病人因为心梗死了,这样就观察不到感兴趣事件了,那心梗死亡就可以被叫做竞争风险事件。

本文目录:

  • 加载数据和R包

  • Fine-Gray检验(单因素分析)

    • 图形展示结果

    • ggplot2

  • 竞争风险模型(多因素分析)

  • 列线图

  • 参考资料

加载数据和R包

探讨骨髓移植和血液移植治疗白血病的疗效,结局事件定义为复发,某些患者因为移植不良反应死亡,定义为竞争风险事件。

rm(list = ls())
data("bmtcrr",package = "casebase")
str(bmtcrr)
## 'data.frame': 177 obs. of  7 variables:
##  $ Sex   : Factor w/ 2 levels "F","M": 2 1 2 1 1 2 2 1 2 1 ...
##  $ D     : Factor w/ 2 levels "ALL","AML": 1 2 1 1 1 1 1 1 1 1 ...
##  $ Phase : Factor w/ 4 levels "CR1","CR2","CR3",..: 4 2 3 2 2 4 1 1 1 4 ...
##  $ Age   : int  48 23 7 26 36 17 7 17 26 8 ...
##  $ Status: int  2 1 0 2 2 2 0 2 0 1 ...
##  $ Source: Factor w/ 2 levels "BM+PB","PB": 1 1 1 1 1 1 1 1 1 1 ...
##  $ ftime : num  0.67 9.5 131.77 24.03 1.47 ...

这个数据一共7个变量,177行。

  • Sex: 性别,F是女,M是男

  • D: 疾病类型,ALL是急性淋巴细胞白血病,AML是急性髓系细胞白血病。

  • Phase: 不同阶段,4个水平,CR1,CR2,CR3,Relapse。

  • Age: 年龄。

  • Status: 结局变量,0=删失,1=复发,2=竞争风险事件。

  • Source: 因子变量,2个水平:BM+PB(骨髓移植+血液移植),PB(血液移植)。

  • ftime: 生存时间。

# 竞争风险分析需要用的R包
library(cmprsk)
## Loading required package: survival

Fine-Gray检验(单因素分析)

在普通的生存分析中,可以用log-rank检验做单因素分析,在竞争风险模型中,使用Fine-Gray检验进行单因素分析。

 比如现在我们想要比较不同疾病类型(D)有没有差异,可以进行Fine-Gray检验:

bmtcrr$Status <- factor(bmtcrr$Status)
f <- cuminc(bmtcrr$ftime, bmtcrr$Status, bmtcrr$D)
f
## Tests:
##        stat         pv df
## 1 2.8623325 0.09067592  1
## 2 0.4481279 0.50322531  1
## Estimates and Variances:
## $est
##              20        40        60        80       100       120
## ALL 1 0.3713851 0.3875571 0.3875571 0.3875571 0.3875571 0.3875571
## AML 1 0.2414530 0.2663827 0.2810390 0.2810390 0.2810390        NA
## ALL 2 0.3698630 0.3860350 0.3860350 0.3860350 0.3860350 0.3860350
## AML 2 0.4439103 0.4551473 0.4551473 0.4551473 0.4551473        NA
## 
## $var
##                20          40          60          80         100         120
## ALL 1 0.003307032 0.003405375 0.003405375 0.003405375 0.003405375 0.003405375
## AML 1 0.001801156 0.001995487 0.002130835 0.002130835 0.002130835          NA
## ALL 2 0.003268852 0.003373130 0.003373130 0.003373130 0.003373130 0.003373130
## AML 2 0.002430406 0.002460425 0.002460425 0.002460425 0.002460425          NA

结果中1代表复发,2代表竞争风险事件。

第一行统计量=2.8623325, P=0.09067592,表示在控制了竞争风险事件(即第二行计算的统计量和P值)后,两种疾病类型ALL和AML的累计复发风险无统计学差异P=0.09067592。

第2行说明ALL和AML的累计竞争风险无统计学差异。

$est表示估计的各时间点ALL和AML组的累计复发率与与累计竞争风险事件发生率(分别用1和2来区分,与第一行第二行一致)。

$var表示估计的各时间点ALL和AML组的累计复发率与与累计竞争风险事件发生率的方差(分别用1和2来区分,与第一行第二行一致)。

图形展示结果

对于上述结果可以使用图形展示:

plot(f,xlab = 'Month', ylab = 'CIF',lwd=2,lty=1,
     col = c('red','blue','black','forestgreen'))

unnamed-chunk-4-160276184

图形解读:

纵坐标表示累计发生率CIF,横坐标是时间。我们从ALL1对应的红色曲线和AML1对应的蓝色曲线可以得出,ALL组的复发风险较AML 组高,但无统计学意义,P=0.09067592。同理,ALL2对应的黑色曲线在AML2对应的草绿色曲线下方,我们可以得出,ALL组的竞争风险事件发生率较AML组低,同样无统计学意义,P=0.50322531。

简单来讲,这个图可以用一句话来概括:在控制了竞争风险事件后,ALL和AML累计复发风险无统计学差异P=0.09067592。

ggplot2

这个图不好看,非常的不ggplot,所以我们要用ggplot2重新画它!所以首先要提取数据,因为数就是图,图就是数。但是万能的broom包竟然没有不能提取这个对象的数据,只能手动来,太不优雅了!

# 提取数据
ALL1 <- data.frame(ALL1_t = f[[1]][[1]], ALL1_C = f[[1]][[2]])
AML1 <- data.frame(AML1_t = f[[2]][[1]], AML1_C = f[[2]][[2]])
ALL2 <- data.frame(ALL2_t = f[[3]][[1]], ALL2_C = f[[3]][[2]])
AML2 <- data.frame(AML2_t = f[[4]][[1]], AML2_C = f[[4]][[2]])

library(ggplot2)

ggplot()+
  geom_line(data = ALL1, aes(ALL1_t,ALL1_C))+
  geom_line(data = ALL2, aes(ALL2_t,ALL2_C))+
  geom_line(data = AML1, aes(AML1_t,AML1_C))+
  geom_line(data = AML2, aes(AML2_t,AML2_C))+
  labs(x="month",y="cif")+
  theme_bw()

unnamed-chunk-5-160276184

但是这种不好上色,所以我们美化一下,变成长数据再画图即可。

tmp <- data.frame(month = c(ALL1$ALL1_t,AML1$AML1_t,ALL2$ALL2_t,AML2$AML2_t),
                  cif = c(ALL1$ALL1_C,AML1$AML1_C,ALL2$ALL2_C,AML2$AML2_C),
                  type = rep(c("ALL1","AML1","ALL2","AML2"), c(58,58,58,88))
                  )

ggplot(tmp, aes(month, cif))+
  geom_line(aes(color=type, group=type),size=1.2)+
  theme_bw()+
  theme(legend.position = "top")

unnamed-chunk-6-160276184

但是也不太好看,大家自己修改即可。

竞争风险模型(多因素分析)

做完了单因素分析,再看看竞争风险模型的多因素分析。

首先要把自变量单独放在一个数据框里,使用中发现一个问题,这里如果把分类变量变为因子型不会自动进行哑变量编码,所以需要手动进行哑变量编码!

但是我这里偷懒了,并没有进行哑变量设置!实际中是需要的哦!!

covs <- subset(bmtcrr, select = - c(ftime,Status))
covs[,c(1:3,5)] <- lapply(covs[,c(1:3,5)],as.integer)

str(covs)
## 'data.frame': 177 obs. of  5 variables:
##  $ Sex   : int  2 1 2 1 1 2 2 1 2 1 ...
##  $ D     : int  1 2 1 1 1 1 1 1 1 1 ...
##  $ Phase : int  4 2 3 2 2 4 1 1 1 4 ...
##  $ Age   : int  48 23 7 26 36 17 7 17 26 8 ...
##  $ Source: int  1 1 1 1 1 1 1 1 1 1 ...

指定failcode=1, cencode=0, 分别代表结局事件1与截尾0,其他默认为竞争风险事件2。

# 构建竞争风险模型
f2 <- crr(bmtcrr$ftime, bmtcrr$Status, covs, failcode=1, cencode=0)
summary(f2)
## Competing Risks Regression
## 
## Call:
## crr(ftime = bmtcrr$ftime, fstatus = bmtcrr$Status, cov1 = covs, 
##     failcode = 1, cencode = 0)
## 
##           coef exp(coef) se(coef)      z p-value
## Sex     0.0494     1.051   0.2867  0.172 0.86000
## D      -0.4860     0.615   0.3040 -1.599 0.11000
## Phase   0.4144     1.514   0.1194  3.470 0.00052
## Age    -0.0174     0.983   0.0118 -1.465 0.14000
## Source  0.9526     2.592   0.5469  1.742 0.08200
## 
##        exp(coef) exp(-coef)  2.5% 97.5%
## Sex        1.051      0.952 0.599  1.84
## D          0.615      1.626 0.339  1.12
## Phase      1.514      0.661 1.198  1.91
## Age        0.983      1.018 0.960  1.01
## Source     2.592      0.386 0.888  7.57
## 
## Num. cases = 177
## Pseudo Log-likelihood = -267 
## Pseudo likelihood ratio test = 23.6  on 5 df,

结果解读:在控制了竞争分险事件后,phase变量,即疾病所处阶段是患者复发的独立影响因素(p =0.00052)。

列线图

regplot包绘制列线图。但是它目前只适用coxph()、lm()和glm()返回的对象。

因此我们需要对原数据集加权创建一个新数据集用于为竞争风险模型分析,使用mstate包中的crprep()创建加权数据集,然后使用coxph()对加权数据集进行竞争风险模型拟合,这样就可以画列线图了。

首先是加载数据和R包:

rm(list = ls())
data("bmtcrr",package = "casebase") # 还是这个数据

library(mstate) # 加权用到的R包

bmtcrr$id <- 1:nrow(bmtcrr) # 创建id

# phase变为2分类,不然列线图不好解释
bmtcrr$Phase <- factor(ifelse(bmtcrr$Phase=="Relapse",1,0)) 
str(bmtcrr)
## 'data.frame': 177 obs. of  8 variables:
##  $ Sex   : Factor w/ 2 levels "F","M": 2 1 2 1 1 2 2 1 2 1 ...
##  $ D     : Factor w/ 2 levels "ALL","AML": 1 2 1 1 1 1 1 1 1 1 ...
##  $ Phase : Factor w/ 2 levels "0","1": 2 1 1 1 1 2 1 1 1 2 ...
##  $ Age   : int  48 23 7 26 36 17 7 17 26 8 ...
##  $ Status: int  2 1 0 2 2 2 0 2 0 1 ...
##  $ Source: Factor w/ 2 levels "BM+PB","PB": 1 1 1 1 1 1 1 1 1 1 ...
##  $ ftime : num  0.67 9.5 131.77 24.03 1.47 ...
##  $ id    : int  1 2 3 4 5 6 7 8 9 10 ...

然后是对原数据进行加权:

df.w <- crprep("ftime", "Status",
               data=bmtcrr, 
               trans=c(1,2),# 要加权的变量,1表示结局事件,2表示竞争风险事件
               cens=0, # 删失
               id="id",
               
               # 要保留的协变量
               keep=c("Age","Sex","D","Source","Phase"))

df.w
##       id Tstart  Tstop status weight.cens Age Sex   D Source Phase count
## 1      1   0.00   0.67      2   1.0000000  48   M ALL  BM+PB     1     1
## 2      1   0.67   9.50      2   1.0000000  48   M ALL  BM+PB     1     2
## 3      1   9.50  13.07      2   0.9679938  48   M ALL  BM+PB     1     3
## 4      1  13.07  17.23      2   0.8730924  48   M ALL  BM+PB     1     4
## 5      1  17.23  20.83      2   0.8536904  48   M ALL  BM+PB     1     5
## 6      1  20.83  28.53      2   0.8120469  48   M ALL  BM+PB     1     6
## 省略......

df.w$T<- df.w$Tstop - df.w$Tstart

上述代码已经创建一个加权数据集df.w,此时还需要选择failcode == 1的行,然后我们才可以在此数据集上使用coxph()函数进行竞争风险分析,不然最后画列线图会报错。

# 参考资料
# https://blog.csdn.net/zhongkeyuanchongqing/article/details/124086113
df.w2 <- df.w[df.w$failcode == 1,]

构建cox模型:

m.crr<- coxph(Surv(T,status==1)~Age+Sex+D+Source+Phase,
             data=df.w2,
             weight=weight.cens,
             subset=failcode==1)
summary(m.crr)
## Call:
## coxph(formula = Surv(T, status == 1) ~ Age + Sex + D + Source + 
##     Phase, data = df.w2, weights = weight.cens, subset = failcode == 
##     1)
## 
##   n= 686, number of events= 56 
## 
##              coef exp(coef) se(coef) robust se      z Pr(>|z|)    
## Age      -0.02174   0.97850  0.01172   0.01208 -1.800 0.071914 .  
## SexM      0.10551   1.11128  0.27981   0.29571  0.357 0.721247    
## DAML     -0.53163   0.58764  0.29917   0.30613 -1.737 0.082450 .  
## SourcePB  1.06564   2.90269  0.53453   0.56000  1.903 0.057051 .  
## Phase1    1.06140   2.89040  0.27870   0.28129  3.773 0.000161 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##          exp(coef) exp(-coef) lower .95 upper .95
## Age         0.9785     1.0220    0.9556     1.002
## SexM        1.1113     0.8999    0.6225     1.984
## DAML        0.5876     1.7017    0.3225     1.071
## SourcePB    2.9027     0.3445    0.9686     8.699
## Phase1      2.8904     0.3460    1.6654     5.016
## 
## Concordance= 0.737  (se = 0.037 )
## Likelihood ratio test= 28.33  on 5 df,   p=3e-05
## Wald test            = 27.27  on 5 df,   p=5e-05
## Score (logrank) test = 30.49  on 5 df,   p=1e-05,   Robust = 20.2  p=0.001
## 
##   (Note: the likelihood ratio and score tests assume independence of
##      observations within a cluster, the Wald and robust score tests do not).

接下来,我们可以使用regplot()函数绘制nomogram。其实你可以绘制多种不同的列线图,可以参考之前的推文:生存资料列线图的4种绘制方法

library(regplot)
regplot(m.crr,
        observation=df.w2[df.w2$id==25&df.w2$failcode==1,],
        failtime = c(36, 60), 
        prfail = T, 
        droplines=T)

在这个列线图中,将数据集中id=25的患者各协变量的取值映射到相应的得分,并计算总得分,并分别计算其在36个月和60个月的累计复发概率,此概率即为控制了竞争风险的累计复发概率,分别为:0.134和0.146。

参考资料

  1. https://mp.weixin.qq.com/s/IXjTueSBLjgbHoBJFCWylA

  2. https://mp.weixin.qq.com/s/1fS7fPLNJq-ga_5bodmavA

  3. https://blog.csdn.net/zhongkeyuanchongqing/article/details/124086113

R数据分析:竞争风险模型的做法和解释 今天有粉丝找我做一个竞争风险模型,顺便给大家写一个简易的教程,有问题大家直接私信,根据您的需求,一直做到您满意。 竞争风险模型这个东西还是临床医生用的多: 很直观的情景就是:研究治疗方案A和白血病复发的关系,如果患者在去医院复查的路上出车祸意外死亡了,就观察不到白血病复发了,也就是说“车祸死亡” 和“复发”存在竞争。这样的现象在医学研究中,非常常见!你想研究A因素导致的病人死亡,可是现实情况是病人常常死于其他疾病或情形。这个就是竞争风险模型。 竞争风险模型可以作为Kaplan–Meier (KM)和c 阅读详情

相关推荐

R语言中的Fine-Gray竞争风险模型

Fine-Gray竞争风险模型是一种用于分析具有竞争风险的生存数据的统计模型。在R语言中,我们可以使用一些包来实现Fine-Gray竞争风险模型的建模和分析,例如。假设我们有一个具有竞争风险的生存数据集,其中包含个体的生存时间、事件发生指示器、竞争事件指示器以及其他可能的协变量。除了模型的拟合和摘要信息,我们还可以使用Fine-Gray竞争风险模型来进行预测和推断。包来实施Fine-Gray竞争风险模型的基本步骤。通过这些包提供的函数和工具,研究人员可以对具有竞争风险的生存数据进行深入的统计分析和解释。

2301_79331421的博客 1475

一步到位:手把手教你R语言竞争风险模型建模-列线图-校准曲线-K折验证-外部验证- 决策曲线

竞争风险模型就是指在临床事件中出现和它竞争的结局事件,这是事件会导致原有结局的改变,因此叫做竞争风险模型。比如我们想观察患者肿瘤的复发情况,但是患者在观察期突然车祸死亡,或者因其他疾病死亡,这样我们就观察不到复发情况了,这种情况下不能把缺失数据仅仅当做右删失处理,这样的话会造成数据的估值错误。这是我们应该优先选择竞争风险模型来做数据分析,而不是COX回归。我们在既往文章《手把手教你使用R语言做竞争风险模型并绘制列线图》中已经介绍了cmprsk包建立竞争风险模型和绘制列线图,但是cmprsk包功能还是相对简单

dege857的博客 1万+

进行单因素的Fine-Gray检验(R语言实现)

Fine-Gray模型是对Cox比例风险模型的扩展,用于处理具有竞争风险的生存数据。竞争风险指的是在观察期内,一个事件的发生可能会影响其他事件的发生概率。例如,在研究某个特定疾病的死亡率时,该疾病的治疗可能会影响其他非相关因素导致的死亡。假设我们的数据是一个多状态生存数据集,其中包含三个状态:状态1、状态2和竞争风险状态。Fine-Gray模型是一种用于分析多状态生存数据的统计模型,常用于分析具有竞争风险的事件发生。在本文中,我们将介绍如何使用R语言进行单因素的Fine-Gray检验,并提供相应的源代码。

2301_79325339的博客 796

生存分析进阶:破解比例风险违逆、竞争风险与时间依赖评估的R实战

生存分析是临床与工程领域处理时间-事件数据的核心统计工具,其基础形式如Kaplan-Meier曲线和Cox回归,常被用于比较组间生存差异和估计风险比。然而,当数据中比例风险假设被违反、存在竞争终点事件,或需要按时间维度评估预测能力时,传统方法的结论往往失真。针对这些问题,统计学家发展了分层Cox模型、时变系数、Fine-Gray竞争风险模型以及时间依赖ROC等进阶技术。这些方法不仅能处理更复杂的真实数据结构,还能提供更贴近临床实际的累积发生率估计和动态预测性能评价。在肿瘤学、慢性病随访及可靠性工程等场景中,

weixin_32175665的博客 246

什么是竞争风险模型(Competing Risk Model)、为什么选用竞争风险模型?为什么会高估风险?cmprsk包进行竞争风险分析、regplot包的regplot函数可视化回归模型的列线图

什么是竞争风险模型(Competing Risk Model)、为什么选用竞争风险模型?为什么会高估风险?cmprsk包进行竞争风险分析、regplot包的regplot函数可视化回归模型的列线图

data+scenario+science+insight 2043

什么是竞争风险模型、为什么选用竞争风险模型?为什么会高估风险?cmprsk包进行竞争风险分析、regplot包的regplot函数可视化回归模型的列线图

什么是竞争风险模型、为什么选用竞争风险模型?为什么会高估风险?cmprsk包进行竞争风险分析、regplot包的regplot函数可视化回归模型的列线图

statistics+insight+vista+power 547

生存分析进阶三板斧:竞争风险、PH检验与个体预测

生存分析是处理“时间到事件”数据的核心统计框架,广泛应用于临床研究、用户流失预测、设备故障分析等领域。基础分析中,KM曲线和Cox回归虽能初步估计生存概率与风险因素,但面对竞争事件、比例风险假设违背及个体概率预测等问题时,常会出现偏差。例如,当研究终点为疾病进展而部分患者先死亡时,简单KM估计会高估目标事件发生率;若Cox模型的PH假设检验未通过,单一HR可能无法准确描述时变效应。本文系统阐述生存分析进阶的三大关键技术:基于累积发生率函数的竞争风险模型(如Fine-Gray模型)、Cox回归的PH假设诊断与

weixin_33402252的博客 311

进行单因素的Fine-Gray检验(R语言)

这里以一个示例数据集为例,假设我们的数据集名为"comp_data",包含了"时间"、"事件类型"和"竞争事件"这三列。需要注意的是,本文仅介绍了如何使用R语言进行单因素的Fine-Gray检验,并提供了相应的代码示例。在进行Fine-Gray检验之前,我们需要先安装并加载必要的R包,包括"survival"和"cmprsk"。Fine-Gray检验是一种常用的统计方法,用于分析竞争风险数据中的因素对事件发生率的影响。通过上述步骤,我们成功进行了单因素的Fine-Gray检验,并获取了相关的统计结果。

PixelDyno的博客 760

R语言:生存分析竞争风险模型,从理论到实战总结

临床研究中结局事件可能有多个, 例如结局B将阻止感兴趣事件A的出现或影响A发生的概率,B事件形成"竞争”关系,B为A竞争风险事件。常见场景是研究治疗方案A和复发的关系,如果患者在死亡就观察不到复发,“死亡”和“复发”存在竞争。传统生存分析回归前提假设是删失时间与失效时间是独立的且删失对回归系数β是无信息的,即结局不存在竞争风险。临床生存数据常常伴有多个结局,结局间若存在竞争关联关系,简单地将其他原...

郑老师统计 8524

R语言生存分析之竞争风险模型

R语言生存分析之竞争风险模型 竞争风险模型(Competing Risk Model)是一种处理多种潜在结局生存数据的分析方法,早在1999年Fine和Gray就提出了部分分布的半参数比例风险模型,通常使用的终点指标是累积发生率函数(cumulative incidence function,CIF)。 研究中结局事件可能有多个,某些结局将阻止感兴趣事件的出现或影响其发生的概率,各结局事件形成“竞争”关系,互为竞争风险事件。 竞争风险模型( Competing Risk Model ) : 指

data+scenario+science+insight 5234

R语言Fine-Gray竞争风险模型实战

R语言Fine-Gray竞争风险模型实战 目录 R语言Fine-Gray竞争风险模型实战 竞争风险模型(Fine & Gray模型) #案例分析 #样例数据 #竞争风险模型构建 竞争风险模型(Fine & Gray模型) 研究治疗方案A和白血病复发的关系,如果患者在去医院复查的路上出车祸意外死亡了,就观察不到白血病复发了,也就是说“车祸死亡” 和“复发”存在竞争。这样的现象在医学研究中,非常常见! 在分析某事件发生时间时,如果该事件被其他事件阻碍,即存在竞争风险

data+scenario+science+insight 3535

竞争风险模型的列线图和校准曲线

主要是借助cmprsk这个包实现的,并且列线图的绘制也是间接实现的。今天介绍的QHScrnomo依赖于rmscmprskHmisc等包,是专门用于竞争风险模型的列线图绘制,除此之外还可以建立模型、绘制校准曲线、进行内外部验证等。

医学和生信笔记的博客 1454

R语言应用:利用Fine-Gray竞争风险模型进行数据分析

使用R语言进行Fine-Gray分析可以帮助我们深入了解不同类型事件之间的相互影响,并提供有关风险因素的关键信息,从而为决策提供支持。Fine-Gray竞争风险模型是对传统的Cox比例风险模型的扩展,它通过引入子分析模型来建模不同类型的竞争事件。Fine-Gray模型可以帮助我们估计兴趣事件的风险和竞争事件对兴趣事件的影响。Fine-Gray竞争风险模型是一种常用于生存数据分析的统计模型,可以用于评估多个事件(如死亡、失业等)发生的风险,并考虑到竞争事件相互之间的影响。

CyberBladeX的博客 1296

Topic 20. 临床预测模型之竞争风险模型及计算生存概率

构建竞争风险模型及计算生存概率

weixin_41368414的博客 3311

4.临床预测模型——竞争风险模型

竞争风险事件:指出现研究对象感兴趣事件的同时,其他终点事件也有可能出现,这些终点事件将阻止感兴趣事件的出现,或使其发生概率降低,各终点事件之间形成所谓的竞争关系。竞争风险模型仅仅关心研究对象发生的第一个终点事件,而后发生的其他终点事件称为删失事件(censoring)。如基线未发生心血管疾病的研究对象在观察期内死于癌症、车祸等其他原因前并未发生心血管疾病,就不能为CVD的发病做出贡献,传统生存分析将其他原因死亡的个体,失访个体和存活个体记为删失数据,会高估CVD的累积发病率。

Dr_long1996的博客 5019

【实战复盘】当PIN码失效撞上诊断启动:从WinRE到msconfig的绝地求生

本文详细解析了当Windows系统PIN码失效且诊断启动导致系统崩溃时的应急解决方案。通过WinRE环境进入命令提示符,利用utilman.exe替换技巧和msconfig工具恢复系统配置,帮助用户从多重故障中恢复系统正常运行。文章还提供了预防此类问题的实用建议,适合遇到类似系统故障的用户参考。

weixin_30596343的博客 189

Competing Risks (竞争风险)

参考资料: 1. Competing Risks(Germ´an Rodr´ıguez) 2. Competing Risks - What, Why, When and How? (Sally R. Hinchliffe) 1. 简介与例子引入 competing risks指造成failure的原因有多种可能。 以放置节育环为例,这里的failure指的应该是节育环没能在原...

dongbo4061的专栏 1085

Error: dependent ‘..\..\..\..\Qt\5.15.2\msvc2019\include\QtWidgets\QMainWindow‘ does not exist.

核心问题:修改 Build 目录为源码子目录后,MSVC 编译报错,本质是变量设置异常,导致 qmake 生成多余回溯路径;临时解决:在 .pro 文件添加;最优解决:将上述配置写入 Qt 的 msvc 对应 qmake.conf 全局文件,一劳永逸;禁止 qmake 计算路径时向上回溯,避免生成异常路径。

mumufan05的专栏 868

手把手教你使用R语言做竞争风险模型并绘制列线图

竞争风险模型就是指在临床事件中出现和它竞争的结局事件,这是事件会导致原有结局的改变,因此叫做竞争风险模型。比如我们想观察患者肿瘤的复发情况,但是患者在观察期突然车祸死亡,或者因其他疾病死亡,这样我们就观察不到复发情况了,这种情况下不能把缺失数据仅仅当做右删失处理,这样的话会造成数据的估值错误。这是我们应该优先选择竞争风险模型来做数据分析,而不是COX回归。竞争风险模型在数据挖掘中经常使用到,我们将来在SEER数据库挖掘教程中将介绍怎么使用竞争风险模型进行数据挖掘。 我们使用R语言survival自带的膀胱

dege857的博客 1万+

GEE APP:时间序列影像批处理工具:按月筛选与智能导出解决方案出工具

本文介绍了一个基于Google Earth Engine(GEE)开发的智能时序影像处理工具,可高效处理遥感影像时间序列数据。该工具采用三栏式交互布局,包含控制面板、地图显示和缩略图预览区域。核心功能包括:1)灵活的时间筛选机制,支持年度范围选择和月份批量选择;2)智能影像筛选算法,基于云量、空间覆盖等条件自动选择最佳影像;3)交互式缩略图预览,支持点击加载完整影像;4)自动化批量导出系统,实现标准化命名和统一存储。工具可广泛应用于农业监测、城市扩张研究、生态环境评估等领域,显著提高遥感数据预处理效率,确保

此星光明博客 110

基于STM32、HAL库的MICRF112YMM-TR 无线收发器驱动程序设计

内部集成了 VCO、PLL、PA、LNA、混频器、滤波器等射频功能单元,极大减少了外部元件数量,降低了设计和布线难度。: 具有多种工作模式(睡眠、待机、接收、发射),待机电流极低,非常适合电池供电的物联网(IoT)设备。是 Microchip 公司生产的一款高性能、低功耗的单片 UHF ASK/FSK 收发器芯片。: 支持 ASK (幅移键控) 和 FSK (频移键控) 调制,适应不同应用需求。// 可以添加其他配置参数,如中心频率、数据速率等。智能家居(安防、遥控、传感)远程钥匙进入系统 (RKE)

corlin6688的博客 407
上一篇: R语言生存曲线的可视化(超详细)
下一篇: R语言因子分析
医学和生信笔记
博客等级 码龄5年 2831粉丝 218原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值