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



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

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

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    | 

我想做的是获取每个数据点的摘要结果,并将其与我的新数据集合并,以便我获得每个数据点的期望值(中位数(、上限和下限,以预测它们何时执行事件。

这可能吗,我该怎么做?

使用函数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")

相关内容

  • 没有找到相关文章

最新更新