LASSO to identify important variables in ordered logistic regression? I have spent two days grappling with this question, and the range of ambiguous answers online has driven me to ask. I am working with R.
I have a dataset where my dependent variable is an ordered categorical variable with 5 levels ("dislike very much" to "like very much"). I intend to use the ordinal package for the actual regression analysis, but have been trying to decide on the best method to specify the model. From my reading it appears that stepwise methods are not a good option, and that a LASSO regression technique is a better method of selecting important variables. Is it acceptable to use a LASSO method to choose the variables to include and then to use these variables in a separate proportional odds regression? My primary interest is in the significance of the terms, rather than the size of the coefficient. I want to know which variables have a significant effect, in which direction, and in what order of importance. For this reason I would rather do the final modelling using a proportional odds glm than with a LASSO model.   
 A: Lasso is squared loss with l1-penalty, while ordinal logistic is the loss function, to which you can add the penalty of your choice. It seems you would like to have a model with an ordinal logistic loss AND an l1-penalty. This would be a legitimate model, although it is possible you might have to code it yourself since I don't know of any public implementations of this.
A: You can try my package accSDA. I have not pushed the most recent changes to CRAN, but there is a function called ordASDA which implements LASSO based ordinal discriminant analysis (or ordinal regression). 
The Readme on github has example code on how to run this, simple case would be:
# Prepare training and test set
train <- c(1:40,51:90,101:140)
Xtrain <- iris[train,1:4]

# normalize is a function in the package
nX <- normalize(Xtrain)
Xtrain <- nX$Xc
Ytrain <- iris[train,5]
Xtest <- iris[-train,1:4]
Xtest <- normalizetest(Xtest,nX)
Ytest <- iris[-train,5]

# Define parameters for SDAD, i.e. ADMM optimization method
# Also try the SDAP and SDAAP methods, look at the documentation
# to read more about the parameters!
Om <- diag(4)+0.1*matrix(1,4,4) #elNet coef mat
gam <- 0.01
lam <- 0.01
method <- "SDAD"
q <- 2
control <- list(PGsteps = 100,
                PGtol = c(1e-5,1e-5),
                mu = 1,
                maxits = 100,
                tol = 1e-3,
                ordinal = TRUE,
                quiet = FALSE)

# Run the algorithm
res <- ASDA(Xt = Xtrain,
            Yt = Ytrain,
            Om = Om,
            gam = gam ,
            lam = lam,
            q = q,
            method = method,
            control = control)

Just replace the ASDA with ordASDA or use the ordinal flag in the control list for ASDA. The iris dataset does not have an ordinal response, and the response has to be an integer in the set $\[1,n\]$ where n is the number of classes.
