En la práctica 2 aprendimos a representar y analizar variables cualitativas por medio de diagramas de barras. En esta práctica aprenderemos a representar y analizar variables cuantitativas por medio de histogramas y a calcular las medidas de tendencia central y dispersión más adecuadas.
Después de realizar con éxito esta práctica serás capaz de:
La función que nos permite construir un histograma en R es hist( x, … ), donde x es el vector de valores que representa la serie de datos de interés. Los puntos suspensivos indican que se pueden fijar algunos parámetros adicionales.
Una de las habilidades fundamentales para el desarrollo del pensamiento estadístico es identificar la simetría de una distribución de datos.
Copie el siguiente código y ejecútelo. Esto generará un histograma aproximadamente simétrico.
serie1 <- c(9.87,9.9,10.32,9.77,10.4,10.1,10.11,9.91,9.92,9.86,10.28,9.62,10.13,10.05,9.89,10.57,9.8,10.29,9.86,10.3,10.2,9.97,9.56,10.34,10.18,10.14,10.21,9.9,9.82,10.23,10.35,10.26,9.94,9.47,10.46,10.09,9.88,9.67,9.66,9.84,10.05,9.56,10.14,9.4,10.01,10.02,9.64,9.9,9.82,10.1,9.83, 9.73, 10.11, 10.01,9.92,10.74,10.29,10.02,9.68,9.96,9.79,9.82,9.98,9.79,9.44,10.05,10.01,9.73,10.12,9.36,10.04,9.9,9.92,9.8,9.68,9.49,10.03,10.33,9.72,9.83)
hist(serie1,main="Histograma para la Variable serie1",probability=TRUE,xlim = c(9,11),ylab = "Densidad",col="lightgray")
La forma del histograma sugiere que la distribución es aproximadamente simétrica. Es importante recalcar que la simetría perfecta raras veces se da en la realidad (algunos autores proponen que la simetría perfecta no existe) por eso, diremos que la distribución es aproximadamente simétrica. Ejecute el siguiente código varias veces hastas que obtenga el “big picture” de cómo luce una distribución aproximadamente simétrica.
datos_simetricos <- rnorm(100,10,0.3)
hist(datos_simetricos, main="Histograma para la Variable serie1",probability = TRUE,ylab = "Densidad",col="lightgray",xlim = c(9,11))
curve(dnorm(x,10,0.3),add=TRUE,lwd="3")
Copie el siguiente código y ejecútelo
serie3 <- c(0.88, 0.91, 0.88, 0.90, 0.88, 0.89, 0.88, 0.80, 0.91, 0.69, 0.79, 0.88, 0.77, 0.80, 0.93, 0.72, 0.94, 0.92, 0.76, 0.96, 0.82, 0.90, 0.75, 0.79, 0.87, 0.79, 0.93, 0.79, 0.84, 0.94, 0.87, 0.82, 0.96, 0.79, 0.81, 0.91, 0.92, 0.90, 0.88, 0.90, 0.94, 0.87, 0.93, 0.89, 0.86, 0.84, 0.94, 0.84, 0.92, 0.96, 0.85, 0.80, 0.92, 0.88, 0.80, 0.88, 0.79, 0.82, 0.95, 0.95, 0.74, 0.87, 0.94, 0.96, 0.85, 0.87, 0.92, 0.87, 0.83, 0.86, 0.88, 0.85, 0.88, 0.93, 0.99, 0.93, 0.95, 0.87, 0.94, 0.95, 0.77, 0.87, 0.87, 0.92, 0.92, 0.87, 0.90, 0.92, 0.85, 0.86, 0.86, 0.88, 0.85, 0.87, 0.81, 0.75, 0.93, 0.93, 0.93, 0.74)
hist(serie3,main="Histograma para la Variable Serie3",probability=TRUE,xlim = c(0.6,1),ylab = "Densidad",col="lightgray")
La forma del histograma sugiera que la distribución de datos presenta un sesgo a la izquierda.
Para distribuciones aproximadamente simétricas usamos la media y la desviación estándar para medir el centro y la variabilidad de la distribución de datos. en R, usamos las funciones mean() para calcular la media, var() para la varianza y sd() para la desviación estándar. Si queremos encontrar las medidas de tendencia central y despersión para la siguiente serie de datos, procedemos de la siguiente manera:
10.12, 9.35, 11.11, 13.82, 12.28, 12.16, 9.93, 11.24, 12.56, 12.03, 14.55, 15.07, 12.54, 11.04, 13.41, 12.02, 15.03, 10.55, 11.39, 10.59, 15.76, 13.81, 10.72, 13.82, 11.22, 13.68, 13.36, 13.63, 12.24, 12.88, 12.01, 12.14, 13.09, 12.25, 10.53, 11.51, 11.31
datos1 <- c(10.12, 9.35, 11.11, 13.82, 12.28, 12.16, 9.93, 11.24, 12.56, 12.03, 14.55, 15.07, 12.54, 11.04, 13.41, 12.02, 15.03, 10.55, 11.39, 10.59, 15.76, 13.81, 10.72, 13.82, 11.22, 13.68, 13.36, 13.63, 12.24, 12.88, 12.01, 12.14, 13.09, 12.25, 10.53, 11.51, 11.31)
hist(datos1,main = "Verificando simetría", col = "#8C8C8C")
mean(datos1)
## [1] 12.29054
sd(datos1)
## [1] 1.535442
Para describir distribuciones sesgadas usamos la mediana y el IQR para medir el centro y la variabilidad de la distribución de datos. En R, usamos las funciones median() para calcular la media, IQR() para el recorrido intercuartílico (o rango intercuartil). Si queremos encontrar las medidas de tendencia central y despersión para la siguiente serie de datos, procedemos de la siguiente manera:
0.63, 0.86, 0.88, 0.59, 0.82, 0.68, 0.54, 0.83, 0.89, 0.80, 0.79, 0.67, 0.55, 0.35, 0.96, 0.71, 0.96, 0.90, 0.75, 0.62, 0.97, 0.71, 0.92, 0.82, 0.90, 0.90, 0.57, 0.81, 0.93, 0.66, 0.42, 0.68, 0.46, 0.74, 0.66
datos2 <- c(0.63, 0.86, 0.88, 0.59, 0.82, 0.68, 0.54, 0.83, 0.89, 0.80, 0.79, 0.67, 0.55, 0.35, 0.96, 0.71, 0.96, 0.90, 0.75, 0.62, 0.97, 0.71, 0.92, 0.82, 0.90, 0.90, 0.57, 0.81, 0.93, 0.66, 0.42, 0.68, 0.46, 0.74, 0.66)
hist(datos2,main="Verificando simetría",col = "#8C8C8C")
median(datos2)
## [1] 0.75
IQR(datos2)
## [1] 0.24
Para poder comparar la variabilidad entre dos series de datos aproximadamente simétricas y con unidades diferentes calculamos el coeficiente de variación \(C{_{var}}=\frac{s}{\overline{x}}\) para cada distribución y luego comparamos sus valores. Si ya tienen las mismas unidades podemos comparar las desviaciones estándar directamente.
Por ejemplo, suponga que en la siguiente tabla se muestran las notas de dos alumnos para la asigntura de probabilidad y estadística:
Alumno A: 4 5 5 4 6 7 8 9 3 9
Alumno B: 5 6 6 6 7 7 6 5 7 5
¿Para cuál de los alumnos la variabilidad en las notas es menor?
Como estamos analizando las mismas unidades (notas de ambos alumnos), simplemente comparamos ambas desviaciones estándar:
notasA <- c(4,5,5,4,6,7,8,9,3,9)
notasB <- c(5,6,6,6,7,7,6,5,7,5)
sd(notasA)
## [1] 2.160247
sd(notasB)
## [1] 0.8164966
Por lo que concluimos que la variabilidad del alumno B es menor que la del alumo A.
En el caso de datos con unidades diferentes calculamos los coefientes de variación. Por ejemplo, suponga que las notas del Alumno A se comparan con los tiempos invertidos en contestar los exámenes por un grupo de estudiantes (en horas): 2,3,4,2,4,3,5,2,2,5,6,1,3,2. ¿Cuál serie de datos tiene menor variabilidad?
Como se trata de series con distintas unidades, calculamos los coeficientes de variación para ambas series de datos
notasA <- c(4,5,5,4,6,7,8,9,3,9)
tiempos <- c(2,3,4,2,4,3,3,2,2,4,3,1,3,2)
cv_1 <- sd(notasA)/mean(notasA)
cv_2 <- sd(tiempos)/mean(tiempos)
cv_1
## [1] 0.3600411
cv_2
## [1] 0.3366902
Concluimos que los tiempos usados en contestar los exámenes tienen una menor variabilidad que las notas obtenidas por el alumno A.
Cuando la cantidad de datos es poca (menos de 30) no es conveniente usar histogramas para visualizar la distribución de datos. En estos casos se recomiendo utilizar los diagramas de puntos (stripcharts) o diagramas de tallo y hojas.
Por ejemplo, considere la siguiente serie de datos: 13.2, 10.0, 8.1, 8.8, 9.0, 7.9, 3.3, 5.9, 15.4, 17.4. Una forma de visualizar la distribución de esta serie de datos es la siguiente:
serie <- c(13.2, 10.0, 8.1, 8.8, 9.0, 7.9, 3.3, 5.9, 15.4, 17.4, 5.9, 8.1,5.9)
stripchart(serie, pch = 21, lwd = 2)
A partir del gráfico, se nota que la distribución de los datos es aproximadamente simétrica. Esta función admite el parámetro method. Este se puede fijar en tres posibles valores: overplot (por defecto), stack y jitter. Verifica cuál es el efecto de cambiar este parámetro a estos valores. En caso de que se desee marcar la ubicación de la media o mediana puede utilizarse las funciones points() o abline().
serie <- c(13.2, 10.0, 8.1, 8.8, 9.0, 7.9, 3.3, 5.9, 15.4, 17.4, 5.9, 8.1,5.9)
stripchart(serie, pch = 21, lwd = 2)
x <- mean(serie)
points(x, 1, col = "blue", pch = 25, lwd = 2) #pch puede tomar valores de 1 a 25
Otra forma de visualizar esta misma serie de datos es con un diagrama de tallo y hojas (stem).
serie2 <- c(10,15,17,13,13,12,18,20,19,14,22,32,35)
stem(serie2)
##
## The decimal point is 1 digit(s) to the right of the |
##
## 1 | 023345789
## 2 | 02
## 3 | 25
Este tipo de diagrama se asemeja a un pequeño histograma horizontal que incluso resulta fácil de elaborar a mano. Para leer los datos, por jemplo, la segunda linea “2 | 02” hace referencia a las lecturas 20 y 22.