The objective of the package is to provide an ad-hoc forecasting approach for problems where (i) there are units in different stages of a certain journey, (ii) there the assumption that the units’ behavior throw out the journey are similar is valid and (iii) there are not enough data to use traditional forecasting methods. A practical example might help to better illustrate such problems.
Take the credit card business for example. The profit from credit card products comes from the sum of financial results of each individual. It is known that every customer starts with a negative result, since the bank had to spend money to attract the customers, so you have an acquisition cost. Once a costumer get his/her card he/she can either start using the credit card or simply keep it without using. In the first case, if the person pays credit card bills: great, there will be revenue until it reaches a payback moment and starts having a profitable result. But if the person fails to pay the bills then the result will be a lost. On the other hand, if the customer simply does not use the credit card, then its financial result will move horizontally.
In this scenario, the units are the clients (or group of clients), the journey is the profitability of a credit card product and there is no reason to believe that the profitability over time of a new client would have a different shape of the options above (of course it will not be identical). Now, imagine that the product is relatively new, around 2~3 years. This means that the older profitability series is around 24/36 months. But the majority of series would be smaller. There is not enough data to use time series algorithms with ease. So, the idea is to use the older clients, that are in their 24/36 months, to predict how the newer clients would be in their 24/36 months.
In order to do so, the SynthCast uses the Synthetic Control Method to find a synthetic combination that represents the unit of interest based on a series of numerical features.
The package can be installed from Cran:
install.packages("SynthCast")
As well as from github, note that installing from github will install the latest development version:
devtools::install_github(
"viniciusmsousa/SynthCast",ref="main"
)
For a full example of how to run a synthetic forecast check the article How to Run a Synthetic Forecast. And fell free to contribute or contact me :)