I am trying to fit an ordinal regression model using the logit link function in R using ordinal package; the response variables have five levels.
The number of explanatory variables is much larger than the number of samples ($p \gg n$)
Could any one help me with the following problem:
- Start with a model that contains only the intercept.
- For the current model, explore the improvement in fit by adding additional variables.
- Add the baseline for the variables that performed the best (using AIC, deviance, etc.)
- Go back to step 2 until the maximal number of variables in the model is reached.
Unfortunately, glmnet, cannot handle ordinal regression otherwise it would have been great. Is there a way of reducing the ordinal regression problem to multinomial regression using indicator variables? This would be of great benefit as I could use glmnet for variable selection.
This is sample data (in my case $n \sim 100$, and $p \sim 10000$):
structure(list(resp = structure(c(1L, 1L, 2L, 2L, 2L), .Label = c("a",
"b"), class = c("ordered", "factor")), x1 = 1:5, x2 = c(0.1,
0.2, 0.3, 0.4, 0.5), x3 = c(0.01, 0.04, 0.09, 0.16, 0.25), x4 = c(1,
4, 9, 16, 25), x5 = c(0.001, 0.002, 0.003, 0.004, 0.005), x6 = c(-5,
-4, -3, -2, -1), x7 = c(-0.5, -0.4, -0.3, -0.2, -0.1), x8 = c(0.25,
0.16, 0.09, 0.04, 0.01), x9 = c(25, 16, 9, 4, 1), x10 = c(0.0316227766016838,
0.0447213595499958, 0.0547722557505166, 0.0632455532033676, 0.0707106781186548
)), .Names = c("resp", "x1", "x2", "x3", "x4", "x5", "x6", "x7",
"x8", "x9", "x10"), row.names = c(NA, -5L), class = "data.frame")
Thanks a lot for any help or pointers!
stepAIC()in package MASS? – Chase May 6 '11 at 4:09polr, but I wanted to useclmand polr is slow with my data size (and so isclm) – suncoolsu May 6 '11 at 9:09