Le modèle de risque concurrentiel fait référence à l'événement final qui lui fait concurrence dans un événement clinique. Il s'agit de l'événement qui provoquera le changement du résultat initial, c'est ce qu'on appelle le modèle de risque concurrentiel. Par exemple, nous voulons observer la récidive de la tumeur d'un patient, mais le patient est décédé subitement dans un accident de voiture pendant la période d'observation, ou est décédé d'autres maladies, nous ne pouvons donc pas observer la récidive. Dans ce cas, les données manquantes ne peuvent pas être traitées uniquement comme censurées à droite. Dans ce cas, l'estimation des données sera erronée. C'est que nous devrions donner la priorité au modèle de risque concurrentiel pour l'analyse des données, plutôt qu'à la régression COX. Les modèles de risque concurrentiel sont souvent utilisés dans l'exploration de données. Nous présenterons à l'avenir comment utiliser les modèles de risque concurrentiel pour l'exploration de données dans le didacticiel d'exploration de base de données SEER.
Nous utilisons l'ensemble de données sur le cancer de la vessie vessie1 qui accompagne la survie en langage R. Afin de le faire répondre aux exigences du modèle de risque concurrentiel, nous avons fait un petit tri. Ce que nous voulons observer, c'est la récidive de la tumeur, donc la mort est sa facteur de concurrence du risque.
Nous importons d'abord le R requis, puis importons les données
library(foreign)
library(survival)
library("cmprsk")
library(rms)
be<-read.csv("E:/r/test/jzfx.csv",sep=',',header=TRUE)
Voyons à quoi ressemblent les données.
Le nom des données est interprété comme
suit : id: numéro du patient; traitement: 1. placebo 2. vitamine B 6. 3. thiotépa;
nombre: nombre initial de tumeurs taille: la plus grande initiale taille de la tumeur (cm) récidive: nombre de récidives
début, arrêt: début, arrêt: heure de début et de fin de chaque intervalle de temps état (résultat): 1. Survie 2. Récidive 3. Mort rtumeur: Le nombre de tumeurs trouvées à la récidive rsize : la plus grande taille de la tumeur lors de la récidive
## 不同治疗方案的复发率和竞争事件发生率
cum<-cuminc(be$etime,be$status,be$treatment)
plot(cum)
Peut aussi embellir
## 多因素竞争风险模型-复发的发生率(或竞争事件的发生率,failcode = 2)
time<-be$etime
status<-be$status
x <- be[, c('treatment', 'number', 'size','recur')]
fit2 <- crr(time,status,x,failcode = 1)#这里failcode = 1代表肿瘤复发
summary(fit2)
D'accord, nous avons le modèle, maintenant nous allons faire venir 1 patient pour le tester
fit3<-predict(fit2,c(1,2,1,0)) #对应数据X的4个指标
plot(fit3,lty=1,color="darkcyan",ylab="Cumulative probability of recurrence")
## Ensuite, faisons un nomogramme.
Premièrement, nous devons pondérer les données. Pourquoi avons-nous besoin d'une pondération? Le principe est très compliqué. Je ne connais pas le principe du modèle de risque concurrentiel, mais les grandes vaches disent que nous besoin de le peser.
library(mstate)
bc<-be
bc<-bc[-1,]
bc<-bc[-129,]
be.w<-crprep("etime",status = "status",data =bc,trans = c(1,2),cens = 0,id="id",
keep = c('treatment', 'number', 'size','recur'))#进行加权
be.w$Time<-be.w$Tstop-be.w$Tstart#添加个时间,好进行COX回归
dd<-datadist(be.w)
options(datadist="dd")
f <- cph(Surv(Tstart,Tstop,status==1) ~ treatment+number+size+recur, x=T, y=T,
surv=T, data=be.w, time.inc=36)#建立COX回归
surv<- Survival(f)#生成预测函数
nom <- nomogram(f, fun=list(function(x) surv(36, x),
function(x) surv(60, x)),
funlabel=c("3-year survival Probability",
"5-year survival Probability"))#制作列线图
plot(nom)
Ce nomogramme est un peu moche, principalement parce que la probabilité est trop faible. Si vous êtes intéressé, vous pouvez l'ajuster vous-même
### Nomogramme médian
med <- Quantile(f) # 计算中位生存时间
nom2 <- nomogram(f, fun=function(x) med(lp=x),funlabel="Median Survival Time")
plot(nom2)