PROMETHEE {PROMETHEE} | R Documentation |
Preference Ranking Organization METHod for Enrichment of Evaluations
Description
Functions which can be used to support the Multicriteria Decision Analysis (MCDA) process involving multiple criteria, by PROMETHEE (Preference Ranking Organization METHod for Enrichment of Evaluation)
Usage
PROMETHEE(dataset, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss)
Arguments
dataset |
A matrix with data (alternatives by row and criteria by column) |
PreferenceF |
A matrix with preference functions (alternatives by row and criteria by column) |
PreferenceT |
A matrix with preference thresholds (alternatives by row and criteria by column) |
IndifferenceT |
A matrix with indifference thresholds (alternatives by row and criteria by column) |
Weights |
A matrix with weights (alternatives by row and criteria by column) |
Min_Max |
A matrix that specifies whether the criteratum should be maximized or minimized (alternatives by row and criteria by column) |
S_Gauss |
A matrix with S Gaussians (alternatives by row and criteria by column) |
Details
Thanks are extended to Salvatore Greco, Alessio Ishizaka, and Gianpiero Torrisi for helpful comments
Value
Outranking |
Outranking matrix (alternatives by row and criteria by column) |
Nonoutranking |
Non-outranking matrix (alternatives by row and criteria by column) |
UnicriterionNetFlows |
Unicriterion net flows matrix (alternatives by row and criteria by column) |
PROMETHEE1 |
PROMETHEE I matrix (first column is Positive Flows and second column is Negative Flows, alternatives by row) |
PROMETHEE2 |
PROMETHEE II vector (Global net Flows, alternatives by row) |
Author(s)
Giuliano Resce, Menelaos Tasiou, Francesco Vidoli
Examples
# Dataset
dati<-as.data.frame(cbind(c(10,25,4,2),
c(250000,270000,320000,350000),
c(3,4,2,2),
c(20,10,15,7)))
colnames(dati) = c("Distance.to.work","Price","Bedrooms","Age")
# PreferenceF
PreF<-as.data.frame(rbind(c("Gaussian","Linear","V-shape","Level"),
c("Gaussian","Linear","V-shape","Level"),
c("Gaussian","Linear","V-shape","Level"),
c("Gaussian","Linear","V-shape","Level")))
colnames(PreF) = c("Distance.to.work","Price","Bedrooms","Age")
# PreferenceT
PreT<-as.data.frame(cbind(c(2,2,2,2),
c(50000,50000,50000,50000),
c(2,2,2,2),
c(5,5,5,5)))
colnames(PreT) = c("Distance.to.work","Price","Bedrooms","Age")
# IndifferenceT
IndT<-as.data.frame(cbind(c(1,1,1,1),
c(10000,10000,10000,10000),
c(0,0,0,0),
c(2,2,2,2)))
colnames(IndT) = c("Distance.to.work","Price","Bedrooms","Age")
#Weights
Weig<-as.data.frame(cbind(c(0.25,0.25,0.25,0.25),
c(0.25,0.25,0.25,0.25),
c(0.25,0.25,0.25,0.25),
c(0.25,0.25,0.25,0.25)))
colnames(Weig) = c("Distance.to.work","Price","Bedrooms","Age")
# Min_Max
MiMa<-as.data.frame(cbind(c("min","min","min","min"),
c("min","min","min","min"),
c("max","max","max","max"),
c("min","min","min","min")))
colnames(MiMa) = c("Distance.to.work","Price","Bedrooms","Age")
#S_Gauss
gauss<-as.data.frame(cbind(c(2,2,2,2),
c(0,0,0,0),
c(0,0,0,0),
c(0,0,0,0)))
colnames(gauss) = c("Distance.to.work","Price","Bedrooms","Age")
###############################
PF = PROMETHEE(dati, PreF,PreT,IndT,Weig,MiMa,gauss)
###############################
PCA_UNIC <- prcomp(PF$UnicriterionNetFlows,center = TRUE,scale. = TRUE)
GAIA=predict(PCA_UNIC)[,1:2]
rownames(GAIA)=rownames(dati)
print(GAIA)