Lectura de la base de datos depurada en codificación UTF-8.

# Lectura
enc_graf <- read.csv2("encuesta_graficas2.csv", enc= "utf8")
# Asignación de valores originales.
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")
crec
## Inst_y_apar Cosm_y_aseo       Farma    Plastico    Construc     Metalme 
##        17.0        13.1        11.6         8.4         5.0         3.4

Construcción de una nueva base de datos reconfigurada para facilitar la graficación.

# Seleccionar las columnas de las estimaciones.
sub_base1 <- subset(enc_graf, select=Inst_y_apar:Metalme)
# Apilar la información para facilitar su menejo.
pila1 <- stack(sub_base1)
# Muestra los primero 6 datos de la nueva base de datos.
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
# Renombrar las variables de la base de datos
names(pila1) <- c("estimacion", "sector")
# De nuevo los primeros 6 datos de la nueva base de datos.
head(pila1)
##   estimacion      sector
## 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
# Repetir la infomración tantas veces como son las columnas
# de la base que se apiló.
indrep <- rep(1:nrow(sub_base1),ncol(sub_base1))
# Crear una nueva pila con la información que se debe repetir
sub_base2 <- subset(enc_graf, select = id:mayor)
pila2 <- sub_base2[indrep,]
# Juntar las dos bases de datos para obtener una nueva base de datos
# con un formato distinto.
enc_graf2 <- data.frame(pila2,pila1)
# Los primero 6 registros de la nueva base de datos
head(enc_graf2)
##   id   tipo mayor estimacion      sector
## 1  1 barras    si         17 Inst_y_apar
## 2  2 barras    si         17 Inst_y_apar
## 3  3 barras    si         17 Inst_y_apar
## 4  4 barras    si         17 Inst_y_apar
## 5  5 barras    si         17 Inst_y_apar
## 6  6 barras    si         17 Inst_y_apar

Reordenación de los niveles del sector

# Ordenación actual
levels(enc_graf2$sector)
## [1] "Construc"    "Cosm_y_aseo" "Farma"       "Inst_y_apar" "Metalme"    
## [6] "Plastico"
# Reordenación
enc_graf2$sector <- factor(enc_graf2$sector,
                           levels = c("Inst_y_apar","Cosm_y_aseo",
                                      "Farma","Plastico","Construc",
                                      "Metalme"))
# Niveles reordenados
levels(enc_graf2$sector)
## [1] "Inst_y_apar" "Cosm_y_aseo" "Farma"       "Plastico"    "Construc"   
## [6] "Metalme"

Comparaciones gráficas con las estimaciónes de cada uno de los sectores de acuerdo a tipo de gráfica utilizado

op <- par(no.readonly = TRUE)
par(mar = op$mar + c(5, 0, 0, 0))
with(subset(enc_graf2,tipo == "barras" & mayor == "si"),
     plot(sector, estimacion, las = 2, notch = TRUE,
          main = "Barras con el dato mayor"))
## Warning: some notches went outside hinges ('box'): maybe set notch=FALSE
segments(1:6-0.2,crec,1:6+0.2,crec, col = "blue", lwd = 2)

plot of chunk unnamed-chunk-4

with(subset(enc_graf2,tipo == "barras" & mayor == "no"),
     plot(sector, estimacion, las = 2, notch = TRUE,
          main = "Barras con el dato menor"))
## Warning: some notches went outside hinges ('box'): maybe set notch=FALSE
segments(1:6-0.2,crec,1:6+0.2,crec, col = "blue", lwd = 2)

plot of chunk unnamed-chunk-4

with(subset(enc_graf2,tipo == "círculos" & mayor == "si"),
     plot(sector, estimacion, las = 2, notch = TRUE,
          main = "Círculos con el dato mayor"))
## Warning: some notches went outside hinges ('box'): maybe set notch=FALSE
segments(1:6-0.2,crec,1:6+0.2,crec, col = "blue", lwd = 2)

plot of chunk unnamed-chunk-4

with(subset(enc_graf2,tipo == "círculos" & mayor == "no"),
     plot(sector, estimacion, las = 2, notch = TRUE,
          main = "Círculos con el dato menor"))
