# Testing multi-collinearity of ordinal independent variables in R

I am trying to conduct an ordinal logistic regression, but I first want to test if I fulfill the assumption of no multicollinearity. All of my 8 independent variables are ordinal with up to 5 levels. Am I correct in thinking these need to be converted into dummy variables, modelled, and then the VIF calculated? How can I do this, I've been searching for a while, but cannot find a clear answer online.

• You could just look at the correlation matrix of the independent variables, using Spearman's or Kendall's (not Pearson's) correlation. Unless you have extremely high correlations then you are good to go. Jul 16, 2020 at 12:22
• Hi, thanks for the reply. I've tried doing this using the cor function: cor(Published_Pairs, method = "spearman") I get the error saying that x needs to be numeric. What am I missing? Jul 16, 2020 at 12:28

I would just look at the correlation matrix of the independent variables, using Spearman's or Kendall's (not Pearson's) correlation. Unless you have extremely high correlations then you should be fine. In R, you may need to convert the variables into numeric type first:

> x <- ordered(c(2, 3, 6, 8))
> y <- ordered(c(4, 3, 3, 5))

> cor(x, y)
Error in cor(x, y) : 'x' must be numeric
> cor(as.numeric(x), as.numeric(y), method = "spearman")
[1] 0.316
$$$$

• Thanks, this makes sense. It will take quite a while to compare every independent variable with another. Is there a way to produce a matrix outlining the correlation of each? Additionally, is there any sort of "acceptable level" of correlation when it comes to this? I suspect some of mine may be quite high. Jul 16, 2020 at 12:44
• yes, just run cor(X) where X` is a matrix of the (numeric) variables in the columns. Unless you have correlations of 1 then your model should run, but if it is just close to 1 there could be some instability. If you have values close to 1 then ask another question about that. Jul 16, 2020 at 12:56
• Yep, that's working. The highest correlations are at 0.77. This seems quite high so I assume I'll need to analyse further. Jul 16, 2020 at 12:59
• 0.77 isn't particularly high Jul 16, 2020 at 13:49