IN2039: Visualización de Datos
Departamento de Ingeniería Industrial
Enfocarnos en 1 variable numérica.
Introducción al ejemplo
Resúmenes estadísticos
Gráficas de variables numéricas
Un pistón es un dispositivo mecánico presente en la mayoría de los motores.
Una medida del rendimiento de un pistón es el tiempo que lleva en completar un ciclo, lo cual llamamos “tiempo de ciclo” y se mide en segundos.
El archivo “CYLT.xlsx” contiene 50 tiempos de ciclo de un pistón operado en condiciones de funcionamiento fijas.
Aquí usaremos las librerías ggplot2
, ggformula
, readxl
, y dplyr
.
Carguémoslas en Google Colab y R antes de comenzar.
En Google Colab, el archivo “CYLT.xlsx” debe de estar en la carpeta llamada “content” o “contenido.”
En R, los datos numéricos se llaman dbl
.
# A tibble: 6 × 1
cycle_time
<dbl>
1 1.01
2 1.10
3 1.12
4 0.423
5 1.02
6 1.07
Vemos que R si reconoce nuestros datos correctamente.
Nos ayuda a resumir un conjunto de observaciones de una manera simple.
Los resúmenes estadísticos más utilizados para datos numéricos son:
Indica el centro de las observaciones.
Para calcularlo, considera \(n\) observaciones denotadas como \(y_1, y_2, \ldots, y_n\).
El promedio es
\[\bar{y} = \frac{1}{n}\sum_{i=1}^{n} y_i = \frac{y_1 + y_2 + \cdots + y_n}{n}.\]
En R, el promedio se calcula usando las funciones summarise()
y mean()
.
Interpretación: En promedio, el pistón tarda 0.652 segundos en completar un ciclo.
Indica que tan dispersos están las observaciones.
Para calcularla, considera \(n\) observaciones denotadas usando \(y_1, y_2, \ldots, y_n\) . La varianza es
\[ s^2 = \frac{1}{n-1} \sum_{i=1}^{n} (y_i - \bar{y})^2 = \frac{(y_1 - \bar{y})^2 + \cdots + (y_n - \bar{y})^2}{n-1} \]
Es como un promedio de las diferencias al cuadrado entre las observaciones y el promedio.
En R, la varianza se calcula usando las funciones summarise()
y var()
.
Interpretación: La varianza de los tiempos de ciclo del pistón es 0.139.
Entre mas grande la varianza, mayor la dispersión de los datos alrededor del promedio (centro).
Desafortunadamente, la varianza no está en las mismas unidades que las observaciones, ya que las diferencias entre cada observación y el promedio se elevan al cuadrado.
Por ejemplo, el promedio es 0.652 segundos mientras que la varianza es 0.139 segundos\(^2\).
Para obtener una medida de dispersión cuyas unidades sean las mismas que las de las observaciones, tomamos la raíz cuadrada de la varianza:
\[ s = \left(\frac{1}{n-1} \sum_{i=1}^{n} (y_i - \bar{y})^2 \right)^{1/2} \]
Esta es la desviación estándar, que esta en las mismas unidades que las observaciones. Es como la distancia promedio entre las observaciones y el promedio.
En R, la desviación estándar se calcula usando las funciones summarise()
y sd()
.
Interpretación: En promedio, un pistón tarda 0.652 segundos en completar un ciclo, con una diferencia de mas o menos 0.373 segundos.
O, la diferencia promedio entre los tiempos de ciclo de un pistón y su tiempo promedio es de 0.373 segundos.
La mediana es el número medio de las observaciones ordenadas de menor a mayor.
Los cuartiles dividen las observaciones en cuatro partes. Existen tres de ellos:
El primer cuartil (\(Q_1\)) es la mediana de la mitad inferior de las observaciones.
El segundo cuartil (\(Q_2\)) es la mediana de las observaciones.
El tercer cuartil (\(Q_3\)) es la mediana de la mitad superior de las observaciones.
Los percentiles también se conocen como quantiles.
En R, la mediana se calcula con las funciones summarise()
y median()
.
Interpretación: El 50% de los tiempos de ciclo del pistón es menor que 0.546 segundos.
Los cuartiles se calculan con las funciones quantile()
y reframe()
. Como la función quantile da 5 valores, es mejor usar reframe()
que summarise()
en este caso summarise()
trabaja con funciones cuya salida es un valor.
# Define los quantiles.
mis.quantiles = c(0.25, 0.5, 0.75)
# Calcula los quantiles de los datos.
piston_data %>%
reframe("Value" = quantile(cycle_time, mis.quantiles)) %>%
mutate("Quantile" = mis.quantiles)
# A tibble: 3 × 2
Value Quantile
<dbl> <dbl>
1 0.305 0.25
2 0.546 0.5
3 1.07 0.75
Interpretación: El 25%, 50% y 75% de los tiempos de ciclo del pistón es menor que 0.305, 0.546 y 1.07 segundos, respectivamente.
Otros estadísticos relevantes son el máximo y el mínimo, que se calculan con las funciones max()
y min()
, respectivamente.
Interpretación: El tiempo de ciclo máximo del pistón es 1.14 segundos.
Interpretación: El tiempo de ciclo mínimo del pistón es 0.175 segundos.
También podemos usar la función summary()
para dar un vistazo rápido a los quartiles de una variable.
El promedio y la mediana estiman el valor central de los datos de diferentes maneras.
El promedio es la suma de los valores dividido por el total.
La mediana es el valor central de un conjunto de datos ordenado.
El promedio se usa cuando los datos están distribuidos de manera simétrica o uniforme y no hay valores atípicos significativos.
Por ejemplo, la estatura de una muestra grande de personas en una población homogénea.
La mediana se usa cuando cuando hay valores atípicos que podrían sesgar la media.
Por ejemplo:
Ingresos anuales de los hogares en un país (donde hay pocos multimillonarios que distorsionan la media).
Precio de viviendas en una ciudad (donde unas pocas propiedades muy caras pueden inflar la media).
Una empresa fabricante de pernos de retención de condensadores para motores de automóviles implementó un sistema de control de calidad. Como parte de este sistema de control de calidad, un equipo de ingenieros decidió registrar la cantidad de pernos no conformes producidos en cada turno.
El archivo bolts.xlsx
contiene la cantidad de pernos no conformes durante los últimos 45 turnos.
15:00
Formula la pregunta de interés.
Las preguntas típicas sobre una variable numérica \(X\) son:
¿Cuál es la forma de las observaciones de la variable \(X\)?
¿Existen observaciones inusuales o atípicas en la variable \(X\)?
¿La forma de las observaciones de la variable \(X\) se parece a una campana?
Transforma los datos en información.
Dos tipos comunes de gráficas para visualizar una variable numérica son:
Básicamente, son maneras distintas de visualizar la “forma” o distribución de la variable.
Visualiza la distribución de las observaciones, indicando regiones donde las observaciones están concentradas o son escasas.
Se construye usando una tabla de frecuencia.
R calcula automáticamente la tabla de frecuencia para datos numéricos. El histograma es una visualización de esta tabla.
En ggplot2
, puedes construir un histograma usando el siguiente comando.
Para transmitir un mejor mensaje, aplicamos el Principio 3: Aplica los principios de diseño gráfico.
Con datos categóricos, la gráfica de barras se parece al histograma porque presenta la frecuencia de las categorías.
Sin embargo, no podemos interpretar la forma la gráfica de barras igual que un histograma.
La frecuencia de una categoría está representada por la altura de la barra y el ancho no contiene información.
Una gráfica de barras no te señalará valores atípicos.
Este se fija usando el argumento bins
en la función gf_histogram()
.
El histograma izquierdo usa bins = 5
y el histograma derecho usa bins = 30
.
En este curso, usaremos el número de bins
dado por default.
La distribución normal es una distribución de probabilidad muy importante en estadística.
Se caracteriza por tener una forma de campana simétrica alrededor de su media, con la mayor densidad de probabilidad centrada en la media y disminuyendo simétricamente hacia los extremos.
Básicamente, si tus observaciones siguen una distribución normal, puedes utilizar métodos estadísticos para sacar conclusiones fundamentadas por teoría matemática.
Lo que mucha gente no sabe es que esta condición se necesita solo si tienes pocas observaciones (menos de 50).
Una gráfica de caja nos ayuda a visualizar la distribución de las observaciones usando cuartiles.
Es muy efectiva para detectar “valores atípicos”.
Un componente importante de la gráfica es el rango intercuartil (IQR), que es la diferencia entre el tercer cuartil y el primer cuartil (\(Q_3 - Q_1\)).
El rango intercuartil es la distancia necesaria para abarcar la mitad media de los datos.
Conoce más en esa liga https://towardsdatascience.com/why-1-5-in-iqr-method-of-outlier-detection-5d07fdc82097
Para construir una gráfica de caja, utiliza la función gf_boxplot()
.
Tiene la syntaxis especial: cycle_time ~ 1
. Si usas ~ cycle_time
, obtendrás la gráfica de caja en horizontal.
El archivo bolts.xlsx
contiene la cantidad de pernos no conformes durante los últimos 45 turnos. Usando R, crea las siguientes gráficas
Tecnológico de Monterrey