R: Создание вероятности / прогноза каждый месяц, обусловленное вероятностями выживания - PullRequest
0 голосов
/ 04 мая 2018

У меня есть данные по идентификатору по месяцам, и для каждого месяца у меня есть вероятность оттока клиентов, как показано ниже.

Как я могу получить вероятность оттока каждый месяц, обусловленную вероятностью выживания предыдущего месяца? Например, для 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        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

1 Ответ

0 голосов
/ 04 мая 2018

Я искал более элегантное решение, но пришел пустым. Вот цикл, который выполняет работу:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...