## Warning: some notches went outside hinges ('box'): maybe set notch=FALSE
segments(1:6-0.2,crec,1:6+0.2,crec, col = "blue", lwd = 2)

plot of chunk unnamed-chunk-4

par(op)

Se puede utilizar otra forma de graficar en R utilizando la bibloteca de funciones o el paquete “lattice”

require(lattice)
## Loading required package: lattice
xyplot(estimacion ~ sector | tipo * mayor, data = enc_graf2,
       scales=list(x=list(rot=45)), pch = 19)

plot of chunk unnamed-chunk-5

Es una forma independiente (no se intercabia con la graficación básica de R) de graficación y tiene elementos más versátiles.

Por ejemplo si se quiere observar si cada individuo (una línea para cada individuo) fue consistente con su sobre estimación o subestimación.

require(lattice)
xyplot(estimacion ~ sector | tipo * mayor, data = enc_graf2,
       scales=list(x=list(rot=45)), pch = 19, group = id,
       type = c("l", "p"))

plot of chunk unnamed-chunk-6

Para mejorar la visualización se puede llevar a logaritmo la variable respuesta.

require(lattice)
xyplot(log10(estimacion) ~ sector | tipo * mayor, data = enc_graf2,
       scales=list(x=list(rot=45)), pch = 19, group = id,
       type = c("l", "p"))

plot of chunk unnamed-chunk-7

Constucción de una base de datos con los valores verdaderos

val_verd <- data.frame(sector = names(crec), valor = crec)
val_verd
##                  sector valor
## Inst_y_apar Inst_y_apar  17.0
## Cosm_y_aseo Cosm_y_aseo  13.1
## Farma             Farma  11.6
## Plastico       Plastico   8.4
## Construc       Construc   5.0
## Metalme         Metalme   3.4

Mezclar esta nueva base de datos con la base de datos completa

enc_graf3 <- merge(enc_graf2, val_verd)
head(enc_graf3)
##     sector id   tipo mayor estimacion valor
## 1 Construc  1 barras    si       10.1     5
## 2 Construc  2 barras    si        7.0     5
## 3 Construc  3 barras    si        5.0     5
## 4 Construc  4 barras    si        5.0     5
## 5 Construc  5 barras    si        5.0     5
## 6 Construc  6 barras    si        5.0     5
# Ordenar la base de datos por el id y el sector.
enc_graf3 <- enc_graf3[order(enc_graf3$sector,enc_graf3$id),]

Calcular el error relativo de cada estimación.

enc_graf3$ErrRel <- with(enc_graf3, (estimacion-valor)/valor*100)
head(enc_graf3)
##          sector id   tipo mayor estimacion valor ErrRel
## 148 Inst_y_apar  1 barras    si         17    17      0
## 149 Inst_y_apar  2 barras    si         17    17      0
## 150 Inst_y_apar  3 barras    si         17    17      0
## 151 Inst_y_apar  4 barras    si         17    17      0
## 152 Inst_y_apar  5 barras    si         17    17      0
## 153 Inst_y_apar  6 barras    si         17    17      0

Gráfica con el error relativo.

require(lattice)
xyplot(ErrRel ~ sector | tipo * mayor, data = enc_graf3,
       scales=list(x=list(rot=45)), pch = 19, group = id,
       type = c("l", "p"))

plot of chunk unnamed-chunk-11

Gráfica con el error relativo desde otro punto de vista.

require(lattice)
xyplot(ErrRel ~ tipo | sector * mayor, data = enc_graf3,
       scales=list(x=list(rot=45)), pch = 19,
       type = c("p"))

plot of chunk unnamed-chunk-12

Gráfica con el error relativo desde otro punto de vista, con línea de referencia.

require(lattice)
xyplot(ErrRel ~ tipo | sector * mayor, data = enc_graf3,
       scales=list(x=list(rot=45)), pch = 19,
       type = c("p"),
       panel = function(x, y, ... ) {
         panel.xyplot(x, y, ...)
         panel.abline(h = 0, col= "black")
       } )

plot of chunk unnamed-chunk-13