R语言快速绘制多因素回归分析森林图(1)

library(foreign)
library(survival)
library("survminer")
bc <- read.spss("E:/r/test/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)

我们先来看看数据: age表示年龄,pathsize表示病理肿瘤大小(厘米),lnpos表示腋窝淋巴结阳性,histgrad表示病理组织学等级,er表示雌激素受体状态,pr表示孕激素受体状态,status结局事件是否死亡,pathscat表示病理肿瘤大小类别(分组变量),ln_yesno表示是否有淋巴结肿大,time是生存时间,后面的agec是我们自己设定的,不用管它。 有部分变量为分类变量,我们先把它转换成因子

bc$er<-as.factor(bc$er)
bc$pr<-as.factor(bc$pr)
bc$ln_yesno<-as.factor(bc$ln_yesno)
bc$histgrad<-as.factor(bc$histgrad)

下面建立COX回归方程

f1<- coxph(Surv(time, status) ~ age + histgrad+
             pathsize+ er + pr + ln_yesno, data=bc)

其他的什么解析模型,绘制生存曲线,PH假设我就不做了,懒得凑字数了,直接进入主题 第一种方法是使用survminer包自带的ggforest函数直接绘图,非常简单

ggforest(f1)

第二种方法是使用survivalAnalysis包,看名字就知道这个包只能绘制cox回归多因素分析的森林图

library(survivalAnalysis)
library(magrittr)
library(dplyr)

这个包自带了一个多因素回归分析的analyse_multivariate函数,用它来拟合模型,这里注意一下,这个函数是用逗号分隔的,不是用加号

res<-analyse_multivariate(data=bc,vars(time, status),
                          vars(age, histgrad,pathsize, er,pr,ln_yesno))
res

对于结果可靠性不用担心,这个函数也是内部调用coxph函数来分析的,直接绘图

forest_plot(res)

这两个函数绘制的森林图结果相同,还可以进行一下微调,我这里就不演示了。这两个函数出图美观性稍微查了点,但是胜在简单,适合初学者,下期再介绍一下复杂点的森林图。

经验分享 程序员 微信小程序 职场和发展