轉(zhuǎn)自個人微信公粽號【易學(xué)統(tǒng)計】的統(tǒng)計學(xué)習(xí)筆記:R軟件繪制患者中位生存時間列線圖
研究背景
前兩章分享的是繪制1年、3年和5年生存時間的列線圖边苹,本章主要是繪制中位生存期的列線圖陵且。生存期和生存率都是臨床上評價腫瘤治療的重要指標(biāo)。生存期一般分為總生存期(OS)个束、中位生存期(MST)慕购、無進(jìn)展生存期(PFS),每個指標(biāo)都有不同的意義茬底,而生存率也有3年生存率沪悲、5年生存率,10年生存率等阱表。
5年生存率是指某種腫瘤經(jīng)綜合治療后殿如,生存5年以上的比例。5年生存率表達(dá)具有一定的科學(xué)性最爬。
中位生存期(MST)又稱半數(shù)生存期涉馁,表示有且只有50%的個體活過這個時間。比如1000個人參加臨床試驗爱致,將每個人的生存時間按照從小到大排名烤送,第501人的生存時間為18個月,即表明該臨床試驗的中位生存期為18個月蒜鸡。如果是評估某個癌種的中位生存期胯努,一般從發(fā)現(xiàn)該腫瘤開始計算;如果是評估某項臨床試驗的中位生存期逢防,一般從給藥或隨機開始。
案例研究
本文數(shù)據(jù)依舊采用R自帶的lung數(shù)據(jù)集蒲讯,一個晚期肺癌數(shù)據(jù)集忘朝,收集了228例癌癥患者的生存資料,包含患者年齡判帮、性別局嘁、生存時間溉箕、生存狀態(tài)等10個變量。本文利用年齡悦昵、性別和體重減輕三個變量構(gòu)建模型肴茄,繪制中位生存期列線圖。
臨床研究一般提供多個危險因素但指,首先做單因素的篩選寡痰,具體篩選方法,見公眾號之前的文章棋凳,本章詳細(xì)說明中位生存期列線圖和自定義存活比例患者列線圖的繪制拦坠。
R代碼及解讀
##加載包 明確每個包的作用
library(rms) ##繪制列線圖
library(survival) ##生存分析包
##調(diào)用數(shù)據(jù),數(shù)據(jù)格式與普通的spss中格式一樣剩岳,一行代表一條觀測贞滨,
##一列代表一個變量;
data(lung)
d <- lung
#aggr(d,prop=T,numbers=T) #判斷數(shù)據(jù)缺失情況拍棕,紅色表示有缺失晓铆。
d <- na.omit(d) #按行刪除缺失值
第一步,數(shù)據(jù)整理绰播。
###添加變量標(biāo)簽骄噪,在列線圖上展示分類標(biāo)簽
d$sex <- factor(d$sex,levels = c(1,2),labels = c('male','female'))
##結(jié)局變量轉(zhuǎn)換
d$status <- ifelse(d$status==2,1,0)
str(d)##可以查看數(shù)據(jù)結(jié)構(gòu)
第二步:構(gòu)建模型并繪制中位生存時間列線圖
#Cox模型多因素分析-進(jìn)行比例風(fēng)險假設(shè)檢驗
y<-Surv(d$time,d$status==1,type="right")
mod<-coxph(y~age+sex+wt.loss, data=d)
temp <- cox.zph(mod,transform="rank",global=T) ##等比例檢驗
temp
#####結(jié)果展示
## chisq df p
## age 0.647 1 0.42
## sex 1.064 1 0.30
## wt.loss 0.376 1 0.54
## GLOBAL 1.974 3 0.58
dd<-datadist(d) #設(shè)置工作環(huán)境變量,將數(shù)據(jù)整合
options(datadist='dd') #設(shè)置工作環(huán)境變量幅垮,將數(shù)據(jù)整合
units(d$time) <- "Day" ## 設(shè)定時間單位
##
coxm <- cph(Surv(time,status)~age+sex+ph.ecog,x=T,y=T,data=d,surv=T)
med <- Quantile(coxm)
###繪制cox回歸生存概率的nomogram圖
## 構(gòu)建Nomo圖的對象只能是rms包中cph()函數(shù)
nom1 <- nomogram(coxm, fun=function(x) med(lp=x), ## lp 繪制線形圖腰池,即圖中totalpoints那根線
funlabel="Median Survival Time",
lp=F)
par(mar=c(4,5,3,2),cex=0.8) ## 設(shè)置畫布
plot(nom1)
自定義存活比例列線圖的繪制:比如現(xiàn)在想知道25%的人能存活的時間,此時在原函數(shù)中添加q=0.25就行忙芒,如果想看75%的人能存活的時間示弓,則q=0.75。
第三步:繪制列線圖
nom2<- nomogram(fcox,fun=list(function(x) med(lp=x,q=0.5),
function(x) med(lp=x,q=0.25)),
funlabel=c("Median Survival Time","1Q Survival Time"),
lp=F)
### 以下是將列線圖輸出保存方法
road<- paste('C:\\文件夾\\','Nomo.jpeg',sep='',collapse = "")
jpeg(file=road,width = 1000, height = 600) ##定義輸出圖片的長度和寬度
plot(nom2,cex.axis=1.4, ## 坐標(biāo)軸刻度文字的縮放倍數(shù)
xfrac=.25, ## 左側(cè)標(biāo)簽與 刻度的距離
cex.lab=1.6, ##坐標(biāo)軸標(biāo)簽(名稱)的縮放倍數(shù)
col.grid=c("red","green")) ## 畫網(wǎng)格不同顏色標(biāo)注
dev.off() ## 這個函數(shù)可以將畫出的圖保存到road這個路徑
右下角的圖看不清呵萨,局部放大看下:
繪制列線圖的參數(shù)說明:
1.等比例風(fēng)險檢驗:能采用cox回歸模型有一個前提條件奏属,危險因素對死亡風(fēng)險的作用的作用強度隨著時間的變化時一致的。如果搭建模型潮峦,發(fā)現(xiàn)有些變量隨時間變化而變化囱皿,不滿足等比例條件,需要處理忱嘹,這個在之后的文章會介紹嘱腥,敬請關(guān)注。本例中返回的結(jié)果可以看到拘悦,最后面的GLOBAL是整體看齿兔,P值大于0.05,全模型整體都是滿足的。對于每一個分類來說P值大于0.05分苇,也是滿足的添诉。
- 相比于1年,2年生存期医寿,求中位生存時間栏赴,采用的函數(shù)是Quantile()函數(shù),通過調(diào)整其中參數(shù)q自定義需要的存活比例靖秩。以上第二個圖的最后一行表示的是:25%的人存活的時間在370到380天须眷,倒數(shù)第二行則表示50%的人也就是中位生存期是250到550天,這個只是演示下盆偿,一般情況下中位生存期區(qū)間比較緊湊柒爸。
3.在繪制列線圖上,本章增加了一點新元素事扭,繪制出彩色網(wǎng)格捎稚,可以更方便找到對應(yīng)的得分值。
以上就是中位生存時間列線圖所有內(nèi)容了求橄。后面還有更多高分統(tǒng)計方法分享今野,請持續(xù)關(guān)注哦~
如果您覺得有用,請點贊罐农,轉(zhuǎn)發(fā)哦~
更多統(tǒng)計小知識条霜,請關(guān)看 公粽號 易學(xué)統(tǒng)計
更多閱讀
R語言|Cox模型校準(zhǔn)度曲線繪制
基于Lasso回歸篩選變量構(gòu)建Cox模型并繪制Nomogram
R語言Logistic回歸模型驗證及Nomogram繪制
如何進(jìn)行高維變量篩選和特征選擇(一)?Lasso回歸