Title: | 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 Evaluations). |
Authors: | Giuliano Resce, Menelaos Tasiou, Francesco Vidoli |
Maintainer: | Francesco Vidoli <[email protected]> |
License: | GPL-3 |
Version: | 1.1 |
Built: | 2024-11-01 04:08:43 UTC |
Source: | https://github.com/cran/PROMETHEE |
The dataset is provided by the AEA accounts (Air Emissions Account) collected yearly by EUROSTAT for the seven-year period 2008-2015. AEA accounts report emissions assigned to the country according to the residence principle (i.e. the residence of the operator causing the emission). The list of pollutants included in the analysis embraces 10 air pollutants that are particularly harmful for human health and environmental balance when highly concentrated in the atmosphere (see Caravaggio et al. 2019)
data(Austria)
data(Austria)
Caravaggio, N., Caravella, S., Ishizaka, A., & Resce, G. (2019). Beyond CO2: a multi-criteria analysis of air pollution in Europe. Journal of Cleaner Production.
Nicola Caravaggio, Serenella Caravella, Alessio Ishizaka, Giuliano Resce, Francesco Vidoli
https://doi.org/10.1016/j.jclepro.2019.02.115
data(Austria)
data(Austria)
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)
PROMETHEE(dataset, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss)
PROMETHEE(dataset, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss)
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) |
Thanks are extended to Salvatore Greco, Alessio Ishizaka, and Gianpiero Torrisi for helpful comments
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) |
Giuliano Resce, Menelaos Tasiou, Francesco Vidoli
# 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)
# 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)
Functions which can be used to support the Multicriteria Decision Analysis (MCDA) process involving multiple criteria, by a specific tool allowing joining the consolidated procedure usually employed for environmental evaluation (PROMETHEE), with a more flexible weighing process inspired by DEA
PROMETHEE_OW(dataset,PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss,dir)
PROMETHEE_OW(dataset,PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss,dir)
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) |
dir |
An element specifying whether the optimization should be "Optimistic" or "Pessimistic" |
Caravaggio, N., Caravella, S., Ishizaka, A., & Resce, G. (2019). Beyond CO2: a multi-criteria analysis of air pollution in Europe. Journal of Cleaner Production.
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) |
Res |
DEA weights and global score |
Giuliano Resce, Menelaos Tasiou, Francesco Vidoli
data(Austria) PreferenceF= matrix("Level",nrow(Austria),ncol(Austria) ) PreferenceT=matrix(0,nrow(Austria),ncol(Austria) ) IndifferenceT=matrix(0,nrow(Austria),ncol(Austria) ) Weights=matrix(1,nrow(Austria),ncol(Austria) ) Min_Max=matrix("min",nrow(Austria),ncol(Austria) ) S_Gauss=matrix(0,nrow(Austria),ncol(Austria) ) PF=PROMETHEE_OW(Austria, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss, "Optimistic") PF$Res PF=PROMETHEE_OW(Austria, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss, "Pessimistic") PF$Res
data(Austria) PreferenceF= matrix("Level",nrow(Austria),ncol(Austria) ) PreferenceT=matrix(0,nrow(Austria),ncol(Austria) ) IndifferenceT=matrix(0,nrow(Austria),ncol(Austria) ) Weights=matrix(1,nrow(Austria),ncol(Austria) ) Min_Max=matrix("min",nrow(Austria),ncol(Austria) ) S_Gauss=matrix(0,nrow(Austria),ncol(Austria) ) PF=PROMETHEE_OW(Austria, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss, "Optimistic") PF$Res PF=PROMETHEE_OW(Austria, PreferenceF,PreferenceT,IndifferenceT,Weights,Min_Max,S_Gauss, "Pessimistic") PF$Res