该代码直接从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 |
我想要做的是获取每个数据点的汇总结果,并将其与我的新数据集合并,这样我就有了每个数据点的期望值(中位数),上限和下限,以预测它们何时到达会做一个事件。
这可能吗,我该怎么做?
答案 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")