I used TOPSIS
multicriteria method to select the best number of clusters out of the 34 options. As weights
I used 0.5 for each criterion. The coverage
criterion is to minimize and the production
criterion is to maximize. With these same conditions, I would like to use the PROMETHEE multicriteria method. From what I saw there is a PROMETHEE package in R (CRAN - Package PROMETHEE), but unfortunately I couldn't do it for my case.
Can you help me?
I left the TOPSIS
code to give you an idea of what I want, which is to rank the best alternatives. In this case, the best option is the cluster number equal to 2, as it ranked 1st.
library(topsis)
df1<-structure(list(nclusters = c(2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35), Coverage = c(0.0363201192049018,
0.0315198954715543, 0.112661460735583, 0.112661460735583, 0.112661460735583,
0.0813721071219816, 0.0862146652218061, 0.0697995564757394, 0.0599194966471805,
0.0507632014547115, 0.052076958349629, 0.052076958349629, 0.052076958349629,
0.052076958349629, 0.052076958349629, 0.052076958349629, 0.0410332568832433,
0.0389940601722214, 0.0441742111970355, 0.0441742111970355, 0.0441742111970355,
0.0438099091238968, 0.0409906284310306, 0.0409906284310306, 0.035480410134286,
0.035480410134286, 0.035480410134286, 0.035480410134286, 0.035480410134286,
0.035480410134286, 0.035480410134286, 0.0345381204372174, 0.0287729883480053,
0.0287729883480053), Production = c(1635156.04305, 474707.64025,
170773.40775, 64708.312, 64708.312, 64708.312, 949.72635, 949.72635,
949.72635, 949.72635, 949.72635, 949.72635, 949.72635, 949.72635,
949.72635, 949.72635, 949.72635, 949.72635, 949.72635, 949.72635,
949.72635, 949.72635, 949.72635, 949.72635, 949.72635, 949.72635,
949.72635, 949.72635, 949.72635, 949.72635, 949.72635, 949.72635,
949.72635, 949.72635)), class = "data.frame", row.names = c(NA,-34L))
row.names(df1) <- df1$nclusters
df2 <- df1[c(2:3)]
df2<-data.matrix(df2)
w <- c(0.5,0.5)
i <- c("-", "+")
result<-topsis(df2, w, i)
result<-data.frame(nclusters = df1[,1],result[,2:3])
> result
nclusters score rank
1 2 0.97709831 1.0
2 3 0.35391229 2.0
3 4 0.09999171 30.0
4 5 0.03763326 33.5
5 6 0.03763326 33.5
6 7 0.09914059 31.0
7 8 0.07676999 32.0
8 9 0.11960647 29.0
9 10 0.14366970 28.0
10 11 0.16484786 21.0
11 12 0.16187453 24.5
12 13 0.16187453 24.5
13 14 0.16187453 24.5
14 15 0.16187453 24.5
15 16 0.16187453 24.5
16 17 0.16187453 24.5
17 18 0.18619947 16.0
18 19 0.19052672 13.0
19 20 0.17943485 19.0
20 21 0.17943485 19.0
21 22 0.17943485 19.0
22 23 0.18022565 17.0
23 24 0.18629045 14.5
24 25 0.18629045 14.5
25 26 0.19786466 9.0
26 27 0.19786466 9.0
27 28 0.19786466 9.0
28 29 0.19786466 9.0
29 30 0.19786466 9.0
30 31 0.19786466 9.0
31 32 0.19786466 9.0
32 33 0.19980731 5.0
33 34 0.21146288 3.5
34 35 0.21146288 3.5