This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
JERARQUIA DE SUMA
library(magrittr)
#Vector de Jerarquías
rj<-c(4,2,5,1,3)
names(rj)<-c("X1","X2","X3","X4","X5")
#Función para generar los pesos
ponderadores_subjetivos_rank_suma<-function(vector_jerarquias){
n<-length(vector_jerarquias)
vector_pesos<-n-vector_jerarquias+1
list(w_brutos=vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la función:
pesos_ranking_suma<-ponderadores_subjetivos_rank_suma(rj)
#Pesos brutos
pesos_ranking_suma$w_brutos
## X1 X2 X3 X4 X5
## 2 4 1 5 3
#Pesos normalizados
pesos_ranking_suma$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4 X5
## 0.133 0.267 0.067 0.333 0.200
#Gráfico de los pesos normalizados
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking de Suma",
ylim = c(0,0.5),col = "red")
JERARQUIA RECIPROCA
library(magrittr)
#Vector de Jerarquías
rj<-c(4,2,5,1,3)
names(rj)<-c("X1","X2","X3","X4","X5")
#Función para generar los pesos
ponderadores_subjetivos_rank_reciproco<-function(vector_jerarquias){
vector_pesos<-1/vector_jerarquias
list(w_brutos=vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la función:
pesos_ranking_reciproco<-ponderadores_subjetivos_rank_reciproco(rj)
#Pesos brutos
pesos_ranking_reciproco$w_brutos
## X1 X2 X3 X4 X5
## 0.2500000 0.5000000 0.2000000 1.0000000 0.3333333
#Pesos normalizados
pesos_ranking_reciproco$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4 X5
## 0.109 0.219 0.088 0.438 0.146
#Gráfico de los pesos normalizados
barplot(pesos_ranking_reciproco$w_normalizados,
main = "Ponderadores Ranking Recíproco",
ylim = c(0,0.5),col = "green")
JERARQUIA EXPONENCIAL
library(magrittr)
#Vector de Jerarquías
rj<-c(4,2,5,1,3)
names(rj)<-c("X1","X2","X3","X4","X5")
#Función para generar los pesos
ponderadores_subjetivos_rank_exponencial<-function(vector_jerarquias,p=2){
n<-length(vector_jerarquias)
vector_pesos<-(n-vector_jerarquias+1)^p
list(w_brutos=vector_pesos,w_normalizados=vector_pesos/sum(vector_pesos))
}
#Aplicando la función:
pesos_ranking_exponencial<-ponderadores_subjetivos_rank_exponencial(rj)
#Pesos brutos
pesos_ranking_exponencial$w_brutos
## X1 X2 X3 X4 X5
## 4 16 1 25 9
#Pesos normalizados
pesos_ranking_exponencial$w_normalizados %>% round(digits = 3)
## X1 X2 X3 X4 X5
## 0.073 0.291 0.018 0.455 0.164
#Gráfico de los pesos normalizados (por default p=2)
barplot(pesos_ranking_suma$w_normalizados,
main = "Ponderadores Ranking Exponencial",
ylim = c(0,0.5),col = "coral")
#Comparación de valores de "p"
par(mfrow=c(1,3))
for(p in 2:4){
pesos<-ponderadores_subjetivos_rank_exponencial(vector_jerarquias = rj,p = p)
barplot(pesos$w_normalizados,main = paste0("p=",p),ylim = c(0,0.7),col = "coral",cex.main=3,cex.axis = 3)
}
PONDERACION POR COMPARACIONES DE PARES
library(FuzzyAHP)
## Loading required package: MASS
#####################
valores_matriz_comparacion = c(1,4,7,
NA,1,5,
NA,NA,1)
matriz_comparacion<-matrix(valores_matriz_comparacion,
nrow = 3, ncol = 3, byrow = TRUE)
matriz_comparacion<-pairwiseComparisonMatrix(matriz_comparacion)
matriz_comparacion@variableNames<-c("price","slope","view")
show(matriz_comparacion)
## An object of class "PairwiseComparisonMatrix"
## Slot "valuesChar":
## [,1] [,2] [,3]
## [1,] "1" "4" "7"
## [2,] "1/4" "1" "5"
## [3,] "1/7" "1/5" "1"
##
## Slot "values":
## [,1] [,2] [,3]
## [1,] 1.0000000 4.0 7
## [2,] 0.2500000 1.0 5
## [3,] 0.1428571 0.2 1
##
## Slot "variableNames":
## [1] "price" "slope" "view"
# Cálculo de los pesos:
pesos_normalizados = calculateWeights(matriz_comparacion)
show(pesos_normalizados)
## An object of class "Weights"
## Slot "weights":
## w_price w_slope w_view
## 0.68708616 0.24374097 0.06917288
barplot(pesos_normalizados@weights,
main = "Ponderadores por comparación de pares",
ylim = c(0,0.7),col = "blue")