# ML method to determine growth of accounts in a bank

Assume a bank has today N checking accounts, and also has 10 years history of the account balances. The history also includes related features such as "Allow overdraft" (Yes/No) and "Opening branch" (integer code). The accounts have 30 more features.

What I need is to train a ML model to learn how many accounts will be opened monthly in the next year. What ML method should be used to approach this?

• This sounds like a simple time series problem. – Demetri Pananos Jun 18 at 16:48
• @Demetri, you are a PhD candidate, why are you assuming that what is simple for you would be simple for others? A little bit more insight would help. thanks. – ps0604 Jun 18 at 17:15
• Well, I'm not going to simply do your job for you over the internet. Moreover, the solution depends on the data, which is not available to me. Forecasting is an extremely well researched topic. Excellent tools exist for these sorts of problems (see Rob Hyndman's R package forecast and the accompanying book). I suggest starting there and refining your question as needed. – Demetri Pananos Jun 18 at 17:18
• Thanks, that's what I needed, a place to start – ps0604 Jun 18 at 17:21
• @Demetri All the time series examples that I see are based on a sequence of time/value pairs, but what I need is additional attributes/features related to each data point, can you be a little bit more specific? thanks – ps0604 Jun 18 at 18:56

I can't offer more than Aksakal does in their answer.

Here are my three suggestions:

# 1. Time series methods

I've already suggested this in a comment. I think this is a particularly good approach as compared to ML methods because

1. They are faster to iterate over (you can try many different approaches with time series quickly because they are easy to fit).

2. They offer estimates of uncertainty (so when you inevitably get the prediction wrong, you can see if the real number was within the prediction interval of the model).

3. A priori there should be no reason why the number of accounts which provide, for instance, overdraft protection, should influence the accrual of new clients.

For these reasons, I think it is sufficient to simply aggregate the number of new accounts created by month, and then create a time series model via forecast or similar methods.

# 2. Linear Regression

Linear regression may be one way forward of time series prove too difficult. Simply aggregate how many accounts were opened last month to predict how many will open this month. You can include features for month of year to capture seasonality, and year to capture trends.

You can count the number of accounts which have overdraft, etc., and use that as a feature. Though I don't think including that information will be relevant, for reasons stated above.

# 3. Machine Learning

See 2. but instead of doing linear regression, use any ML model you like. If you do this, you lose the ability to make probabilistic statements about the outcome, which you may not care about.

That is really all I can say about your problem. There is no "best" ML approach for these types of things, and you certaintly won't need something like a LSTM NN. Group your data by year-month, count the new accounts, and model as a function of whatever covariates you think are relevant.

• Demetri, thanks for taking the time. One last question about item 3 in point 1. What if the customer opens a new account because it has overdraft protection? That's why I think that the model should somehow forecast accounts opened by feature. – ps0604 Jun 18 at 20:19
• That may well be the case, but I doubt that the number of accounts with overdraft presently open affects the number of accounts that will open with overdraft. If your hypothesis is contrary to this (and its fine to make that hypothesis, I just don't think it is a reasonable one), then use one of options 2 or 3. – Demetri Pananos Jun 18 at 21:24
• I ended up using option #3 as there are features that I need to take into account. The "overdraft protection" it is just one example of many attributes that need to be included in the modeling. I used regression trees/random forests. – ps0604 Jul 3 at 17:31

There's very little use in ML if that's all you have on accounts. ML has a chance when you get a lot of features of individual accounts. Otherwise, advanced time series analysis plus manual adjustments (using product managers' input and utlooks) will do the job. In any case, if your boss is pushing to do ML, make sure that you have a baseline forecast using time series methods to compare performance of ML models with. I bet that time series will beat ML every day.

• I adjusted the question, the features mentioned were just examples. Let's say I have 30 features. – ps0604 Jun 18 at 15:47
• One issue to deal with is that historical data is on existing customers, while you're trying to predict new customers. When forecasting your goal is to find what's persistent. So, this set up makes it difficult. You must make assumption that new customers will react the same way like existing ones. However, what can be persistent is the bank's product management, it's priobably slowly changing over time. So you focus on this aspect. Incidentally, this points to importance of communcation with and input from product people – Aksakal Jun 18 at 23:17