I have telecom line item (invoice) data. which looks like this:


The data has a monthly granularity and in total there is 6 months of data. By summing up all the line items for a subscriber for every month we can get their monthly revenue, cost, profit etc. But ofcourse we lose the service class information if we aggregate. My question is can I train a model on 5 months of data (profit column) and try to predict the 6th month (profit) as a binary choice e.g subscriber which will show 10 percent loss in profitability and also identify patterns of services that might have lead to it? if yes how may I approach this problem and which algorithms should I look at. Also Im sure there are quite a lot of subscribers who dont have the full 6 months data i.e no line items for some months.


I'd look at BTYD models.
https://github.com/mplatzer/BTYDplus/blob/master/README.md Start with the reference at the bottom (Platzer and Reutterer).

Platzer, M., & Reutterer, T. (2016). Ticking Away the Moments: Timing Regularity Helps to Better Predict Customer Activity. Marketing Science. http://doi.org/10.1287/mksc.2015.0963

The basic idea of these is that customers each buy at a certain rate (NBD / gamma-poisson distributed) until they stop (but, of course, they don't notify you) so you need to model that as well (often modeled as Pareto).

There's an R package (BTYD) that Platzer/Reutterer have extended (BTYDplus). With the BTYD package there's a nice step-by-step demo for those models. BTYDplus is not as well documented.

The older, simpler models (Fader and Hardie) don't accommodate predictors, but the newer models (e.g. Abe) do allow predictors. The Platzer and Reutterer paper provides references to these models and an up-to-date discussion.

  • 1
    $\begingroup$ Could you add a full citation/reference for the Platzer and Reutterer (title, date, publisher etc) as you would in a paper etc? That way the article can still be found even if the link stops working - we are trying to make sure that our questions and answers can survive "linkrot" as this has unfortunately been an issue with some of our older posts! $\endgroup$ – Silverfish Sep 16 '16 at 14:15
  • $\begingroup$ @Silverfish, thank you for your suggestion. I've added this in the answer. $\endgroup$ – Mike Kruger Sep 17 '16 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.