I have lists of scores, which can be very non linear. For example:


I need to normalize these scores to a 1-100 scale so I can do some comparisons with other score sets which may be in different scale, such as:


The thing is that, due to the non linearity, I want to give the high outliers less relative weight. So the scores above will normalize to something closer to a rank. For example:


What is the best way to do normalization in such a case?

  • $\begingroup$ A simple method is to just compute the empirical CDF & rescale it. Here's an example: stats.stackexchange.com/a/380284/22311 $\endgroup$
    – Sycorax
    Jun 15, 2022 at 18:17
  • 3
    $\begingroup$ This sounds mighty arbitrary. If you would like it to have some meaning, please explain what these scores might be measuring and what the comparison is supposed to reflect. $\endgroup$
    – whuber
    Jun 15, 2022 at 18:31
  • 1
    $\begingroup$ I’m with whuber that we will need a lot more detail to be able to address this in a way that gives meaning to your normalized scores. $\endgroup$
    – Dave
    Jun 15, 2022 at 18:39

1 Answer 1


Firstly, are you certain you want to transform to 1-100, as opposed to 0-100? (The latter scale would be much more sensible in most contexts.) Assuming you actually want to transform to the latter scale, if your data is $\mathbf{x}=(x_1,...,x_n)$ one option would be to define the empirical distribution function:

$$F_\mathbf{x}(x) = \frac{1}{n} \sum_{i=1}^n \mathbb{I}(x \leqslant x_i),$$

and then use a transformation of the form:

$$y_k = 100 \times\frac{n F(x_k) - \alpha}{n+1-2\alpha},$$

where $0 \leqslant \alpha \leqslant 1$ is a shifting parameter used for the transformation (a good value here is $\alpha = \tfrac{1}{2}$). The values $y_k$ are essentially just scaled sample quantiles of the corresponding values in $\mathbf{x}$. If you were to use a transformation of this kind then comparisons of points across different data sets would essentially be comparing the sample quantiles of corresponding points.

As whuber points out in the comments, you might want to first give more thought to why you want to transform your observed data onto this scale, and what kind of subsequent analysis you propose to do. Transformation using the method I'm showing here is essentially conversion to look at the estimated quantiles of the data values (on a 0-100 scale) so it is one meaningful way to do this. You'll have to consider whether or not this is the meaning you want for your scale and what you plan to use it for.


Your Answer

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

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