I want your thoughts of using Survival Analysis and Survival Regression model for the following use-case (in travel industry) :

  • How long before departure date (and after booked date) is ideal to promoting certain types of extras?

Here the "duration" is fixed ie Gap between Booking and Departure Date and the "birth" can be considered the booking of main product and "death" can be considered booking the "extra" (Correct me if I am wrong)

"Censorship" (and observed=0) happens:

(A) when no "extra" is booked and the customer travels without it (B) when customer cancels the entire booking before departure date

I want your thoughts on the following:

  1. Does it make sense to see how the survival function pans out for the population? You think i could use the median survival time to get a ideal time for promoting extras? How else could I use the survival analysis function?
  2. Can I use a survival regression model to predict at a customer level what would be their median survival time and then use it for customized promotions?

One thing to note that the dataset is biased towards Observed=0 (% of customers booking extras is quite less than who book extras).. Will it break any assumptions?

Should I balance the dataset by selecting dataset with extras and without extras?


In classic survival analysis, we want to derive stuff about a world without censoring based on partly censored (incomplete) data. In your setting, the world without censoring is probably less important than reality. Another reason against using classic tools from survival analysis is the certainly violated "uninformative censoring" assumption.

One of many ways to tackle your research questions could look as follows:

  1. Investigate the (binary or count) variable "extras booked" descriptively, and if interested, with tools such as logistic or count regression.

  2. Among customers with extras booked, analyze the booking time of the extras (e.g. time since booking, time to departure or some proportion like "after x% of time between booking and departure") again descriptively and, if interested, by some regression model.

Together with a nice and clear description of the data set, you will find out quite some relevant info.

  • $\begingroup$ I did have a doubt about censorship assumption but wasnt really sure. Thanks for confirming. $\endgroup$ – Sanant SK Oct 21 '16 at 3:56
  • $\begingroup$ The censorship assumption is violated because we have customer not booking the extra but still travel? Descriptive analysis is something which I was planning to do but thought "Survival Regression model" would be useful to predict "What extra?", "Whom?", "When?" to promote etc., Any other methods to do it? $\endgroup$ – Sanant SK Oct 21 '16 at 4:07
  • $\begingroup$ Check my post for an alternative analysis, which could contain (a) a count regression over all persons and (b) among those with extras a regression that explains the time point. The censorship assumption is violated because a censored observation will never get an extra, no matter how long you wait. $\endgroup$ – Michael M Oct 21 '16 at 4:53

First of all, if you're interested in assesing when should you promote the extras, the definition of "time" considering the booking of main product as the beginning of survival time may be misleading. I'll show you with an example: A customer books his flight two months before his departure, and another one does it two weeks ahead of his flight. Both of them buy the extra three days before the flight date, but the subjects will have different survival times according to your scenario, because of their booking dates.

Another disadvantage of applying survival analysis is the violation of censorships assumptions, as Michael M stated.

I suggest using classification techniques, using the binary outcome 1 = buys extra, 0 = does not buy. Random Forest, Gradient Boost or simple classification trees for binary outcomes will probably help you identify the best combination of customers profiles and time that maximizes the chance of the event. Regarding time, I'd use "days before the flight" to make the model output easier to understand. The best part of using machine learning techniques is that you don't worry about assumptions, censorships or model distributions, and with classification trees the output is very easy to understand.

A glimpse of random forest and classification tree in Quick R. A (more complex) guide to work with gradient boost in R, gbm package

  • $\begingroup$ Thanks Camila. I agree with you on use of classification techniques to determine whether they will buy or not. $\endgroup$ – Sanant SK Oct 21 '16 at 3:58
  • $\begingroup$ But, how to figure out that the person decides to buy and the appropriate time to b uy? I dont know if Random Forest. Gradient Boost will help in this regard. Let me know your thoughts $\endgroup$ – Sanant SK Oct 21 '16 at 3:59
  • $\begingroup$ Descriptive analysis is something which I was planning to do but thought "Survival Regression model" would be useful to predict "What extra?", "Whom?", "When?" to promote etc., Any other methods to do it? $\endgroup$ – Sanant SK Oct 21 '16 at 4:07
  • $\begingroup$ The classification tree will provide with different customer profiles, in which some of them will be buyers and some won't. I'd calculate the median time of the extra purchase for each profile, and then compare this with all the other explanatory variables that define that profile. This is not a prediction, it's a descriptive analysis that will tell you what kind of customer buys the extra and when they do it (well, when the median occurs). With that info, I'd try to find similar profiles in non-extra buyers and promote the extras on the median time the event group did the purchase. $\endgroup$ – Camila Burne Oct 21 '16 at 14:02

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.