Looking for an algorithm to perform classification on multivariate grouped time series
I will be grateful for any help.
I have multivariate time series, where every one of them has an unique ID. Also, there is a variable giving information about the trend type of the ID from a point of view of a single variable which we consider important.
The problem is, I need to understand, how is behaviour (or trends) of other variables (time series in ID) affecting the inclusion of the ID to a specific stated trend category.
I was thinking the Decision Tree algorithm would be nice. It would make a classification, but also the very important thing, it would show the rules on which basis the node is split. The issue is, I need to split objects not observations (split IDs), and maintain the multivariate structure in time.
Important thing to mention:
- The time series are of a different length. It is unbalanced panel. Longitudinal data.
Reproducible example:
# #var1 #var2 #var3
id1 = [[1,2,3,4,3,2,1], [1,2,3,4,5,6,7], [7,6,5,4,3,2,1]]
id2 = [[1,2,3,4,5,6,7], [9,9,8,8,7,7,6], [7,6,5,4,3,2,1]]
id3 = [[7,6,5,4,3,2,1], [1,2,3,4,3,2,1], [1,2,3,4,3,2,1]]
#... taking the first variable as the base for trend classification variable
trend_cat = {'id1':'concave', 'id2':'linear_up', 'id3':'linear_down'}
#looking for: Trend_cat ~ var2(objects) + var3{objects)
So I am looking for an algorithm (or a method) which would explain difference between objects (of ts) and classify them into trend_categories, and also give information how the classification is made (no black-box).
Thank you for all the help I can get. Have a nice day!