如何解决R:用CoxPH预测和绘制生存曲线
我正在尝试预测和绘制R中的新观测值的(估计)生存曲线。使用“生存”库和“肺”数据集,我首先将cox比例风险模型拟合到数据中。然后,我试图预测并绘制一个假设的新观测值的生存曲线(我在“列表”命令中输入了该假设的新观测值的详细信息)。但是,这不起作用。
我在下面附加了我的代码:
#load library
library(survival)
data(lung)
#create survival object
s <- with(lung,Surv(time,status))
#create model
modelA <- coxph(s ~ as.factor(sex)+age+ph.ecog+wt.loss+ph.karno,data=lung,model=TRUE)
summary(modelA)
#plot
plot(survfit(modelA),ylab="Probability of Survival",xlab="Time",col=c("red","black","black"))
#predict for a hypothetical NEW observation (here is where the error is)
lines(predict(modelA,newdata=list(sex=1,age = 56,ph.ecog = 1,ph.karno = 50,wt.loss = 11),type="quantile",p=seq(.01,.99,by=.01)),seq(.99,.01,by=-.01),col="blue")
## Error in match.arg(type) :
## 'arg' should be one of “lp”,“risk”,“expected”,“terms”,“survival”
有人知道我在做什么错吗?谢谢
解决方法
请参见predict()
函数的说明(您可以通过运行?predict.coxph
或here for example在R帮助中打开它):
类型-预测值的类型。选择是线性预测因子 (
"lp"
),风险评分exp(lp)("risk"
),预期事件数 给定协变量和随访时间("expected"
),以及 线性预测变量("terms"
)。受试者的生存概率 等于exp(-expected)。
您可以看到您的type="quantile"
与预期的输入不匹配。如果您在没有predict()
参数的情况下调用type
,则默认情况下将使用lp
(线性预测变量)。
当您为对象predict()
调用modelA
函数时,它将确定它属于coxph
类,因此将应用predict.coxph()
函数。 type="quantile"
不接受p=seq(.01,.99,by=.01)
和predict.coxph()
之类的参数({p
被忽略,type
引发错误)。它们在另一个函数predict.survreg()
中使用-要被调用,您的modelA
对象必须属于survreg
类,即,应使用survreg()
调用而不是其创建coxph()
通话。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。