Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

I am doing some work on the effects of collinearity on different types of model (OLS, binomial logistic, ordinal logistic, multinomial logistic and maybe others). I have found the perturb package in R, which will be very useful for this. This package shows how small changes in the data affect the parameter estimates of a model. The perturb package perturbs the data that is used to build the model, and then re-runs the model - a little like a bootstrap. In this particular case, I chose to perturb the independent variables, but I could also perturb the dependent variable.

However, I am struggling to figure out the best way to compare these effects. For example, I ran perturb on an OLS model and got

----------


 Impact of perturbations on coefficients:

                 mean  s.d.    min   max

    x0          0.014 0.264 -0.743 0.604

    x1          1.451 0.347  0.771 3.772

    x2          0.847 0.321  0.308 2.817

    x3          2.222 0.243  1.129 2.746
    ----------

Then I dichotomized the DV and ran perturb on a logistic model and got

----------


 Impact of perturbations on coefficients:

                 mean  s.d.    min    max

    x0          0.119 0.234 -0.477  0.732

    x1          0.918 0.819 -6.612  2.215

    x2          0.247 1.008 -9.413  1.175

    x3          1.533 2.292  0.574 24.083
----------

The latter certainly looks like it was affected much more, but I don't know of any more formal ways to compare these parameter estimates and, especially, the size of the sd of the different estimates.

Here is a link to the perturb package and to the R version

Thanks

share|improve this question
What exactly is perturbed in these simulations? The $y$'s? I'm also trying to understand your tables - for example, the 0.918 in the second table - does this mean the coefficient for $x_1$ was increased by $0.918$ on average? and the max, min and standard deviation of that change was $2.215, -6.612$ and $0.819$, respectively? – Macro May 23 '12 at 14:58
@Macro I edited the post to (I hope) answer your question. – Peter Flom May 23 '12 at 15:23
I also don't quite follow what these values indicate. Surely, the sampling distributions of the perturbations would be centered on 0, so what does the mean refer to? It would make sense to take the absolute values first, but the min values are negative. A little more explanation would help, here. On a different note, would you mind including a link to the package, and including the tabular info in the code block so that spacing / columns line up for better readability? – gung May 23 '12 at 15:55
I'm still confused, Peter. Similarly to @gung, the entries of the table are a bit mysterious to me. Also, I'm still not sure what exactly is being perturbed - the predictors? the response? both? – Macro May 23 '12 at 16:00

1 Answer

I'm not familiar with the perturb package. I think what you're looking for is a sensitivity analysis to determine the extent of collinearity on the estimated model parameters or their predicted outcomes.

If you're interested in prediction, I would look at ridge regression and show cross validated MSE over a range of tuning parameters for the L2-penalty. It should have a quadratic shape whose minimum represents an estimated optimal L2-penalty.

If you're interested in inference, well then the model is part of a prespeficied analysis plan, so your adjustment variables are necessary. You wouldn't want to change your inference approach based on the data, otherwise your statistics become exploratory instead of confirmatory. A reasonable sensitivity analysis would be to calculate simple correlations between predictors and show conditioning plots with range highlighting indicating the spread of your main effect (x axis) over a range of the adjustment variable (w).

share|improve this answer
Hi @AdamO I am not so much interested here in solving the problem of collinearity (where ridge regression is one good method) as in diagnosing it. For OLS models, Belsley suggested that a condition index of 30 or higher indicates problematic collinearity. I am interested in exploring what condition indices indicate problematic collinearity for other models. – Peter Flom May 23 '12 at 16:57
1  
But if you simulate approximately collinear and non-collinear data and create the traceplot I mentioned, you will see the traceplot is an effective diagnostic tool. Collinear data shows a large change over the range of the tuning parameter. That change is consistent and bootstrap iterations over various levels will show this. Non-collinear data does not demonstrate that large of a change. It also generalizes to any GLM using the likelihood based L2 penalty. – AdamO May 23 '12 at 17:54
1  
So Peter: For linear regression it is clear what is meant by collinarity namely that an independent variable is nearly expressible as a linear combination of some other predictor variables used in the model, How would you define it for logistic regression or any other generalized linear model? Are you doing this on the variables that are linearly related to the transformed dependent variable (the one that results from transforming the original variable using then link)? – Michael Chernick May 23 '12 at 20:07

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.