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

问题描述 投票:0回答:1

该代码直接从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    | 

[我要做的是获取每个数据点的摘要结果,并将其与我的新数据集合并,这样我就可以获得每个数据点的期望值(中位数),上限和下限,以预测何时会做一个事件。

这可能吗,我该怎么做?

r survival-analysis survival
1个回答
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")

© www.soinside.com 2019 - 2024. All rights reserved.