Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

Let's say I'm analyzing the incidence of pathological lesions, observed during necropsy. No information is available about when the lesion occurred before death. So, I'm using a general linear model $Y_i \sim \beta_0+\beta_{sex}+\beta_{treatment}+\beta_{age}$. $Y_i \in \{0,1\}$ is whether subject $i$ has the lesion or not. Sex and treatment are categorical variables. Age is the age at which the subject died. I already know that if I fit a Cox proportional hazards model to $age \sim \gamma_{sex}+\gamma_{treatment}$ both effects are significant. Therefore, in the model for $Y_i$ the age term must be collinear with the sex and treatment terms. The VIFs are rather large, some of them above 100. On the other hand, if I drop all age-containing terms from the model, the fit becomes significantly worse.

What strategy would you recommend for somehow breaking or adjusting for this collinearity? Would fitting deviance residuals from the Cox model in place of the raw ages do the trick? It seems to work with no errors in R:

update(originalmodel,.~sex*diet*residuals(coxph(Surv(age)~sex+diet),type='deviance'))

...and it lowers the VIFs, but I don't know if it's actually valid.


@Tim: I have better than box-plots-- I have survival curves, and they clearly show that females have shorter lifespans than males, and subjects on the diet have longer lifespans than untreated subjects. So the age term in the model (really, longevity) is partly determined by sex and diet. But of course there is a component that is independent of sex and diet, and I want to include just that component in the model. So that's why I'm asking if using deviance (or some other) residuals in place of age in the model would accomplish that.

And the multicollinearity is severe, here are the VIFs (the model actually includes interaction terms, which I didn't mention above to keep things on-point):

      sex         diet          age     sex:diet      sex:age     diet:age sex:diet:age 
82.042992   123.579264     4.270772    37.464412    72.537500   133.874481    37.464407 
share|improve this question
add comment

1 Answer

Although your Cox proportional hazards model suggests that your predictors are correlated this is not, in itself, a cause of severe multicollinearity, as most models fitted to non-experimental data have correlations amongst the predictors.

Prior to deciding on the best treatment for multicollinearity it is often useful to try and identify the specific cause as knowledge of the cause may have a big impact on the model. My own experience is that most of the times where my models have strong multicollinearity it is due to either data integrity problems (e.g., missing values recorded as -99999), ill-posed problems (e.g., fitting a model with two covariates where one is itself a determinant of the other) or having an insufficiently large sample size.

I would suggest that you should start by creating boxplots showing how the distribution of age is conditional upon treatment and gender. Whatever the root cause is, it may show up here.

Once you have diagnosed the problem, if you still need to estimate a model a strategy that can work with small number of variables is to create interactions between the categorical variables and then merging some of the categories of the interactions (e.g., so that you have male+treatment, female+treatment and non-treatment.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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