如何在R中将生存分析应用于新数据集?

时间:2019-10-08 09:55:45

标签: r survival-analysis survival

该代码直接从Data Camp的R模块中的市场营销分析中提取,并应用于新的客户数据,但是在将模型应用于新数据集之后,我对结果的处理一无所知。

我有带有恒定变量公式的cox ph模型,如下所示

fitCPH1 <- cph(Surv(tenure, purchase) ~ gender + 
                 maritalstatus +  age + monthlypurchase,
               data = customer,                
               x = TRUE, 
               y = TRUE, 
               surv = TRUE,                
               tenure.inc = 1)

我已经在两者之间验证了模型,现在想将结果应用于新的数据集。 (带有3个测试行的ockcustomerdata2.csv)

newdata <- read.csv (file = "mockcustomerdata2.csv",
                      header = TRUE,
                      stringsAsFactors = TRUE,
                      row.names =1,
                      sep=",")

做了

survfit(formula = fitCPH1, newdata = newdata)

运行该行,我得到3行结果,其中显示n个事件,中值(这是每个新数据点执行事件的中值时间)和0.95LCL / UCL。

__________________________________________
 |  n | events | median | 0.95LCL | 0.95UCL|
1|1000| 281    | 332    | 305     | 361    |
2|1000| 281    | 320    | 297     | 350    |
3|1000| 281    | 322    | 298     | 355    | 

我想要做的是获取每个数据点的汇总结果,并将其与我的新数据集合并,这样我就有了每个数据点的期望值(中位数),上限和下限,以预测它们何时到达会做一个事件。

这可能吗,我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用功能surv_median()解决了该问题,该功能将结果表存储到数据帧中,然后可以将其与newdata合并。希望这对某人有帮助!


results <- survfit(formula = fitCPH1, newdata = newdata)

medianvalues <- surv_median(results) #Turns results into a dataframe

#The strata column needs to be converted to a row.name, hence the step below
medianvaluesdf <- data.frame(medianvalues[,-1], row.names=medianvalues[,1])

merged <- merge(newdata, medianvalues, by = "row.names")