调整后的风险图

时间:2019-01-13 13:38:14

标签: r plot spss survival-analysis risk-analysis

具有以下数据框:

death <- c(1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1)
age<-c (70,50,60,60,55,46,50,60,59,61,62,55,66,60,59,58,61,59,58,60,60,58,60,60,61,61,59,60,61,64)
survival_time <- c(4,29,24,29,29,29,29,19,29,29,29,3,9,29,15,29,29,11,29,5,13,20,22,29,16,21,9,29,29,15)
diabetes <- c(0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0)
bloodpressure <- c(160,120,150,140,135,110,139,140,153,129,149,163,179,129,144,119,100,115,145,150,130,120,122,129,116,171,129,126,159,150)
data <- data.frame(death, survival_time, diabetes, bloodpressure,age)

我想创建一个类似于以下内容的图: enter image description here

我得到的变量是血压,心血管死亡率,生存时间,糖尿病,年龄。我想调整年龄和糖尿病。

在R或SPSS中是否可以做到这一点?

我的第一次尝试并没有达到我希望的结果:

cfit4a <- coxph(Surv(survival_time, death) ~ age + diabetes + bloodpressure, data=data) 
surv4a <- survfit(cfit4a) 
plot(surv4a, col=c(1,2,4), mark.time=F, xscale=365.25, xlab="blood pressure", ylab="Survival")

如何创建在x轴上显示血压值的图?如何在y轴上显示已调整风险而不是生存率? (我在上面的原始帖子中添加了示例数据)

1 个答案:

答案 0 :(得分:1)

您要在多元模型的背景下绘制调整后的相对血压风险图,该模型不仅包括血压,还包括年龄(数字)和糖尿病(1/0指标)。一种简单的方法是将predict.coxph与“风险”一起使用,并提交一个血压数据集,该数据帧的血压范围为agediabetes设置为某个指定级别。对于此预测,指定的级别是什么很重要,因为agediabetes的参考值将影响相对风险估计。我相信Therneau使用协变量的平均值来设置基准危害。因此,您可以使用mean(data$age)mean(data$diabetes)而不是为这些协变量选择一个特别的值,而应将bloodpressure的RR的值强制为{{1 }}。

bloodpressure

enter image description here

也可以使用bp.df <- data.frame(bloodpressure=seq(120,210,by=5), age=60, diabetes=0) pred.rr.bp <- predict(cfit4a, newdata=bp.df,type="risk", se.fit=TRUE) plot( x = bp.df$bloodpressure, y=pred.rr.bp$fit, type="l", ylim=c(0,10), main="BP Relative Risk with age=60 and diabetes=0") lines(x = bp.df$bloodpressure, y=pred.rr.bp$fit+1.96*pred.rr.bp$se.fit,lty=3) lines(x = bp.df$bloodpressure, y=pred.rr.bp$fit-1.96*pred.rr.bp$se.fit,lty=3) -pkg。它需要做一些额外的研究才能掌握其特殊要求,但是,如您的示例所示,如果您确实需要满足std-error线以达到中位数bp的要求,那么它的绘图例程确实提供了这一“功能”。我一直对此感到不安,但是,+ /-1.96 * s.e.-line的确切值实际上并不那么重要。