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
#Replicando resultados en Charnes, Cooper and Rhodes (1981)
options(scipen = 99999)
library(deaR)
## Warning: package 'deaR' was built under R version 4.3.3
PFT1981 <- deaR::PFT1981
PFT <- PFT1981 [1:49,]
PFT <- make_deadata (PFT,
                     inputs = 2:6,
                     outputs = 7:9)
modelo_dea <- model_basic (PFT,
                           orientation = "io",
                           rts = "crs")
eff <- efficiencies(modelo_dea)
resultados <- data.frame(round(eff,2)*100,round(1-eff,2)*100)
names(resultados) <- c("E","1-E")
resultados
##          E 1-E
## Site1  100   0
## Site2   90  10
## Site3   99   1
## Site4   90  10
## Site5  100   0
## Site6   91   9
## Site7   89  11
## Site8   91   9
## Site9   87  13
## Site10 100   0
## Site11  98   2
## Site12  97   3
## Site13  86  14
## Site14  98   2
## Site15 100   0
## Site16  95   5
## Site17 100   0
## Site18 100   0
## Site19  95   5
## Site20 100   0
## Site21 100   0
## Site22 100   0
## Site23  96   4
## Site24 100   0
## Site25  98   2
## Site26  94   6
## Site27 100   0
## Site28  94   6
## Site29  84  16
## Site30  90  10
## Site31  84  16
## Site32  91   9
## Site33  94   6
## Site34  85  15
## Site35 100   0
## Site36  80  20
## Site37  86  14
## Site38  97   3
## Site39  94   6
## Site40 100   0
## Site41  95   5
## Site42  95   5
## Site43  87  13
## Site44 100   0
## Site45  89  11
## Site46  91   9
## Site47 100   0
## Site48 100   0
## Site49 100   0
# Ordenar los resultados de mayor a menor eficiencia
resultados_ordenados <- resultados[order(-resultados$E),]
print(resultados_ordenados)
##          E 1-E
## Site1  100   0
## Site5  100   0
## Site10 100   0
## Site15 100   0
## Site17 100   0
## Site18 100   0
## Site20 100   0
## Site21 100   0
## Site22 100   0
## Site24 100   0
## Site27 100   0
## Site35 100   0
## Site40 100   0
## Site44 100   0
## Site47 100   0
## Site48 100   0
## Site49 100   0
## Site3   99   1
## Site11  98   2
## Site14  98   2
## Site25  98   2
## Site12  97   3
## Site38  97   3
## Site23  96   4
## Site16  95   5
## Site19  95   5
## Site41  95   5
## Site42  95   5
## Site26  94   6
## Site28  94   6
## Site33  94   6
## Site39  94   6
## Site6   91   9
## Site8   91   9
## Site32  91   9
## Site46  91   9
## Site2   90  10
## Site4   90  10
## Site30  90  10
## Site7   89  11
## Site45  89  11
## Site9   87  13
## Site43  87  13
## Site13  86  14
## Site37  86  14
## Site34  85  15
## Site29  84  16
## Site31  84  16
## Site36  80  20
# Calcular la oportunidad de mejora promedio para las unidades ineficientes
unidades_ineficientes <- resultados_ordenados[resultados_ordenados$E < 100,]
oportunidad_mejora_promedio <- mean(unidades_ineficientes$`1-E`)
cat("Oportunidad de mejora promedio para las unidades ineficientes: ", round(oportunidad_mejora_promedio, 2), "%\n")
## Oportunidad de mejora promedio para las unidades ineficientes:  8.44 %