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