Lectura de la base de datos depurada en codificación UTF-8.
enc_graf <- read.csv2("encuesta_graficas2.csv", enc= "utf8")
crec <- c(17, 13.1, 11.6, 8.4, 5, 3.4)
names(crec) <- c("Inst_y_apar", "Cosm_y_aseo",
"Farma", "Plastico", "Construc", "Metalme")
sub_base1 <- subset(enc_graf, select=Inst_y_apar:Metalme)
pila1 <- stack(sub_base1)
head(pila1)
## values ind
## 1 17 Inst_y_apar
## 2 17 Inst_y_apar
## 3 17 Inst_y_apar
## 4 17 Inst_y_apar
## 5 17 Inst_y_apar
## 6 17 Inst_y_apar
names(pila1) <- c("estimacion", "sector")
indrep <- rep(1:nrow(sub_base1),ncol(sub_base1))
sub_base2 <- subset(enc_graf, select = id:mayor)
pila2 <- sub_base2[indrep,]
enc_graf2 <- data.frame(pila2,pila1)
enc_graf2$sector <- factor(enc_graf2$sector,
levels = c("Inst_y_apar","Cosm_y_aseo",
"Farma","Plastico","Construc",
"Metalme"))
val_verd <- data.frame(sector = names(crec), valor = crec)
enc_graf3 <- merge(enc_graf2, val_verd)
enc_graf3 <- enc_graf3[order(enc_graf3$sector,enc_graf3$id),]
enc_graf3$ErrRel <- with(enc_graf3, (estimacion-valor)/valor*100)
# Excluyamos los casos en donde se dió el dato
enc_graf3 <- subset(enc_graf3,
!((mayor == "si" &
sector == "Inst_y_apar") |
(mayor == "no" &
sector == "Metalme")))
Resumen estadístico de la base de datos apilada y con el error relativo calculado.
summary(enc_graf3)
## sector id tipo mayor estimacion
## Inst_y_apar:25 Min. : 1.0 barras :125 no:125 Min. : 2.0
## Cosm_y_aseo:49 1st Qu.:13.0 círculos:120 si:120 1st Qu.: 6.0
## Farma :49 Median :25.0 Median :10.0
## Plastico :49 Mean :25.1 Mean :11.8
## Construc :49 3rd Qu.:37.0 3rd Qu.:14.0
## Metalme :24 Max. :50.0 Max. :95.0
## valor ErrRel
## Min. : 3.40 Min. :-60.0
## 1st Qu.: 5.00 1st Qu.: -4.0
## Median :11.60 Median : 6.9
## Mean : 9.69 Mean : 22.2
## 3rd Qu.:13.10 3rd Qu.: 22.4
## Max. :17.00 Max. :472.5
Paquete ggplo2 para el tercer conjunto de gráficas disponibles en R.
require(ggplot2)
## Loading required package: ggplot2
Inicialmente se debe construir una variable que indique la base de datos y las variables principales a graficar.
graf1 <- ggplot(enc_graf3, aes(sector, ErrRel))
Luego se le añade algún tipo de gráfica mediante alguna función que indique la geometría que quiera mostrar. Hasta el momento “graf1” no es posible graficarla porque no se le ha indicado ninguna geometría.
graf1 + geom_point() + ggtitle("Errores relativos por sector") +
ylab("Error relativo (%)") + xlab("Sector")
Se puede utilizar otra geometría que nos permita visualizar mejor el comportamiento de los datos:
graf1 + geom_jitter() + ggtitle("Errores relativos por sector") +
ylab("Error relativo (%)") + xlab("Sector")
Se puede utilizar otra geometría como la “boxplot” de la siguiente manera:
graf1 + geom_boxplot() + ggtitle("Errores relativos por sector") +
ylab("Error relativo (%)") + xlab("Sector")
Se pueden combinar geometrías como en el siguiente ejemplo:
graf1 + geom_boxplot() + geom_jitter() + ggtitle("Errores relativos por sector")+
ylab("Error relativo (%)") + xlab("Sector")
Para realizar paneles se utilizan las opciones para hacer facetas.
En este caso si la división se quiere hacer por filas se utiliza el siguiente comando.
graf1 + geom_point() + facet_grid(tipo ~ .) +
ggtitle("Errores relativos por sector y tipo") +
ylab("Error relativo (%)") +
xlab("Sector")
Si se require hacer por columnas de esta manera:
graf1 + geom_point() + facet_grid(. ~ tipo) +
ggtitle("Errores relativos por sector y tipo") +
ylab("Error relativo (%)") +
xlab("Sector") +
theme(axis.text.x=element_text(angle=90))
Si se tiene otra variable para hacer los paneles se obtiene de la siguiente manera:
graf1 + geom_point() + facet_grid(mayor ~ tipo) +
ggtitle("Errores relativos por sector, tipo y si es dado el dato mayor") +
ylab("Error relativo (%)") +
xlab("Sector") +
theme(axis.text.x=element_text(angle=90))
Se puede realizar la combinación deseadas
graf1 + geom_boxplot() + geom_jitter() + facet_grid(mayor ~ tipo) +
ggtitle("Errores relativos por sector, tipo y si es dado el dato mayor") +
ylab("Error relativo (%)") +
xlab("Sector") +
theme(axis.text.x=element_text(angle=90))
Se le puede añadir al gráfico el valor promedio de los datos.
graf1 + geom_boxplot() + geom_jitter() + facet_grid(mayor ~ tipo) +
stat_summary(fun.y=mean, geom="point", shape = 18, size = 4, col = "red") +
ggtitle("Errores relativos por sector, tipo y si es dado el dato mayor") +
ylab("Error relativo (%)") +
xlab("Sector") +
theme(axis.text.x=element_text(angle=90))
Comparemos el comportamiento de los errores relativos para cada persona.
graf2 <- ggplot(enc_graf3, aes(ErrRel))
Una estimación de la función de densidad para todos los datos.
graf2 + geom_density() +
ggtitle("Distribución del error relativo") +
ylab("Densidad") +
xlab("Error relativo (%)")
Una estimación de la función de densidad más suavizada.
graf2 + geom_density(adjust = 4) +
ggtitle("Distribución del error relativo") +
ylab("Densidad") +
xlab("Error relativo (%)")
Estimación de densidades por sector con colores y lleno la función de densidad.
graf2 + geom_density(aes(fill = sector), adjust = 4) +
ggtitle("Distribución del error relativo por sector") +
ylab("Densidad") +
xlab("Error relativo (%)")
Estimación de densidades por sector con colores y lleno transparente la función de densidad.
graf2 + geom_density(aes(fill = sector), adjust = 4, alpha = 0.25) +
ggtitle("Distribución del error relativo por sector") +
ylab("Densidad") +
xlab("Error relativo (%)")
Estimación de densidades por sector con colores sin relleno.
graf2 + geom_density(aes(col = sector), adjust = 4, size = 1) +
ggtitle("Distribución del error relativo por sector") +
ylab("Densidad") +
xlab("Error relativo (%)")
Estimación de densidades por sector con colores sin relleno.
graf2 + geom_density(aes(col = sector), adjust = 4, size = 1) +
facet_grid(mayor ~ tipo) +
ggtitle("Distribución del error relativo por sector, tipo de gráfica y si es dado el mayor") +
ylab("Densidad") +
xlab("Error relativo (%)")
Comparar comportamiento por individuo.
Hubo personas que “adivinaron” el valor verdadero?
subset(enc_graf3, ErrRel == 0)
## sector id tipo mayor estimacion valor ErrRel
## 172 Inst_y_apar 25 barras no 17.0 17.0 0
## 270 Plastico 25 barras no 8.4 8.4 0
## 274 Plastico 29 círculos no 8.4 8.4 0
## 3 Construc 3 barras si 5.0 5.0 0
## 4 Construc 4 barras si 5.0 5.0 0
## 5 Construc 5 barras si 5.0 5.0 0
## 6 Construc 6 barras si 5.0 5.0 0
## 8 Construc 8 barras si 5.0 5.0 0
## 9 Construc 9 barras si 5.0 5.0 0
## 14 Construc 14 barras no 5.0 5.0 0
## 22 Construc 22 barras no 5.0 5.0 0
## 24 Construc 24 barras no 5.0 5.0 0
## 28 Construc 28 círculos no 5.0 5.0 0
## 29 Construc 29 círculos no 5.0 5.0 0
## 46 Construc 47 círculos si 5.0 5.0 0
Obener una base con el promedio de los errores relativos
enc_grafR <- aggregate(subset(enc_graf3,select = ErrRel),
with(enc_graf3,list(id=id, tipo = tipo, mayor = mayor)), mean)
enc_grafR
## id tipo mayor ErrRel
## 1 13 barras no 5.77319
## 2 14 barras no 1.90675
## 3 15 barras no 54.25961
## 4 16 barras no -1.49026
## 5 17 barras no 68.46425
## 6 18 barras no 18.83849
## 7 19 barras no 83.55200
## 8 20 barras no -14.41996
## 9 21 barras no 11.76049
## 10 22 barras no 7.71134
## 11 23 barras no 4.81537
## 12 24 barras no -8.96688
## 13 25 barras no 3.05301
## 14 26 círculos no 100.85166
## 15 27 círculos no 323.90399
## 16 28 círculos no 1.48620
## 17 29 círculos no 0.12387
## 18 30 círculos no -23.39181
## 19 31 círculos no 5.14966
## 20 32 círculos no -47.83783
## 21 33 círculos no -43.07567
## 22 34 círculos no 52.49051
## 23 35 círculos no -12.96757
## 24 36 círculos no 69.27815
## 25 37 círculos no -40.71481
## 26 1 barras si 85.52877
## 27 2 barras si 20.65349
## 28 3 barras si 1.38988
## 29 4 barras si 4.30449
## 30 5 barras si -0.81450
## 31 6 barras si -10.37483
## 32 7 barras si 25.00913
## 33 8 barras si -7.74333
## 34 9 barras si 3.77083
## 35 10 barras si -12.59757
## 36 11 barras si 11.55535
## 37 12 barras si -24.00664
## 38 38 círculos si 11.07481
## 39 39 círculos si 34.69406
## 40 40 círculos si 32.03725
## 41 41 círculos si -1.33395
## 42 42 círculos si 43.40284
## 43 43 círculos si 106.21112
## 44 44 círculos si 11.02168
## 45 46 círculos si 46.90424
## 46 47 círculos si -0.02458
## 47 48 círculos si 32.91680
## 48 49 círculos si 23.13953
## 49 50 círculos si 30.53584
Gráfica con una visualización del comportamiento acertivo por individuo.
graf3 <- ggplot(enc_grafR, aes(tipo, ErrRel, col = mayor))
graf3 + geom_jitter() +
ggtitle("Distribución del error relativo promedio por tipo y si es dado el mayor") +
ylab("Promedio del Error Relativo (%)") +
xlab("Tipo de gráfica")
Ordenación de la base de datos por el valor absoluto de error relativo
enc_grafR <- enc_grafR[order(abs(enc_grafR$ErrRel)),]
enc_grafR$puesto <- 1:nrow(enc_grafR)
enc_grafR
## id tipo mayor ErrRel puesto
## 46 47 círculos si -0.02458 1
## 17 29 círculos no 0.12387 2
## 30 5 barras si -0.81450 3
## 41 41 círculos si -1.33395 4
## 28 3 barras si 1.38988 5
## 16 28 círculos no 1.48620 6
## 4 16 barras no -1.49026 7
## 2 14 barras no 1.90675 8
## 13 25 barras no 3.05301 9
## 34 9 barras si 3.77083 10
## 29 4 barras si 4.30449 11
## 11 23 barras no 4.81537 12
## 19 31 círculos no 5.14966 13
## 1 13 barras no 5.77319 14
## 10 22 barras no 7.71134 15
## 33 8 barras si -7.74333 16
## 12 24 barras no -8.96688 17
## 31 6 barras si -10.37483 18
## 44 44 círculos si 11.02168 19
## 38 38 círculos si 11.07481 20
## 36 11 barras si 11.55535 21
## 9 21 barras no 11.76049 22
## 35 10 barras si -12.59757 23
## 23 35 círculos no -12.96757 24
## 8 20 barras no -14.41996 25
## 6 18 barras no 18.83849 26
## 27 2 barras si 20.65349 27
## 48 49 círculos si 23.13953 28
## 18 30 círculos no -23.39181 29
## 37 12 barras si -24.00664 30
## 32 7 barras si 25.00913 31
## 49 50 círculos si 30.53584 32
## 40 40 círculos si 32.03725 33
## 47 48 círculos si 32.91680 34
## 39 39 círculos si 34.69406 35
## 25 37 círculos no -40.71481 36
## 21 33 círculos no -43.07567 37
## 42 42 círculos si 43.40284 38
## 45 46 círculos si 46.90424 39
## 20 32 círculos no -47.83783 40
## 22 34 círculos no 52.49051 41
## 3 15 barras no 54.25961 42
## 5 17 barras no 68.46425 43
## 24 36 círculos no 69.27815 44
## 7 19 barras no 83.55200 45
## 26 1 barras si 85.52877 46
## 14 26 círculos no 100.85166 47
## 43 43 círculos si 106.21112 48
## 15 27 círculos no 323.90399 49
Gráfica exploratoria.
graf4 <- ggplot(enc_grafR, aes(puesto, ErrRel, col = mayor))
graf4 + geom_point() + facet_grid(. ~ tipo) +
ggtitle("Comportamiento del promedio del error relativo") +
ylab("Promedio del Error Relativo (%)") +
xlab("Puesto en el ranking total")