Objetivo

Determinar medidas estadísticas de localización media, mediana, moda, máximos mínimos y rango de un conjunto de datos usando funciones de R.

Descripción

El proceso de este caso permite identificar las medidas de localización de media, mediana, moda, máximos, mínimos, rango y el significado de las mismas para interpretar si una distribución de datos es simétrica o asimétrica.

Primero se presenta como determinar los estadísticos manualmente por medio de programación y luego se identifica como determinar estos mismos valores estadísticos de manera más sencilla por medio de funciones que existen en los paquete base de R para media y mediana y funciones de librerías instaladas para la moda.

En el proceso, los datos se visualizan por medio de la librería ggplot previamente instalada, el gráfico que se muestra es el histograma con lineas verticales que representan la media, mediana y moda.

Finalmente se hace una interpretación del caso identificando la simetría o asimetría del mismo.

Marco teórico

El software estadístico moderno como el lenguaje de programación R, permite el cálculo de medias, medianas, desviaciones estándar entre otros estadísticos, así como la construcción y visualización de gráficas que presenten una “huella digital” de la naturaleza de la muestra. En un conjunto de datos las medidas de posición están diseñadas para ayudar al analista alguna medida cuantitativa de dónde está el centro de los datos en una muestra.

La media

La media significa el promedio o la suma de todos los elementos divididos entre el total de la muestra, o lo que es lo mismo es un promedio de todos los elementos.

La media proporciona una medida de localización central de los datos. Si los datos son datos de una muestra, la media se denota \(\bar{x}\); si los datos son datos de una población, la media se denota con la letra griega \(\mu\).

Media aritmética

Se muestra el código para determinar la media, sumando cada elemento y dividiendo entre el número de elementos que contiene la muestra.

Se construyen los valores de la muestra a partir de un vector llamado datos.

El contexto de los datos puede ser, edades, medidas de peso en kgs. de algún producto, velocidades de andar en bicicleta u otros contexto en donde existan valores similares.

Se simulan datos de edades de personas.

datos <- c(40,60,50,45,65,70,95,90,45,60,43,56, 65, 80, 45, 70, 45, 75, 45, 54, 35, 46, 47, 50, 50, 60, 50, 50, 65, 50, 50, 22, 54, 68, 70, 46, 54, 55, 50, 55, 40, 68, 76, 56, 55, 45, 50, 43, 46, 47, 70, 24, 34, 54,43, 34, 45, 45, 45, 45)
datos
##  [1] 40 60 50 45 65 70 95 90 45 60 43 56 65 80 45 70 45 75 45 54 35 46 47 50 50
## [26] 60 50 50 65 50 50 22 54 68 70 46 54 55 50 55 40 68 76 56 55 45 50 43 46 47
## [51] 70 24 34 54 43 34 45 45 45 45
n <- length(datos)
paste("Cantidad de elmentos de la muestra =", n)
## [1] "Cantidad de elmentos de la muestra = 60"
sum(datos) / n
## [1] 53.16667
paste("Una forma tradicional de sacar la media", round(sum(datos) / n, 2))
## [1] "Una forma tradicional de sacar la media 53.17"

Media en R

En R la función mean() determina la media de un conjunto de datos, por ejemplo edades de doce personas adultos y adultos mayores, las pregunta son: ¿cuántos datos hay en la muestra?, ¿cuál es la media de los datos? y ¿que representa la media?.

La función round() redondea posiciones decimales.

media <- round(mean(datos),2)
paste("Usando mean(), para determinar la media de los datos =", media)
## [1] "Usando mean(), para determinar la media de los datos = 53.17"

Mediana con R

La manera más sencilla en R para determinar la mediana es mediante la función median(), la cual simplemente regresa el valor central de los datos ordenados, independientemente si el valor de \(n\) es par o impar, de hecho debe intuirse que el código de la fórmula está encapsulado en la función median().

mediana <- median(datos)
print(mediana)
## [1] 50

Moda con table()

Se puede utilizar la función table() para encontrar las frecuencias y posteriormente ordenar tabla tal vez descendentemente y el valor del conjunto de datos de frecuencias de la primera posición será la moda. Algunas veces hay dos o tres valores que se repite en el mismo número de ocasiones o que tienen la misma frecuencia, entonces hay que verificar si el conjunto de datos es bimodal o multimodal.

frecuencias <- table(datos)
frecuencias.ordenada <- frecuencias[order(frecuencias, decreasing = TRUE)]
frecuencias.ordenada
## datos
## 45 50 54 70 43 46 55 60 65 34 40 47 56 68 22 24 35 75 76 80 90 95 
## 10  9  4  4  3  3  3  3  3  2  2  2  2  2  1  1  1  1  1  1  1  1
moda <- frecuencias.ordenada[1]
moda
## 45 
## 10

Moda con mfv(x)

Otra alternativa es utilizar la librería o el paquete modeest; antes que nada deberá instalar el paquete install.packages(“modeest”) , luego, se podrá cargar la librería con library(modest).

library(modeest)
moda <- mfv(datos)
moda
## [1] 45

Posiciones relativas de la media, la mediana y la moda

