I have data on 44 firms that have all been ranked by an expert. The "best" firm has rank 1, the second best has rank 2, ..., the last one has rank 44. I have a bunch of explanatory variables and would like to explain the rank of the firm on the basis of these variables. My inclination is to use a regression model, but am concerned about the fact that the dependent variable is limited, it can only be a positive discrete number.

I have thought about ordinal regression, but that seems impossible since I would have as many categories as I have observations.

What regression models would be possible? (preferably to be run in R)

  • 2
    $\begingroup$ You could convert the ranks into preference scores that come from a normal distribution: ats.ucla.edu/stat/stata/faq/prank.htm $\endgroup$ Sep 18, 2013 at 20:08
  • $\begingroup$ This seems reasonable to me. However, I am a bit confused by their example. They say that "The z-scores will be normally distributed with mean equal to zero and a standard deviation of one." but the inverse normal transformation they apply actually results in scores with a standard deviation of 1.486. Am I missing something or is there an error in the example? $\endgroup$ Sep 20, 2013 at 10:37
  • $\begingroup$ @PeterVerbeet can we get an update on this? Curious on how you modelled this as I am facing it too... $\endgroup$
    – eggie5
    Nov 19, 2017 at 21:16
  • 1
    $\begingroup$ It seems the top link has been moved to stats.idre.ucla.edu/stata/faq/… $\endgroup$
    – Feng Jiang
    Apr 10, 2021 at 23:32

3 Answers 3


Ordinal regression is ideal for this problem in my opinion. There is no problem other than computational burden caused by having as many unique $Y$ as there are observations. The R rms package's orm function solves the computational burden problem using a special sparse matrix representation. For an example see Which model should I use to fit my data ? ordinal and non-ordinal, not normal and not homoscedastic


In principle, you are right to worry that the response is bounded. In practice, with this kind of data, you are unlikely to get predictions beyond the observed range of the data. This won't be your fault, but just the effect of the high degree of unpredictability with firm-level data.

Put it this way: The worst you can get is that no predictors really help, in which case the model will predict the average rank for every firm, at least to a good first approximation. In practice, you hope you can do better, but there is little reason to expect that predictions will be outside the observed range. (Or is there?)

But why predict rank at all? Why not try to predict some performance measure, and then rank the predictions, and then compare with the expert's ranks? That sounds much less problematic.


I've heard of using an $L$ statistic calculated from $(N-1)r^2$, then compared to the chi-square table. (can anyone back me up on this?) All you'd have to do is convert all data into ranks, run it through a regular old multiple regression, then use the $L$ statistic to find your $p$-values.

However, I feel like inference will not be too useful in your case. Not quite sure of the data's context, but simply using Spearman correlation or scatterplots might be more telling.

  • $\begingroup$ Thanks, that is interesting. I am not sure if it'll help me in this case, but I'll look into it. I just found a link that explains it a little bit: link $\endgroup$ Sep 19, 2013 at 13:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.