Time series vs cross validation performance in classification problems I'm wondering which case is better (or should be better, at least theoretically speaking), between time series or cross validation (or another methodology you could think of) in the case of predicting how likely is the client to purchase the product we are selling.
So, I have a dataframe with monthly purchases of clients of this product. So each month I have the purchases that the client did in that month, and another monthly data (monthly expenses, number of transactions with its credit card, amounts, etc.). I have 2 years data = 24 months. So here I'm looking to predict how likely the client will buy the product the next month.
The second alternative, is I aggregate the full 2 years data where each row will represent the purchases of each client in the last two years (or if you want, you can have aggregated variables with only the last 3, 6, 9 months, as you wish.. the point is they are aggregated and each row represents one client). So here I'm looking to predict how likely is the client to buy the product. Assuming this alternative is implemented each month (we run the predictions at the beginning of the month and use those predictions for the whole month, and the next month we run the predictions again as we new data)
My questions are (I enumerated them to give some structure):

*

*Which alternative should perform better? Why?

*Is there any specific cases where one should out-perform the other?

*Is there any overall rule or criteria about when you should structure your data to use CV (second alternative) or time series (first alternative), for classification?


I personally would only consider the first option. You can take each customer and predict if they will buy the next month. This is not limited to the next month and could be all kinds of time spans and you could even predict how many products they will buy.
If you think that the history of your customers regarding sales, transactions and expenses is an indicator of the future of their buying behavior you should definitely treat this as a time series task. Ignoring this would most likely lead to future leakage and invalidate your results.
This would be different if you predict some rather static property of the customers, e.g. if you only know for some of your customers if they are male/female/other you could train with the known examples and try to predict the missing values applying a CV strategy for validation.
When you aggregate all the data in the second option, for your training: what would be your target variable and what would be the explaining variables? Right now, I simply don't see this option.
If you would like to predict if someone is a potential buyer, you could have a hard time to find the negative examples. Which time span do you want to consider? You would have to wait potentially a long time before you can be sure that someone is not a buyer. You could create a proxy and do a poll instead (ask some people, if they would consider buying your product). But again, what time span? If someone will potentially buy the product in a year, would he know now? Could your model know?
