So let's imagine I have a dataset of children. For each of them a have a bunch of characteristics (generation, gender, race, class, urban/rural, religion, bmi, number of siblings etc..) and plus the age (in months) when they did for the first the following events
- Learn how to ride a bike
- learn how to swim,
- starting middle school,
- learn how to divide with more than 2 digits
- have a sleepover
- having allowance
- hitting puberty
- owning an electronical device
My objective is that given a new kid whose characteristics (indepedent variables) I know (gender, race, religion etc...) being able to predict the ORDER of these events for a kid.
Here is what I tried so far (from more simple to more complex)
First Approach
For each observation, I only consider the first event. I treat it as a classification problem to predict the first event of a child. Then I see what is the most common sequence that start with that particular event and I assign that for that child.
This one obviously will be horrible, but it may have a little bit of sense if we suppose that the order of the events are strongly correlated, in this case the first event determine totally the order of the rest.
Second Approach
I have also thought this. For each kid in the dataset, you transform the age (in months) of each event in the rank of events for this specific child. For example for this particular I transform it like that: From this:
data
# Gender Class Religion ... *Bike* *Swim* *MiddleSchool* *Divides* *Sleepover* *Allowance* *Puberty* *Device*
#1 Male Rich Budhist 86 130 125 163 140 230 210 250
Into this:
data
# Gender Class Religion ... *Bike* *Swim* *MiddleSchool* *Divides* *Sleepover* *Allowance* *Puberty* *Device*
#1 Male Rich Budhist 1 3 2 5 4 7 6 8
And then do a regression model for each event individually that predicts the estimated rank in comparison with the rest of the events giving an specific child. The regression will give you a number between 1 and 8 (not neccesarily integer) and you will have to once again,rank them from 1 to 8 (integers)
This is also a bad approach. Basically because doing each regression individually, is supposing that the events are indepedent, but in reality it usually obeys for patterns. For example if a child can't bike by the time he reaches middle school, it means he will bike and then swim just after the starting middle school event because it will the first thing he try at gym classes (I couldn't think of a better example)
Third Approach
Basically the same but instead of doing the regression on the rank of each event, it is directly done in the age of that event. Not sure if this is better than the last one.
Four Approach
The same that the last one but instead of doing the regression directly on the age, you normalizate from 0 to 10 being 0 the age first event and 10 the age of the last one for the age of each event. It will be better than approach 2 because not only it will give you the rank of each event, but how close to each other are.
Five approach
It will basically be any of the 3 previous approach but instead of doing a regression model for each event individually, it will be collectivilly, having more information due to the depedence between the events.
For example, if we select the regression on the rank of each event (like in the approach 2), our target instead of being numerical will be a 8-dimension numerical vector like [1,3,2,5,4,7,6,8]
This apparently can be done throught Neural Networks or TramineR (but that is only avaliable in R)
The problem is I can't find any information about this kind of problems because usually the ones tagged as "sequence analysis" like the DNA one are completetly different, you can repeat events and it's more related with time series so I don't even know where to search. I would like to find a dataset on Kaggle for working with this type of things.
I will be extremely grateful if someone bright me a little bit with this.