I have a clinical trial dataset where the patient details are recorded at certain time intervals(visits) over period of time. Each visit will contain data recordings of all the adverse events experienced prior to the visit, any medicines taken and the dosage of experimental drug in no particular order. for example a visit could have recordings of 5 adverse events (nausea, headache, hypertension etc.) experienced in the week prior to the visit, dosage of experimental drug and some medicines given to avoid the adverse events.

Now i need to predict the occurrence of adverse events for a patient before his next visit and also need to know which medicines cause some of these adverse effects.

I hope I've clearly explained the problem. What Machine learning/Statistical methods would best solve this?

  • $\begingroup$ I would model this similarly to churn prediction in marketing; what is the probability of the user changing status in the next epoch (e.g., month)? This is easy to train, because you can take your historical data with a month's lag and use the final epoch as ground truth. $\endgroup$ – Emre Sep 27 '17 at 3:47

What you're describing is known as a multilabel classification. You want to predict some output labels (adverse effects) in a given set of possible output labels (all possible adverse effects), using a given a set of input indicators (previous adverse effects, drugs prescribed, dosage levels).

For those final two features, I'd combine them into one feature where if the drug is not prescribed obviously dosage is 0, and higher otherwise.

In R, you can use the mlR package for this prediction stage. You may also be able to use the generateFilterValues() function in this package to extract feature importances, however I'm not sure if this will work with multilabel and additionally this will only tell you how much your classifier believes your input features contribute to the output labels relative to all the other input features. It won't give you other valuable information for example at which dosage levels of a particular drug does the probability of negative symptoms increase most.

Again, I'm unsure how this would work with multilabel classifications as I don't have any experience with them, but take a look at plotting partial dependency plots to get this last bit of information on how each input feature contributes to your output labels.

  • $\begingroup$ Is the time dependency also modeled here? As in the adverse event could be due to dosage/medicines given in the previous visit or earlier. How do we factor that in? $\endgroup$ – JHS Jun 29 '17 at 4:41
  • $\begingroup$ Also we have more than 450 adverse events! is that going to be a problem for multilabel classifiers? $\endgroup$ – JHS Jun 29 '17 at 4:46
  • $\begingroup$ For that many ouput labels you're probably going to need a lot of data, your classifier needs many good examples of inputs which 'cause' each output label. I'm not sure if it would work at all, and if it did it may be horrendously inaccurate since there are so many labels to consider. Perhaps ask another question on this matter? For now I would recommend trying it on a smaller subsample of more general descriptive labels(e.g. headache, dry mouth...). Then try adding more. $\endgroup$ – Dan Carter Jun 29 '17 at 10:01
  • $\begingroup$ As for time dependency, you may want to look into LSTMs which are good for learning time dependent classifications. After a little research it looks like they can also be used for multi label problems. Good luck! $\endgroup$ – Dan Carter Jun 29 '17 at 10:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.