1
$\begingroup$

I came across the following interview question :

In an online gaming company, customer churn is defined in terms of the number of days of continuous inactivity of the player. So how will you find the optimum number of days for which if the player is inactive, then he can be considered as churned?

I was thinking something along the lines of a Bayesian approach but I am not sure how to go ahead.

Any help in the right direction would be much appreciated.

$\endgroup$

3 Answers 3

3
$\begingroup$

I'd first take a look at the available data, in particular at the distribution of inactivity days before activity is resumed. Some players pause for a day or two and then become active again, some pause for a week etc. For active users, I'd expect a Poisson or an exponential distribution. Whatever the distribution, I'd try to find its parameters.

The next question would be to quantify profits and losses from correct and false classification. This is something the company should be able to tell you. I.e. each churned user in the database costs x\$, deleting a still active user would cost us y\$ etc.

With that information and the above probability distribution you can calculate the expected profits/losses and draw the boundary where expected profits and expected losses are equal.

$\endgroup$
1
  • 1
    $\begingroup$ That is a good approach. At one of my previous works we did effectively did something very similar. You can even discuss the point that certain categories of players "churn" differently that others (so for example high volume players might be inactive for 14 days and still not being churned while a person who played just two low-action consecutive days becomes churned in a week's time).\ $\endgroup$
    – usεr11852
    Commented Feb 5, 2020 at 12:14
1
$\begingroup$

The question is very vague, so I expect they want to see your view on it, how you would solve it. Without more information there are many ways in which you could do this.

One example would be using a logistic regression model, which would not only "classify" the players into churned or not churned, but would also give you the odds of a player doing so, given the time passed.

Another example would be to fit a distribution to the data - time passed, say Weibull distribution, finding the parameters which best fit the data, and then selecting a quantile as your threshold of churned / not churned.

$\endgroup$
4
  • $\begingroup$ Not sure if I get your approach. For logistic regression, how do you get labelled data? Assuming you take a threshold of days to label the users, how do you decide the optimal threshold? And again for fitting distribution, how do you decide the optimal quantile threshold. That's what the initial problem is in the first place. $\endgroup$ Commented Feb 5, 2020 at 6:43
  • $\begingroup$ @AdnanTamimi Yes, the assumption is that you have some labeled data or some sort of information. Otherwise I don't see a way to solve this. How could you determine whether someone is "churned" without any information about what churn is. It could happen that there are no churned players, that they just take really long pauses. Or it could be that they all churn immediately. So you either need some data to determine this, or you need some assumptions. $\endgroup$ Commented Feb 5, 2020 at 6:53
  • $\begingroup$ @AdnanTamimi Reading through your question again, I think I see where you were going with the Bayesian approach. Did you perhaps want to assign some sort of prior to each individual player, and then check how the posterior changes as his inactivity grows larger? $\endgroup$ Commented Feb 5, 2020 at 6:58
  • 1
    $\begingroup$ yes, along those lines. $\endgroup$ Commented Feb 5, 2020 at 7:31
0
$\begingroup$

There are many ways to do it.

The simple way would be the following:

You need to identify a cut-off point for which, when surpassed at least $\alpha$% of people never come back to play. Never can be defined as a) a big time-frame e.g:3 years or b) Uninstall of the game. You fix the $\alpha$ (for this example I'll go for $\alpha=95$) and you then try to find the minimum cut-off point. For instance, For all cases of gamers in the dataset that have surpassed the cutoff point of 6-months without playing, 90% never come back. Thus the 6 month is too low. You continue until you identify a cut-off point e.g: 7 months for which $\alpha$% so 95% of gamers who have surpassed it never came back and that would be the simplified answer. You can basically define you own parameters and do an ROC analysis or something similar to identify the optimal cut-off point.

The complicated way would be to do it a bit more "personalised". In that case you would need to cluster people based on their "natural return rates" (every time they come back to play is a time difference). There are many ways to cluster them but the idea here is the you create groups of people that have "as similar return rates as possible". Afterwards you identify cut-off points for each group based on the analysis above.

These are just some examples but it's a really open question in general.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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