I am currently working with a large set of health insurance claims data that includes some laboratory and pharmacy claims. The most consistent information in the data set, however, is made up of diagnosis (ICD-9CM) and procedure codes (CPT, HCSPCS, ICD-9CM).

My goals are to:

  1. Identify the most influential precursor conditions (comorbidities) for a medical condition like chronic kidney disease;
  2. Identify the likelihood (or probability) that a patient will develop a medical condition based on the conditions they have had in the past;
  3. Do the same as 1 and 2, but with procedures and/or diagnoses.
  4. Preferably, the results would be interpretable by a doctor

I have looked at things like the Heritage Health Prize Milestone papers and have learned a lot from them, but they are focused on predicting hospitalizations.

So here are my questions: What methods do you think work well for problems like this? And, what resources would be most useful for learning about data science applications and methods relevant to healthcare and clinical medicine?

EDIT #2 to add plaintext table:

CKD is the target condition, "chronic kidney disease", ".any" denotes that they have acquired that condition at any time, ".isbefore.ckd" means they had that condition before their first diagnosis of CKD. The other abbreviations correspond with other conditions identified by ICD-9CM code groupings. This grouping occurs in SQL during the import process. Each variable, with the exception of patient_age, is binary.

  • 1
    $\begingroup$ Can you provide some example data (in plain English, no codes)? $\endgroup$ – ffriend Jul 30 '14 at 13:49
  • $\begingroup$ I added some example data to my original post. In this version, each condition is denoted by a three letter code. $\endgroup$ – Jamie Jul 30 '14 at 13:59
  • 1
    $\begingroup$ R is cool, but not very human-readable. Could you please reformat sample of your data as a table (e.g. using CSV or TSV format; 5-6 columns is ok)? Also, some explanation of variables (what "anx.any", "flu.isbefore.ckd", etc. actually mean and what is to be predicted) will help a lot. $\endgroup$ – ffriend Jul 30 '14 at 19:49
  • 1
    $\begingroup$ Can you provide more information on the parameters used in the data set so that we can understand if there are any correlations. Some of the abbreviations mentioned by you are not clear to me. It would be great if you could share your email-id for us to collaborate offline. Thanks! $\endgroup$ – JohnGalt Aug 8 '14 at 6:04
  • 1
    $\begingroup$ This is only a little bit related, but our most recent data science challenge concerned predicting claims from other claims. cloudera.com/content/cloudera/en/training/certification/ccp-ds/… When the solution is released it may contain a few interesting ideas. $\endgroup$ – Sean Owen Sep 3 '14 at 14:20

I've never worked with medical data, but from general reasoning I'd say that relations between variables in healthcare are pretty complicated. Different models, such as random forests, regression, etc. could capture only part of relations and ignore others. In such circumstances it makes sense to use general statistical exploration and modelling.

For example, the very first thing I would do is finding out correlations between possible precursor conditions and diagnoses. E.g. in what percent of cases chronic kidney disease was preceded by long flu? If it is high, it doesn't always mean causality, but gives pretty good food for thought and helps to better understand relations between different conditions.

Another important step is data visualisation. Does CKD happens in males more often than in females? What about their place of residence? What is distribution of CKD cases by age? It's hard to grasp large dataset as a set of numbers, plotting them out makes it much easier.

When you have an idea of what's going on, perform hypothesis testing to check your assumption. If you reject null hypothesis (basic assumption) in favour of alternative one, congratulations, you've made "something real".

Finally, when you have a good understanding of your data, try to create complete model. It may be something general like PGM (e.g. manually-crafted Bayesian network), or something more specific like linear regression or SVM, or anything. But in any way you will already know how this model corresponds to your data and how you can measure its efficiency.

As a good starting resource for learning statistical approach I would recommend Intro to Statistics course by Sebastian Thrun. While it's pretty basic and doesn't include advanced topics, it describes most important concepts and gives systematic understanding of probability theory and statistics.

  • $\begingroup$ Thanks for this! It confirms some of the steps I have already taken (exploratory analysis, hypothesis testing, etc.). $\endgroup$ – Jamie Aug 1 '14 at 15:15

While I am not a data scientist, I am an epidemiologist working in a clinical setting. Your research question did not specify a time period (ie odds of developing CKD in 1 year, 10 years, lifetime?).

Generally, I would go through a number of steps before even thinking about modeling (univariate analysis, bivariate analysis, colinearity checks, etc). However, the most commonly used method for trying to predict a binary event (using continuous OR binary variables) is logistic regression. If you wanted to look at CKD as a lab value (urine albumin, eGFR) you would use linear regression (continuous outcome).

While the methods used should be informed by your data and questions, clinicians are used to seeing odds ratios and risk ratios as these the most commonly reported measures of association in medical journals such as NEJM and JAMA.

If you are working on this problem from a human health perspective (as opposed to Business Intelligence) this Steyerberg's Clinical Prediction Models is an excellent resource.

  • 1
    $\begingroup$ Thanks for the helpful suggestions. I will definitely check out that book! Though I have access to lab values, the data is unreliable and sporadic, so i am trying to stick to data I can get from claims. The variable abbreviations are actually AHRQ Clinical Classification Software groupings of diagnosis codes. $\endgroup$ – Jamie Aug 11 '14 at 22:01

"Identify the most influential precursor conditions (comorbidities) for a medical condition like chronic kidney disease"

I'm not sure that it's possible to ID the most influential conditions; I think it will depend on what model you're using. Just yesterday I fit a random forest and a boosted regression tree to the same data, and the order and relative importance each model gave for the variables were quite different.

  • $\begingroup$ Thanks, Andy. Could you elaborate a little? Is it because the variables don't capture enough detail? $\endgroup$ – Jamie Jul 31 '14 at 16:42
  • $\begingroup$ I have no idea. I guess it depends on how different models work. $\endgroup$ – JenSCDC Jul 31 '14 at 16:54
  • $\begingroup$ Could you suggest some of the solutions you tried or considered? $\endgroup$ – Jamie Jul 31 '14 at 17:25
  • $\begingroup$ So far I haven't done either, so no help there. Sorry. $\endgroup$ – JenSCDC Jul 31 '14 at 17:38
  • $\begingroup$ I'm now on vacation for the next few weeks, but when I get back I'll look into it because it really has piqued my interest. $\endgroup$ – JenSCDC Aug 3 '14 at 20:29

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.