Multicollinearity problems with `polr` function in the MASS package for ordinal response I've been trying to use the polr function for a couple days now. The dataset has lot of features (~70) and some of them are factor variables. When I run a simple glm on a response threshold, some dummy variables as found to be making the design matrix multicollinear - 4 of them.
When I run polr on the data, it finds the same variables and tries to leave them out. I added print statements to polr using trace to verify my assumption.
However, when I run summary(polr), I get an error saying the start variable isn't long enough. Its actually 4 short. The exact error thrown is:
"'start' is not of the correct length"

I've experimented with the formula passed to polr() to be very sure that start is always found short by the same amount as the number of variables (dummy or otherwise) removed to avoid multicollinearity.
Here's sample code to see this problem (I've made small print adds using trace()):
r = c(2,2,2,3,3,3,1,1,1,1)
r = as.factor(r)
x = c(0,0,0,4,5,6,0,-1,-1,1)
y = c(5,5,2,1,0,3,10,4,3,8)
z = c(0,0,0,4,5,6,0,-1,-1,1)
a = data.frame(r,x,y,z)

library(MASS)
model <- polr(r~x*y*z, data=a)

[1] "Killing the following coefs."
[1] "z"   "y:z"
Warning messages:
1: glm.fit: fitted probabilities numerically 0 or 1 occurred 
2: In polr(r ~ x * y * z, data = a) :
  design appears to be rank-deficient, so dropping some coefs

summary(model)

Re-fitting to get Hessian
[1] "Length of start mismatch: 7 != 7 + #intercepts"
Error in polr(formula = r ~ x * y * z, data = a, Hess = TRUE, start = c(object$coefficients,  : 
'start' is not of the correct length

Hints?
PS - Even when I start throwing variables out of my analysis, I notice that when the number of variables is large, I hit this error quite frequently:
Error in svd(X) : infinite or missing values in 'x'

Is MASS even a stable package?
 A: Your example doesn't quite work for me.  I need to add:  
r = factor(r, levels=1:3, ordered=T)

From there, I don't get all the problems you report.  For example, I don't get the messages:  

[1] "Killing the following coefs."
[1] "z"   "y:z"

I do get the warning messages, though.  The first warning message, 1: glm.fit: fitted probabilities numerically 0 or 1 occurred, is due to perfect separation in your example.  I don't know if you also have separation in your real dataset, but you might.  There are a number of threads on CV that deal with this issue; you can find them by searching under the hauck-donner-effect tag.  
The second warning message, 2: In polr(r ~ x * y * z, data = a) : design appears to be rank-deficient, so dropping some coefs, is due to perfect multicollinearity.  I gather you are familiar with multicollinearity already, but you can read some of the threads listed under the multicollinearity tag, if you'd like.  
Regarding your problems with calling summary(model), I notice that the documentation for ?polr states:  

Hess  logical for whether the Hessian (the observed information matrix) should be returned. Use this if you intend to call summary or vcov on the fit.

I don't have the problems you report when I run:  
model <- polr(r~x*y*z, data=a, Hess=TRUE)
summary(model)
# Call:
# polr(formula = r ~ x * y * z, data = a, Hess = TRUE)
# 
# Coefficients:
#         Value Std. Error    t value
# x     133.246      34947  3.813e-03
# y      -9.662     105406 -9.166e-05
# x:y   -20.739      33468 -6.197e-04
# x:z   -25.087     156572 -1.602e-04
# x:y:z   5.340      30840  1.732e-04
# 
# Intercepts:
#     Value        Std. Error   t value     
# 1|2     -70.2750  531946.6299      -0.0001
# 2|3       8.7140 1249186.4665       0.0000
# 
# Residual Deviance: 2.070293e-09 
# AIC: 14.00

I don't get the error message: Error in svd(X) : infinite or missing values in 'x', so I don't know what that is about.  
Yes, MASS is a stable package.  There are, however, a number of ways to run an ordinal logistic regression in R.  They are discussed here.  If you don't like MASS, you can always try some of the others.  
