gpt4 book ai didi

r - 预测事件何时发生

转载 作者:行者123 更新时间:2023-11-30 09:04:15 24 4
gpt4 key购买 nike

我对机器学习和 R 非常陌生,所以我的问题可能看起来不清楚或者需要更多信息。我已尝试尽可能多地解释。如果我使用了错误的术语或短语,请纠正我。对此的任何帮助将不胜感激。

上下文 - 我正在尝试构建一个模型来预测事件“何时”发生。

我有一个具有以下结构的数据集。这不是实际数据。它是为解释场景而创建的虚拟数据。由于 secret 性,实际数据无法共享。

enter image description here

关于数据 -

  • 客户购买了订阅,允许他使用 x$所提供服务的金额。
  • 一个客户可以有多个订阅。订阅可能在时间上重叠,也可能在时间上序列化
  • 每个订阅都有使用限制,即 x$
  • 每个订阅都有开始日期和结束日期。
  • 结束日期后将不再使用订阅。
  • 客户在使用服务时有自己的行为/模式。这是通过其他派生变量每月利用率、平均每月利用率等来描述的。
  • 客户可以使用$x以上的服务。这由列表示上表中的“ExceedanceMonth”。客户说值为 1订阅第一个月的价格超过 x 美元,值 5 表示客户在订阅的第 5 个月的花费超过了 x 美元。的值(value)NULL 表示尚未达到限制 $x。这可能是
    要么因为

     subscription ended and customer didn't overuse
    or
    subscription is yet to end and customer might overuse in future
  • 上面描述的第二个场景或条件是我想要的预测。在尚未结束的订阅和客户中没有过度使用,什么时候会达到限制。即预测上表中的 ExceedanceMonth 列。
  • 在达到此模型之前 - 我使用决策树构建了一个分类模型,该模型可以预测客户是否会超过限制金额,即预测 future 2 个月内 LimitReached = 1 还是 0。我不确定是否应该使用所有数据训练此处讨论的模型(预测事件发生时间),并在 Limitreached = 1 的客户/订阅上测试/使用该模型,或者仅使用将具有 Limitreached 的客户/订阅训练模型= 1

我研究过生存模型。我知道像 Cox 这样的生存模型可以用来理解危险函数并了解每个变量如何影响事件发生的时间。我尝试将预测函数与 cox 一起使用,但我不明白传递给“type”参数的任何值是否可用于预测实际时间。即我不明白如何预测“何时”将超过限制的实际值

对于这种情况,生存模型可能不是正确的方法。因此,请告诉我解决这个问题的最佳方法是什么。

#define survival object 
recsurv <- Surv(time=df$ExceedanceMonth, event=df$LimitReached)

#only for testing the code
train = subset(df,df$SubStartDate>="20150301" & df$SubEndDate<="20180401")
test = subset(df,df$SubStartDate>"20180401") #only for testing the code

fit <- coxph(Surv(df$ExceedanceMonth, df$LimitReached) ~ df$SubDurationInMonths+df$`#subs`+df$LimitAmount+df$Monthlyutitlization+df$AvgMonthlyUtilization, train, model = TRUE)
predicted <- predict(fit, newdata = test)
head(predicted)

1 2 3 4 5 6
0.75347328 0.23516619 -0.05535162 -0.03759123 -0.65658488 -0.54233043

提前谢谢您!

最佳答案

生存模型非常适合您想要做的事情。 (我假设从此时起您已经正确估计了模型。)

关键是理解模型的结果。对于 Cox,predict() 的默认数量是线性组合(b0 + b1x1 + b2x2...,尽管 Cox 不估计 b0) 。仅凭这一点并不能告诉您任何有关何时的信息。

predict() 指定 type="expected" 将为您提供预期持续时间 - 平均而言,直到客户到达他/她的时间数据限制,跟踪时间(您观察客户的时间)设置为等于客户的实际持续时间(从 coxph 模型对象中检索)。

coxed 软件包还会为您提供使用不同方法计算的预期持续时间,而无需担心后续时间。在输入 newdata 参数时,它也更加宽容,特别是当您考虑到特定的协变量配置文件时。请参阅包插图 here .

另请参阅this线程以了解有关 coxph.predict() 的更多信息。

关于r - 预测事件何时发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56654396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com