
Resúmenes de información
Resumen numéricos (Variables cuantitativas)
Una parte importante en la estadística descriptiva, son las medidas estadísticas que tienen por objetivo resumir la información contenida en un conjunto de datos, en pocos valores números que representan diferentes características. Estas medidas estadísticas nos darán información sobre la situación, dispersión, forma, asociación que posee un conjunto de datos de manera que sea posible captar rápidamente la estructura de los mismos.
Una alternativa para presentar la información que aportan las medidas estadísticas, sin tener que realizar el cálculo de cada una de forma individual, es mediante el empleo de resúmenes numéricos, los cuales permiten presentar de forma simple, ordenada y simultanea las diferentes medidas que representan el comportamiento de un conjunto de datos.
Resumen numérico individual
Entre las diferentes funciones que permiten realizar resúmenes numéricos en R, se destaca la función describe() de la librería psych, que presentan diferentes medidas estadísticas para variables tipo numéricas.
Suponga que se desea realizar un resumen numérico de la variable areavenuni (Área total vendible por unidad). En este caso podríamos emplear la función describe() especificando las variables que se desean calcular.
Resumen numérico individual
library(psych)
# resumen numérico mediante librería psych
describe(datos$areavenuni, ranges = TRUE, trim = 0.1, type = 3, quant = c(0.25, 0.75),
IQR = TRUE)
vars n mean sd median trimmed mad min max range skew kurtosis
1 1 86148 124.81 100.08 92 106.83 54.86 11 3792 3781 4.15 51.58
se IQR Q0.25 Q0.75
1 0.34 88 62 150
Resumen numérico por grupos
También es posible realizar resúmenes numérico por grupos, en donde, se busca tomar una variable cuantitativa, y discriminarla por una variable cualitativa. Para ello, es posible emplear la función describeBy de la librería psych, la cual permite establecer una variable de tipo numerica, y agrupar los resultados por los niveles de una variable tipo factor.
Suponga que se desea realizar un resumen numérico de la variable areavenuni (Área total vendible por unidad), discriminando por la variable estrato (estrato socioeconómico de un espacio geográfico). En este caso podríamos emplear la función describeBy() especificando las variables que se desean calcular, de la forma.
Resumen numérico por grupos
# resumen numérico por grupos mediante librería psych
describeBy(x = datos$areavenuni, group = datos$estrato, ranges = TRUE, trim = 0.1,
type = 3, quant = c(0.25, 0.75), IQR = TRUE)
Descriptive statistics by group
group: 1
vars n mean sd median trimmed mad min max range skew kurtosis se
1 1 11171 87.75 52.11 72 79.03 31.13 11 780 769 2.43 10.96 0.49
IQR Q0.25 Q0.75
1 50 55 105
------------------------------------------------------------
group: 2
vars n mean sd median trimmed mad min max range skew kurtosis
1 1 25852 106.79 69.75 81 95.42 47.44 15 1350 1335 2.14 10.8
se IQR Q0.25 Q0.75
1 0.43 82 58 140
------------------------------------------------------------
group: 3
vars n mean sd median trimmed mad min max range skew kurtosis
1 1 28138 115.84 80.18 85 101.5 45.96 12 1160 1148 2.02 6.64
se IQR Q0.25 Q0.75
1 0.48 83 61 144
------------------------------------------------------------
group: 4
vars n mean sd median trimmed mad min max range skew kurtosis se
1 1 12452 134.54 78.46 115 122.55 57.82 18 800 782 2.14 7.78 0.7
IQR Q0.25 Q0.75
1 81 81 162
------------------------------------------------------------
group: 5
vars n mean sd median trimmed mad min max range skew kurtosis
1 1 5011 187.58 133.89 146 165.24 83.03 21 1400 1379 2.33 8.42
se IQR Q0.25 Q0.75
1 1.89 131 100 231
------------------------------------------------------------
group: 6
vars n mean sd median trimmed mad min max range skew kurtosis
1 1 3524 322.35 222.87 290 293.41 184.58 31 3792 3761 3.34 28.14
se IQR Q0.25 Q0.75
1 3.75 248.25 162 410.25
Resumen tabular (Variables cualitativas)
Una forma convencional de presentar resúmenes de variables cualitativas, es mediante la construcción de tablas de frecuencias, las cuales permiten presentar de forma individual (una vía) algunas de las características que poseen las variables cualitativas, o de forma conjunta (dos vías) algunas de las características que comparten dichas variables.
Tabla de frecuencias absolutas
Para presentar de forma individual o grupal las características de las variables, puede ser empleada la función table() de la base de R, la cual agrega la información presentada en de las variables de una forma simple, mediante una tabla que presenta el número (frecuencia absoluta) de observaciones que pertenecen a una categoría. Se aconseja que los datos usados dentro de la función table() sean de tipo factor.
Las tablas de frecuencia pueden ser construida en una o dos vías, es decir, las tablas pueden presentar la frecuencia absoluta de una sola variable, o presentar la frecuencia absoluta del cruce entre dos variables.
Resumen tabular individual
Para ilustrar su empleo, suponga que se desea observar el estado en el cual se encontraron las obras al momento de realizar el censo (estado\(\_\)act). Al ser una sola variable, se emplea la función table() de la forma
# tabla de frecuencias absolutas una vía
Tunavia <- table(datos$estado_act)
Tunavia
Proceso ParalizadaInfC CulminadaInfC ParalizadaInfI CulminadaInfI
78355 4196 1251 2324 21
Demolida
1
Resumen tabular dos variables
Ahora suponga, que se desea observar el cruce que hay entre el año en que se realizó el censo (ano\(\_\)censo) y el estado actual en el cual se encontraron las obras al momento de realizar el censo (estado\(\_\)act). En éste caso, al ser dos variables, se emplea la función table() de la forma.
# tabla de frecuencias absolutas doble vía
Tdosvias <- table(datos$ano_censo, datos$estado_act)
Tdosvias
Proceso ParalizadaInfC CulminadaInfC ParalizadaInfI CulminadaInfI
2012 9025 114 14 524 0
2013 12637 108 3 385 3
2014 12551 81 18 251 0
2015 12612 102 14 274 1
2016 10577 176 5 289 0
2017 11472 793 163 321 2
2018 9481 2822 1034 280 15
Demolida
2012 0
2013 0
2014 0
2015 0
2016 0
2017 1
2018 0
Tabla de frecuencias relativas
Una alternativa para presentar la información contenida dentro de las variables cualitativas, es mediante la presentación de tablas de frecuencias relativas, las cuales muestran el valor porcentual al que equivale una categoría específica.
Para la realización de tablas de frecuencias relativas, se emplea la función prop.table(tabla) de base de R, en donde tabla hace referencia a la tabla de frecuencias absolutas creada en la subsección anterior.
Resumen tabular individual
Para ilustrar su empleo, suponga que se desea observar el valor porcentual para los diferentes estados en el cual se encontraron las obras al momento de realizar el censo (estado\(\_\)act). Al ser una sola variable, la función prop.table() se emplea de la siguiente forma
# tabla de frecuencias relativas una vía
Punavia <- prop.table(Tunavia)
Punavia
Proceso ParalizadaInfC CulminadaInfC ParalizadaInfI CulminadaInfI
0.90953939732 0.04870687654 0.01452152110 0.02697683057 0.00024376654
Demolida
0.00001160793
Resumen tabular individual
En el mismo hílo, suponga que se desea observar en valores porcentuales, el cruce que hay entre el año en que se realizó el censo (ano\_censo) y el estado actual en el cual se encontraron las obras al momento de realizar el censo (estado\_act). En éste caso, al ser dos variables, la función prop.table() debe emplearse de la siguiente manera
# tabla de frecuencias relativas doble vía
Pdosvias <- prop.table(Tdosvias)
Pdosvias
Proceso ParalizadaInfC CulminadaInfC ParalizadaInfI CulminadaInfI
2012 0.10476157311 0.00132330408 0.00016251103 0.00608255560 0.00000000000
2013 0.14668941821 0.00125365650 0.00003482379 0.00446905326 0.00003482379
2014 0.14569113618 0.00094024237 0.00020894275 0.00291359057 0.00000000000
2015 0.14639921995 0.00118400891 0.00016251103 0.00318057297 0.00001160793
2016 0.12277708130 0.00204299577 0.00005803965 0.00335469193 0.00000000000
2017 0.13316617913 0.00920508892 0.00189209268 0.00372614570 0.00002321586
2018 0.11005478943 0.03275757998 0.01200260018 0.00325022055 0.00017411896
Demolida
2012 0.00000000000
2013 0.00000000000
2014 0.00000000000
2015 0.00000000000
2016 0.00000000000
2017 0.00001160793
2018 0.00000000000
Análisis gráfico
Otro aspecto importante del análisis descriptivo, es el que se realiza mediante análisis gráfico. El análisis gráfico es una forma de simplificar lo tedioso y complejo de un conjunto de observaciones, además de ser una forma más accesible de presentación de la información cuando se tienen muchas variables, puesto que permiten mostrar el comportamiento de los datos presentados, y hacer juicios respecto a su tendencia central, variabilidad, formas, patrones, tendencias, etc.
El análisis gráfico, puede ser dividido en
- Gráficos para variables cuantitativa
- Gráficos para variables cualitativas
- Gráficos para cruces entre variables cuantitativas y cualitativas
En la siguiente tabla se hace un resumen de qué gráficos pueden ser apropiados para usar en cada uno de los casos
Una variable Cuantitativa
Gráfico de caja y bigotes
Este gráfico sirve para presentar de forma visual, datos numéricos a través de sus cuartiles, además de presentar otras características importantes, tales como el valor de los cuartiles, dispersión, simetría y datos potencialmente atípicos.
Representación de un Gráfico de Caja y Bigotes
Este gráfico puede ser realizado mediante la función boxplot() de la librería graphics de la base del R.
Gráfico de caja y bigotes individual
Suponga que se desea presentar de forma visual, el comportamiento de la variable que corresponde al grado de avance de la obra en contrucción (gradoavanc) a partir de el comportamiento de los cuartiles. Para ello, podemos emplear la función boxplot() de la forma
# Construcción de gráfico de caja y bigotes
boxplot(datos$gradoavanc, horizontal = T, xlab = "Porcentaje de avance (%)", main = "Boxplot del Grado de Avance de la Obra",
col = "lightblue")
Histograma
Este gráfico muestra la distribución de frecuencia o densidades del grupo de observaciones, brinda información sobre el valor más probables, la dispersión, la asimetría y valores extremos. Adicionalmente, tiene la ventaja de que su interpretación es muy intuitiva y por tanto es de los gráficos más preferidos para resumir información. Este gráfico puede ser realizado mediante la función hist() de la librería graphics de la base del R.
Histograma
Suponga que se desea presentar mediante un histograma, el comportamiento de la variable que corresponde al precio de venta por \(m^2\) del inmueble (preciovtax). Para ello, podemos emplear la función hist() de la forma
## Construcción de histograma
hist(datos$preciovtax, main = "Histograma del Precio de venta por M2", xlab = "Precio (en miles de pesos)",
col = 8)
Densidad
Este gráfico funciona similar al histograma de densidades, con la diferencia de que en lugar de mostrar la distribución mediante clases (barras), éste muestra el comportamiento de la distribución de las observaciones mediante una curva. Dicha curva, brinda mayor información que el histograma respecto al valor promedio, dispersión y asimetría. Este gráfico puede ser realizado mediante la combinación de las funciones plot() y density(), de la forma plot(density()), siendo plot() y density() funciones de las librerías graphics y stats de la base de R.
Adicionalmente se presenta la función polygon de la librería graphics de la base de R, la cual sirve para generar formas, o en este caso, darle color a la densidad.
Densidad
Suponga que se desea presentar la densidad, de la variable que corresponde al área total vendible por unidad (areavenuni). Para ello, podemos emplear la función hist() de la forma
## Construcción de la densidad
plot(density(datos$areavenuni, na.rm = T), main = "Gráfico de Densidad para Area Total Vendible",
xlab = "Área Total Vendible", lwd = 2)
# Colorea la densidad
polygon(density(datos$areavenuni, na.rm = T), col = 3)
Dos variables Cuantitativas
Diagrama de dispersión
Este gráfico se emplea para hacer cruces entre dos variables cuantitativas, y sirve para ver tendencias y relaciones entre dos variables cuantitativas, además de permitir apreciar donde se centra el total de observaciones, y detección de datos atípicos dados dos atributos cuantitativos. Este gráfico puede ser realizado mediante la función plot() de la librería graphics de la base del R.
Diagrama de dispersión
Para entender la forma en que se aplica un diagrama de dispersión, suponga que se quiere observar, si éxiste alguna relación entre el área del lote donde se construye la obra o proyecto (area\(\_\)lote) y el precio de venta por \(m^2\) (preciovtax). Para ello, podemos emplear la función plot() de la forma.
## Construcción del diagrama de dispersión
plot(x = datos$area_lote, y = datos$preciovtax, xlab = "Área del Lote", ylab = "Precio de venta (m2)",
main = "Relación entre Área del Lote y Precio de venta m2", pch = 19)
Más de dos variables Cuantitativas
Matriz de dispersión
Cuando se poseen más de dos variables cuantitativas, es posible presentar un matriz que muestre el cruce entre pares de variables, mediante cuadros con versiones simples de la función plot(). Este gráfico puede ser realizado mediante la función pairs() de la librería graphics de la base de R.
Matriz de dispersión
Para ello, suponga que se desea observar la relación que hay entre las variables, área del lote donde se construye la obra o proyecto (area\(\_\)lote), porcentaje de avance de la obra en contrucción (gradoavanc) y área total vendible por unidad (areavenuni). Para ello empleamos la función pairs() de la forma.
## Matríz de dispersión básica
pairs(cbind(datos$area_lote, datos$gradoavanc, datos$areavenuni), labels = c("Área Lote",
"Porcentaje de Avance", "Área Total Vendible"))
Funciones complementarias pueden ser desarrolladas para mejorar la visualización los pares de variables. En el libro de Hernández & Correa (2018, pp. 40–49), se presentan diferentes funciones que pueden ser implementadas. Entre ellas la siguiente función
## Matríz de dispersión avanzada Función para dibujar la dispersión y agregar la
## recta de regresión
panel.reg <- function(x, y) {
points(x, y, pch = 20)
abline(lm(y ~ x), lwd = 2, col = "dodgerblue2")
}
# Función para crear el histograma
panel.hist <- function(x, ...) {
usr <- par("usr")
on.exit(par(usr))
par(usr = c(usr[1:2], 0, 1.5))
h <- hist(x, plot = FALSE)
breaks <- h$breaks
nB <- length(breaks)
y <- h$counts
y <- y/max(y)
rect(breaks[-nB], 0, breaks[-1], y, col = "dodgerblue2", ...)
}
# Función para obtener la correlación
panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor) {
usr <- par("usr")
on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
r <- abs(cor(x, y))
txt <- format(c(r, 0.123456789), digits = digits)[1]
txt <- paste(prefix, txt, sep = "")
if (missing(cex.cor))
cex <- 0.8
text(0.5, 0.5, txt, cex = cex)
}
pairs(cbind(datos$area_lote, datos$gradoavanc, datos$areavenuni), labels = c("Área Lote",
"Porcentaje de Avance", "Área Total Vendible"), upper.panel = panel.reg, diag.panel = panel.hist,
lower.panel = panel.cor)
Una Variable Cualitativa
Gráfico de barras
Sirve para resumir una variable cualitativa mediante barras de frecuencias absolutas o relativas. Éste permite observar la concentración de observaciones en una o más categorías diferentes. Este gráfico puede ser realizado mediante la función barplot() de la librería graphics de la base de R.
Gráfico de barras una variable
Para ilustrar su empleo, suponga que se desea observar el estado en el cual se encontraron las obras al momento de realizar el censo (estado\(\_\)act). En este caso, la función barplot() se emplea de la siguiente forma.
# Gráfico de barras
tabla1 <- table(datos$estado_ac)
barplot(tabla1, main = "Estado en el cual se encontraron las obras al momento del censo",
col = hcl.colors(6))
Gráfico de pareto
Este gráfico es similar al gráfico de barras para una sola variable cualitativa, pero con la ventaja de que presenta las frecuencias absolutas, relativas, y las frecuencias acumuladas absolutas y acumuladas relativas en el mismo gráfico. Este gráfico puede ser realizado mediante la función pareto.chart() de la librería qqc.
Gráfico de pareto
Para ilustrar su empleo, suponga que se desea observar el estrato socioeconómico en donde se está realizado la obra (estrato). Al ser una sola variable, la función pareto.chart() se emplea de la siguiente forma.
library(qcc)
# Gráfico de pareto
tabla2 <- table(datos$estrato)
pareto.chart(tabla2, main = "Gráfico Pareto por Estrato")
Pareto chart analysis for tabla2
Frequency Cum.Freq. Percentage Cum.Percent.
3 28138.000000 28138.000000 32.662395 32.662395
2 25852.000000 53990.000000 30.008822 62.671217
4 12452.000000 66442.000000 14.454195 77.125412
1 11171.000000 77613.000000 12.967219 90.092631
5 5011.000000 82624.000000 5.816734 95.909365
6 3524.000000 86148.000000 4.090635 100.000000
Gráfico de pastel
Este gráfico también sirve para representar gráficamente las tablas de frecuencias absolutas y relativas para una variable cualitativa. A pesar de ser un gráfico muy usado en la práctica, no muestra bien la información que se desea presentar, ya que siempre debe estar acompañado de los porcentajes o frecuencias que representa cada área, ya que no hacerlo, dicho gráfico puede ser muy engañoso.
Este gráfico puede ser realizado mediante la función pie() de la librería graphics de la base de R, y donde, para establecer etiquetas de los porcentajes o frecuencias de cada área, puede establecerse mediante la función legend() de la librería graphics de la base de R.
Gráfico de pastel
Empleamos la variable del estado en que se encuentra la obra (movimiento) para ilustrar el empleo del gráfico de pastel. En dicho caso, la estructura de la función pie() y legend() será de la forma.
# Gráfico de pastel una variable de frecuencias absolutas
tabla3 <- prop.table(table(datos$movimiento))
pie(tabla3, main = "Estado en que se encuentra la obra", col = cm.colors(6))
legend("topleft", legend = paste0(names(tabla3), " (", round(tabla3, 4), ")"), fill = cm.colors(6),
cex = 0.8)
Dos Variables Cualitativas
Gráfico de barras
El gráfico de barras también sirve para resumir dos variable cualitativa mediante barras de frecuencias absolutas o relativas. La interpretación, será la misma que para una sola variable cualitativa, con la diferencia de que en este caso, se podrán hacer comparaciones por categorías adicionales. Este gráfico puede ser realizado mediante la función barplot() de la librería graphics de la base de R, junto a la función legend(), para establecer las etiquetas asociadas a cada una de las barras que se presenten en el gráfico.
Gráfico de barras dos variables
Para ilustrar su empleo, suponga que se desea observar el estado en el cual se encontraron las obras al momento de realizar el censo (estado\(\_\)act), respecto a si la obra cuenta o no con licencia (ob\(\_\)formal). En este caso, la función barplot() se emplea junto a la función legend() de la siguiente forma.
# Gráfico de barras
tabla4 <- table(datos$estado_ac, datos$ob_formal)
barplot(tabla4, main = "Estado de la obra respecto a si la obra cuenta o no con licencia",
col = hcl.colors(6), beside = T)
legend("topright", rownames(tabla4), fill = topo.colors(6), cex = 0.8)
Gráfico de balón
El gráfico de balón, suele ser un gráfico más avanzado para resumir dos variable cualitativa, en donde se establecen en el cruce de las dos variables, círculos que se asocian al tamaño del cruce de las dos variables cualitativas. Este gráfico puede ser realizado mediante la función ggballoonplot() de la librería ggpubr, la cual depende de la librería ggplot2.
Gráfico de balón
Para ilustrar el empleo de la función, suponga que se desea observar el estado en el cual se encontraron las obras al momento de realizar el censo (estado\(\_\)act), respecto al estado en que se encuentra la obra (movimiento). En este caso, la función ggballoonplot() puede emplearse de la forma.
library(ggplot2)
library(ggpubr)
theme_set(theme_pubr())
# Gráfico de balón
tabla5 <- data.frame(table(datos$estado_ac, datos$movimiento))
ggballoonplot(tabla5, fill = "value") + scale_fill_viridis_c(option = "C")
Cruce entre Variables Cualitativas y Cuantitativas
Gráfico de caja y bigotes
Este gráfico sirve para presentar de forma visual, datos numéricos por categorías a través de sus cuartiles, además de presentar otras características importantes, tales como la dispersión, simetría y datos potencialmente atípicos. Este gráfico puede ser realizado mediante la función boxplot() de la librería graphics de R.
Gráfico de caja y bigotes por grupos
Suponga que se tiene interés en realizar un cruce entre la variable cualitativa que indica si la obra cuenta o no con licencia (ob\(\_\)formal) y la variable cuantitativa del grado de avance de la obra (gradoavanc). Para ello, puede emplearse el gráfico de caja y bigotes de la forma.
# Construcción de gráfico de caja y bigotes por categorías
boxplot(datos$gradoavanc ~ datos$ob_formal, horizontal = T, xlab = "Grado de avance",
ylab = "Posee licencia?", main = "Grado de avance respecto a la posesión de licencia",
col = terrain.colors(2))
Gráfico de medias
Este gráfico sirve para presentar de forma visual, grupos de datos numéricos a través de sus media y desviación estándar. El gráfico está compuesto por un punto que representa el valor promedio del grupo de observaciones y las barras representan dos desviación estándar de la media. En donde, si las barras no se superponen, entonces se tendrá evidencia sólida respecto a que la media de los grupos es diferente.
Gráfico de medias
Este gráfico puede ser realizado mediante la función plotMeans() de la librería RcmdrMisc. Y para ilustrar su empleo, suponga que se desea observar área total vendible (areavendib), respecto al rango de vivienda calculado (ranvivi). Ésto se puede realizar mediante la forma.
library(RcmdrMisc)
## Construcción de diagrama de caja y bigotes por categorías Recordar escribir en
## error.bars = 'conf.int' porque por defecto se presenta un intervalo para el
## error estándar y no para dos desviaciones estándar.
plotMeans(response = datos$areavendib, factor1 = datos$ranvivi, error.bars = "conf.int",
xlab = "Área total vendible", ylab = "Rangos de vivienda", main = "Área vendible respecto a rangos de vivienda")