En cualquier distribución, cuando la la moda, la mediana y la media son iguales se interpreta como una distribución simétrica; si los valores de media, moda y mediana son diferentes, por el contrario será asimétrica si si los valores de media y mediana son diferentes.

La siguiente imagen muestra como se pueden presentar las gráficas conforme y de acuerdo al histograma y a su curva de densidad.

Cargar la librería ggplot

library(ggplot2)

data.frame de los datos

Las siguiente lineas permiten crear un conjunto de datos data.frame a partir del vector de datos. Esto transformación de datos tiene la finalidad de tratar con data.frame en lugar de vector y es más práctico para efecto de visualización de datos con ggplot().

df.datos <- data.frame(datos)
df.datos
##    datos
## 1     40
## 2     60
## 3     50
## 4     45
## 5     65
## 6     70
## 7     95
## 8     90
## 9     45
## 10    60
## 11    43
## 12    56
## 13    65
## 14    80
## 15    45
## 16    70
## 17    45
## 18    75
## 19    45
## 20    54
## 21    35
## 22    46
## 23    47
## 24    50
## 25    50
## 26    60
## 27    50
## 28    50
## 29    65
## 30    50
## 31    50
## 32    22
## 33    54
## 34    68
## 35    70
## 36    46
## 37    54
## 38    55
## 39    50
## 40    55
## 41    40
## 42    68
## 43    76
## 44    56
## 45    55
## 46    45
## 47    50
## 48    43
## 49    46
## 50    47
## 51    70
## 52    24
## 53    34
## 54    54
## 55    43
## 56    34
## 57    45
## 58    45
## 59    45
## 60    45

Histograma de los datos

ggplot(data = df.datos, mapping = aes(x = datos)) +
  geom_histogram(bins = 30) +
  ggtitle('Histograma de datos') +
  xlab('Valores') + ylab('Frecuencia') 

Referencia media , mediana y moda

titulo <- "Histograma de los datos"
subtitulo <- paste("Media=",media, " Mediana = ",mediana, " Moda=",moda)
ggplot(data = df.datos, mapping = aes(x=datos)) +
  geom_histogram(bins=30) +
  ggtitle(titulo, subtitle = subtitulo) +
  xlab('Valores') + ylab('Frecuencia') +
  geom_vline(aes(xintercept = media,
                  color = "media"),
              linetype = "dashed",
              size = 1)  +
   geom_vline(aes(xintercept = mediana,
                  color = "mediana"),
              linetype = "dashed",
              size = 1) +
   geom_vline(aes(xintercept = moda,
                  color = "moda"),
              linetype = "dashed",
              size = 1) 

if (media > mediana) {
  mensaje <- "De acuerdo y conforme a la gráfica la distribución es asimétrica con sesgo positivo dado que la media es mayor que la mediana."
} else if (media < mediana) {
    mensaje <- "De acuerdo y conforme a la gráfica la distribución es asimétrica con sesgo negativo dado que la media es menor que la mediana."
} else if (media == mediana & mediana == moda) {
  "De acuerdo y conforme a la gráfica la distribución es simétrica dado que la media es igual a la median y a la moda."
}

Mínimo y máximos

Los valores máximos y mínimos de un conjunto de dato son los valores de la lista de valores más pequeños y mas grande en la lista de los datos. Se puede observar los valores máximos y mínimos con los datos ordenados y verificar el primer y último elemento de la lista. Se utiliza el vector de datos ordenados.

max(datos)
## [1] 95
min(datos)
## [1] 22

Rango

El rango de un conjunto de datos es el intervalo que existe entre los valores, es decir desde el valor mínimo hasta el valor máximo.

Con los valores de máximo y mínimo la diferencia que existe entre ellos determina el rango.

max(datos) - min(datos)
## [1] 73

Con la función range() en R, se obtiene los valores máximos y mínimos y con estos se obtiene el rango con la función diff()

range(datos)
## [1] 22 95
diff(range(datos))
## [1] 73

Cuartiles

Los cuartiles son una herramienta que se usa en estadística y que sirve para administrar grupos de datos previamente ordenados.

Los cuartiles son los tres valores de la variable que dividen a un conjunto de datos ordenados en cuatro partes iguales.

cuartiles <- quantile(datos, c(0.25, 0.50, 0.75))
cuartiles
## 25% 50% 75% 
##  45  50  60

##Diagrama de caja

El diagrama de caja representa los cuartiles de los datos e identifica los valores considerados outliers o valores extremos.

Diagrama de caja con la función ggplot() que requiere librería ggplot2

ggplot()+
  geom_boxplot(aes(x = datos))

Función summary()

Existe una función en R llamada summary() muy utilizada que describe y presenta la mayoría de los estadísticos citados para caso; identifica los valores mínimo, máximo, media y mediana de un conjunto de datos.

summary(datos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   22.00   45.00   50.00   53.17   60.00   95.00

Interpretación

La cantidad de elementos de los datos es de 60, los valores máximos y mínimos están en un rango de 73 siendo los valores máximo y mínimos 95.

La media es de 53.17, la mediana es 50 y la moda es 45, habiendo alguna diferencia en donde la media es mayor que la mediana la distribución es asíncrona con sesgo positivo.