如何预测R中的生存概率?
我把名为“退伍军人”的数据存储在R中。我创建了一个生存模型,现在希望预测生存概率预测。例如,具有80如何预测R中的生存概率?,r,probability,prediction,survival-analysis,R,Probability,Prediction,Survival Analysis,我把名为“退伍军人”的数据存储在R中。我创建了一个生存模型,现在希望预测生存概率预测。例如,具有80karno值、10diagtime、年龄65岁且previor=10和trt=2的患者寿命超过100天的概率是多少 在这种情况下,设计矩阵为x=(1,0,1,0,80,10,65,10,2) 这是我的密码: library(survival) attach(veteran) weibull <- survreg(Surv(time,status)~celltype + karno+diagt
karno
值、10diagtime
、年龄65岁且previor=10
和trt=2
的患者寿命超过100天的概率是多少
在这种情况下,设计矩阵为x=(1,0,1,0,80,10,65,10,2)
这是我的密码:
library(survival)
attach(veteran)
weibull <- survreg(Surv(time,status)~celltype + karno+diagtime+age+prior+trt ,dist="w")
库(生存)
随员(退伍军人)
weibull您可以使用predict.survreg生成具有不同分位数的个体病例的预测生存时间(您将值传递给newdata
):
casedat <- list(celltype="smallcell", karno =80, diagtime=10, age= 65 , prior=10 , trt = 2)
predict(weibull, newdata=casedat, type="quantile", p=(1:98)/100)
[1] 1.996036 3.815924 5.585873 7.330350 9.060716 10.783617
[7] 12.503458 14.223414 15.945909 17.672884 19.405946 21.146470
[13] 22.895661 24.654597 26.424264 28.205575 29.999388 31.806521
[19] 33.627761 35.463874 37.315609 39.183706 41.068901 42.971927
[25] 44.893525 46.834438 48.795420 50.777240 52.780679 54.806537
[31] 56.855637 58.928822 61.026962 63.150956 65.301733 67.480255
[37] 69.687524 71.924578 74.192502 76.492423 78.825521 81.193029
[43] 83.596238 86.036503 88.515246 91.033959 93.594216 96.197674
[49] 98.846083 **101.541291** 104.285254 107.080043 109.927857 112.831032
[55] 115.792052 118.813566 121.898401 125.049578 128.270334 131.564138
[61] 134.934720 138.386096 141.922598 145.548909 149.270101 153.091684
[67] 157.019655 161.060555 165.221547 169.510488 173.936025 178.507710
[73] 183.236126 188.133044 193.211610 198.486566 203.974520 209.694281
[79] 215.667262 221.917991 228.474741 235.370342 242.643219 250.338740
[85] 258.511005 267.225246 276.561118 286.617303 297.518110 309.423232
[91] 322.542621 337.160149 353.673075 372.662027 395.025122 422.263020
[97] 457.180183 506.048094
#asterisks added
您可以查看函数predict.survreg
,该函数将允许您计算生存概率。您是否尝试了predict()
函数?为了便于其他人帮助您,请提供一个示例输入,以便我们测试不同的解决方案。另外,您应该学会避免使用attach()
,只在建模函数中使用data=
参数。@MrFlick,以我的方式使用attach()会对结果产生任何影响吗?还有,我怎么能像你们一样用彩色背景写代码呢?我使用了预测函数,但它产生的是生存时间,而不是概率。我说得对吗?结果没有什么不同,但使用attach()
不是最佳做法。你如何定义“生存概率”?我想,你通常需要知道某个特定的时间。包括不同类型的预测。查看predict
函数中的参数type
,谢谢您的回答。为了确保我正确理解你的意思,一个病人超过500人的概率是1/98。是这样吗?你能简要解释一下这些预测的含义吗?分位数代表的是危险,而不是生存。如果将1-p标绘为y值,则会得到典型的估计生存率,时间>506的分位数为98/100,而不是1/98。
png(); plot(x=predict(weibull, newdata=casedat, type="quantile",
p=(1:98)/100), y=(1:98)/100 , type="l")
dev.off()