基于选定多属性决策方法确定对应替代方案数量k的技术问询
多属性决策方法相关性分析及目标值提取
需求说明
检验TOPSIS、PROMETHEE、VIKOR三种多属性决策方法与DISTANCE方法的相关性,选出相关性最高的方法,再提取该方法取值为1时对应的Alternatives数值。
实现代码
以下是用于相关性分析并筛选最优方法的R代码:
library(dplyr) library(tidyr) df <- structure(list(Alternatives = c(3, 4, 5, 6, 7, 8, 9, 10, 11, 12), DISTANCE = c(1L, 10L, 7L, 8L, 9L, 6L, 5L, 3L, 4L, 2L), TOPSIS = c(1L, 8L, 7L, 6L, 10L, 9L, 4L, 3L, 2L, 5L), PROMETHEE = c(1L, 10L, 7L, 8L, 9L, 6L, 4L, 2L, 3L, 5L), VIKOR = c(1, 9, 7, 6, 10, 8, 5, 4, 3, 2)), class = "data.frame", row.names = c(NA, -10L)) # 查看数据框 df # 计算相关性并筛选最优方法 output <- df %>% summarise(across(TOPSIS:VIKOR, ~cor.test(., DISTANCE, method = "spearman")$estimate)) %>% pivot_longer(cols = everything()) %>% slice_max(value) %>% pull(name) %>% select(df, .) # 查看筛选出的方法列 output
数据框df内容
| Alternatives | DISTANCE | TOPSIS | PROMETHEE | VIKOR |
|---|---|---|---|---|
| 3 | 1 | 1 | 1 | 1 |
| 4 | 10 | 8 | 10 | 9 |
| 5 | 7 | 7 | 7 | 7 |
| 6 | 8 | 6 | 8 | 6 |
| 7 | 9 | 10 | 9 | 10 |
| 8 | 6 | 9 | 6 | 8 |
| 9 | 5 | 4 | 4 | 5 |
| 10 | 3 | 3 | 2 | 4 |
| 11 | 4 | 2 | 3 | 3 |
| 12 | 2 | 5 | 5 | 2 |
筛选结果
代码运行后,选出的相关性最高的方法为TOPSIS,其列内容如下:
| TOPSIS |
|---|
| 1 |
| 8 |
| 7 |
| 6 |
| 10 |
| 9 |
| 4 |
| 3 |
| 2 |
| 5 |
提取目标变量k
将Alternatives列与筛选出的TOPSIS列合并,得到如下表格:
| Alternatives | TOPSIS |
|---|---|
| 3 | 1 |
| 4 | 8 |
| 5 | 7 |
| 6 | 6 |
| 7 | 10 |
| 8 | 9 |
| 9 | 4 |
| 10 | 3 |
| 11 | 2 |
| 12 | 5 |
找到TOPSIS取值为1的行,对应的Alternatives数值为3,即变量k = 3。
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

