2015-02-07 85 views
5

一个Cox风险模型,我有以下模型:如何绘制与花键

coxph(Surv(fulength, mortality == 1) ~ pspline(predictor)) 

其中fulength是随访(包括死亡)的持续时间,预测是死亡率的预测。

上面的命令的输出是这样的:

      coef se(coef) se2 Chisq DF p  
pspline(predictor), line 0.174 0.0563 0.0562 9.52 1.00 0.002 
pspline(predictor), nonl      4.74 3.09 0.200 

如何我可以绘制这个模型,使我得到95%的置信带和危险比在y轴上的漂亮曲线玲珑线?我所瞄准的是类似这样的东西:

enter image description here

+0

HTTP ://stat.ethz.ch/R-manual/R-devel/library/graphics/html/curve.html http://www.r-bloggers.com/plotting-95-confidence-bands-in-r- 2/ – efrem 2015-02-07 18:24:31

+0

我使用Frank Harrell的rms/Hmisc软件包,虽然我不知道右边的情节,但可能能够提供非常类似于输出的内容。根据男性和女性的结果绘制正态分布,我在统计上被冒犯了。我不知道rms是否支持psplines,因为Frank喜欢三次样条的限制,但是如果你发布了一些数据,我很乐意尝试一下。 – 2015-02-07 18:30:54

+0

感谢BondedDust。你是如何安装这些软件包的? 当我尝试安装时,出现如下错误消息:'TH.data'软件包的安装具有非零退出状态 – Oposum 2015-02-07 18:35:54

回答

4

这是当你当你在RMS封装的贴装运行的第一个例子:

n <- 1000 
set.seed(731) 
age <- 50 + 12*rnorm(n) 
label(age) <- "Age" 
sex <- factor(sample(c('Male','Female'), n, 
       rep=TRUE, prob=c(.6, .4))) 
cens <- 15*runif(n) 
h <- .02*exp(.04*(age-50)+.8*(sex=='Female')) 
dt <- -log(runif(n))/h 
label(dt) <- 'Follow-up Time' 
e <- ifelse(dt <= cens,1,0) 
dt <- pmin(dt, cens) 
units(dt) <- "Year" 
dd <- datadist(age, sex) 
options(datadist='dd') 
S <- Surv(dt,e) 

f <- cph(S ~ rcs(age,4) + sex, x=TRUE, y=TRUE) 
cox.zph(f, "rank")    # tests of PH 
anova(f) 
plot(Predict(f, age, sex)) # plot age effect, 2 curves for 2 sexes 

enter image description here

由于rms/Hmisc软件包组合使用格点图,具有边际年龄密度特征的注释需要使用格点函数完成。在另一方面,如果你想改变的响应值相对危险,你可以再补充一个“有趣= EXP”的说法在预测打电话relable图获得:

png(); plot(Predict(f, age, sex, fun=exp), ylab="Relative Hazard");dev.off() 

enter image description here

+0

我能够安装'Hmisc'而不是'rms'。我得到的错误是这样的: '错误:安装Rd对象失败的包'quantreg' 错误:依赖'TH.data'不可用于包'multcomp' 错误:依赖关系'quantreg','multcomp'不是可用于打包'rms'' – Oposum 2015-02-07 19:58:21

+0

听起来就像您使用的存储库有multcomp和quantreg的损坏或丢失版本。我只是尝试从Berkeley回购安装二进制Mac版本的multcomp,并没有错误。 – 2015-02-07 20:02:00

+0

找出安装缺失软件包的替代方法。我可以通过所有的步骤,但是当我尝试绘制plot(Predict(f,predictor,fun = exp),ylab =“Relative Hazard”)时,我会得到错误值error.chk(at,which == n),NA,np,lim):变量预测器没有由datadist定义的限制 – Oposum 2015-02-07 20:27:47