【问题标题】:R: Creating probability/projection each month conditioned on survival probabilitiesR:每月根据生存概率创建概率/预测
【发布时间】:2018-05-04 15:37:58
【问题描述】:

我有一个按月按 ID 列出的数据,每个月我都有一个客户流失概率,如下所示。

如何根据上个月的生存概率获得每个月的流失概率?例如对于 ID 6800,在以 4/30 结尾的月份中,我有 0.54 的概率,所以生存将是 (1-0.54)=0.46。因此对于月份5/31,我希望概率为0.46*0.125。对于 6/30 月,我应该有 (1-0.46*0.125)*0.081440443。我想为每个 ID 执行此操作数月。

有没有一种自动化的方式可以让我在包或其他东西中进行设置?

    ID        Date     ChurProb     cash
1 6800  04/30/2017  0.541440443 35019.86
2 6800  05/31/2017  0.125103719 35047.55
3 6800  06/30/2017  0.081440443 15124.00
4 6801  04/30/2017  0.541440443 35019.86
5 6801  05/31/2017  0.125103719 35047.55
6 6801  06/30/2017  0.081440443 15124.00

【问题讨论】:

    标签: r statistics probability projection survival-analysis


    【解决方案1】:

    我寻找了一个更优雅的解决方案,但一无所获。这是一个完成工作的循环:

    calc_cond_churn <- function (dta) {
      last_id <- -1
      last_survival <- 1
      CondChurn <- rep(0, nrow(dta))
      for (i in 1:nrow(dta)) {
        if (dta$ID[i] != last_id) {
          last_survival <- 1
          last_id <- dta$ID[i]
        }
        CondChurn[i] <- dta$ChurProb[i] * last_survival
        last_survival <- 1 - CondChurn[i]
      }
    
      CondChurn
    }
    

    您可以将其用作:

    df$ConditionalChurn <- calc_cond_churn(df)
    

    【讨论】:

    • 让意义完美。谢谢
    猜你喜欢
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    相关资源
    最近更新 更多