Data preparation

id = seq(1,20, by=1)
SCORE <- c(42,47,59,27,84,49,72,43,73,59,58,82,50,79,89,75,70,59,67,35)
mydata <- data.frame(id, SCORE)
old.max <- max(SCORE)
old.min <- min(SCORE)
mydata
##    id SCORE
## 1   1    42
## 2   2    47
## 3   3    59
## 4   4    27
## 5   5    84
## 6   6    49
## 7   7    72
## 8   8    43
## 9   9    73
## 10 10    59
## 11 11    58
## 12 12    82
## 13 13    50
## 14 14    79
## 15 15    89
## 16 16    75
## 17 17    70
## 18 18    59
## 19 19    67
## 20 20    35
hist(mydata$SCORE, breaks=20)

Normalize SCORE to be range (0,1)

new.min = 0
new.max = 1
mydata <- within(mydata, score01 <- (SCORE-old.min)/(old.max - old.min))
mydata
##    id SCORE   score01
## 1   1    42 0.2419355
## 2   2    47 0.3225806
## 3   3    59 0.5161290
## 4   4    27 0.0000000
## 5   5    84 0.9193548
## 6   6    49 0.3548387
## 7   7    72 0.7258065
## 8   8    43 0.2580645
## 9   9    73 0.7419355
## 10 10    59 0.5161290
## 11 11    58 0.5000000
## 12 12    82 0.8870968
## 13 13    50 0.3709677
## 14 14    79 0.8387097
## 15 15    89 1.0000000
## 16 16    75 0.7741935
## 17 17    70 0.6935484
## 18 18    59 0.5161290
## 19 19    67 0.6451613
## 20 20    35 0.1290323
hist(mydata$score01, breaks = 20)

Normalize SCORE to be range(-1,1)

new.min = -1
new.max = 1
mydata <- within(mydata, score.minus11 <- (SCORE-old.min)/(old.max - old.min)*(new.max-new.min)+new.min)
mydata
##    id SCORE   score01 score.minus11
## 1   1    42 0.2419355   -0.51612903
## 2   2    47 0.3225806   -0.35483871
## 3   3    59 0.5161290    0.03225806
## 4   4    27 0.0000000   -1.00000000
## 5   5    84 0.9193548    0.83870968
## 6   6    49 0.3548387   -0.29032258
## 7   7    72 0.7258065    0.45161290
## 8   8    43 0.2580645   -0.48387097
## 9   9    73 0.7419355    0.48387097
## 10 10    59 0.5161290    0.03225806
## 11 11    58 0.5000000    0.00000000
## 12 12    82 0.8870968    0.77419355
## 13 13    50 0.3709677   -0.25806452
## 14 14    79 0.8387097    0.67741935
## 15 15    89 1.0000000    1.00000000
## 16 16    75 0.7741935    0.54838710
## 17 17    70 0.6935484    0.38709677
## 18 18    59 0.5161290    0.03225806
## 19 19    67 0.6451613    0.29032258
## 20 20    35 0.1290323   -0.74193548
hist(mydata$score.minus11, breaks = 20)

Normalize by z-score

score.mean = mean(SCORE)
score.sd = sd(SCORE)
mydata <- within(mydata, zscore<-(SCORE-score.mean)/score.sd)
mydata
##    id SCORE   score01 score.minus11     zscore
## 1   1    42 0.2419355   -0.51612903 -1.0984281
## 2   2    47 0.3225806   -0.35483871 -0.8086054
## 3   3    59 0.5161290    0.03225806 -0.1130309
## 4   4    27 0.0000000   -1.00000000 -1.9678962
## 5   5    84 0.9193548    0.83870968  1.3360827
## 6   6    49 0.3548387   -0.29032258 -0.6926763
## 7   7    72 0.7258065    0.45161290  0.6405082
## 8   8    43 0.2580645   -0.48387097 -1.0404635
## 9   9    73 0.7419355    0.48387097  0.6984727
## 10 10    59 0.5161290    0.03225806 -0.1130309
## 11 11    58 0.5000000    0.00000000 -0.1709954
## 12 12    82 0.8870968    0.77419355  1.2201536
## 13 13    50 0.3709677   -0.25806452 -0.6347117
## 14 14    79 0.8387097    0.67741935  1.0462600
## 15 15    89 1.0000000    1.00000000  1.6259054
## 16 16    75 0.7741935    0.54838710  0.8144018
## 17 17    70 0.6935484    0.38709677  0.5245791
## 18 18    59 0.5161290    0.03225806 -0.1130309
## 19 19    67 0.6451613    0.29032258  0.3506855
## 20 20    35 0.1290323   -0.74193548 -1.5041799
hist(mydata$zscore,breaks = 20)

Take a look on the distributions of nomalized scores

mydata
##    id SCORE   score01 score.minus11     zscore
## 1   1    42 0.2419355   -0.51612903 -1.0984281
## 2   2    47 0.3225806   -0.35483871 -0.8086054
## 3   3    59 0.5161290    0.03225806 -0.1130309
## 4   4    27 0.0000000   -1.00000000 -1.9678962
## 5   5    84 0.9193548    0.83870968  1.3360827
## 6   6    49 0.3548387   -0.29032258 -0.6926763
## 7   7    72 0.7258065    0.45161290  0.6405082
## 8   8    43 0.2580645   -0.48387097 -1.0404635
## 9   9    73 0.7419355    0.48387097  0.6984727
## 10 10    59 0.5161290    0.03225806 -0.1130309
## 11 11    58 0.5000000    0.00000000 -0.1709954
## 12 12    82 0.8870968    0.77419355  1.2201536
## 13 13    50 0.3709677   -0.25806452 -0.6347117
## 14 14    79 0.8387097    0.67741935  1.0462600
## 15 15    89 1.0000000    1.00000000  1.6259054
## 16 16    75 0.7741935    0.54838710  0.8144018
## 17 17    70 0.6935484    0.38709677  0.5245791
## 18 18    59 0.5161290    0.03225806 -0.1130309
## 19 19    67 0.6451613    0.29032258  0.3506855
## 20 20    35 0.1290323   -0.74193548 -1.5041799
boxplot(mydata$score01, mydata$score.minus11,mydata$zscore, names = c("0,1", "-1,1", "z"))

pairs(mydata[-1])

The correlations matrix shows that nomalization methods does not change the distribution of the features.