La estadística descriptiva se encarga de analizar, resumir y presentar los resultados de un conjunto de datos, ya sea de una muestra o de toda la población.Se divide en tres categorías principales: distribución de frecuencias, medidas de tendencia central y medidas de variabilidad.
Su propósito es estructurar y representar la información contenida en los datos de manera concisa. Ayuda a comprender las características de un conjunto de datos ofreciendo resúmenes breves sobre la muestra y las medidas de los datos.
Una de las categorías de la estadística descriptiva, se utiliza para representar la frecuencia o el recuento de diferentes resultados en un conjunto de datos o muestras. Se presenta típicamente en forma de tabla o gráfico, mostrando el recuento de valores en intervalos específicos. Esto permite una presentación más organizada de los datos agrupados según clases mutuamente excluyentes y el número de ocurrencias en cada clase respectiva. Los gráficos más comunes utilizados incluyen gráficos de barras, histogramas, gráficos circulares y gráficos de líneas.
Ejemplo de cómo generar una tabla de distribución de frecuencias y un histograma en R Markdown.
# Cargando datos de ejemplo
datos <- c(23, 45, 56, 34, 67, 78, 56, 45, 23, 56, 78, 90, 12, 34, 56)
# Calculando la tabla de distribución de frecuencias
tabla_frecuencias <- table(datos)
# Mostrando la tabla de distribución de frecuencias
print(tabla_frecuencias)
## datos
## 12 23 34 45 56 67 78 90
## 1 2 2 2 4 1 2 1
# Generando el histograma
hist(datos,
main = "Histograma de datos",
xlab = "Valor",
ylab = "Frecuencia",
col = "skyblue",
border = "black")
Para ilustrar el uso de las funciones se utilizará una base de datos llamada medidas del cuerpo, esta base de datos cuenta con 6 variables registradas a un grupo de 36 estudiantes de la universidad. Las variables son:
edad del estudiante (años), peso del estudiante (kilogramos), altura del estudiante (centímetros), sexo del estudiante (Hombre, Mujer), muneca: perímetro de la muñeca derecha (centímetros), biceps: perímetro del biceps derecho (centímetros).
A continuación se presenta el código para definir la url donde están los datos, para cargar la base de datos en R y para mostrar por pantalla un encabezado (usando head) de la base de datos.
url <- 'https://raw.githubusercontent.com/fhernanb/datos/master/medidas_cuerpo'
datos <- read.table(file=url, header=T)
head(datos) # Para ver el encabezado de la base de datos
## edad peso altura sexo muneca biceps
## 1 43 87.3 188.0 Hombre 12.2 35.8
## 2 65 80.0 174.0 Hombre 12.0 35.0
## 3 45 82.3 176.5 Hombre 11.2 38.5
## 4 37 73.6 180.3 Hombre 11.2 32.2
## 5 55 74.1 167.6 Hombre 11.8 32.9
## 6 33 85.9 188.0 Hombre 12.4 38.5
Para calcular la media de una variable cuantitativa se usa la función mean. Los argumentos básicos de la función mean son dos y se muestran a continuación.
mean(x, na.rm = FALSE) En el parámetro x se indica la variable de interés para la cual se quiere calcular la media, el parámetro na.rm es un valor lógico que en caso de ser TRUE, significa que se deben remover las observaciones con NA, el valor por defecto para este parámetro es FALSE.
Ejemplo Suponga que queremos obtener la altura media del grupo de estudiantes.
Para encontrar la media general se usa la función mean sobre el vector númerico datos$altura.
mean(x=datos$altura)
## [1] 171.5556
Del anterior resultado podemos decir que la estatura media o promedio de los estudiantes es 171.5555556 centímetros.
Ejemplo Suponga que ahora queremos la altura media pero diferenciando por sexo.
Para hacer esto se debe primero dividir o partir el vector de altura según los niveles de la variable sexo, esto se consigue por medio de la función split y el resultado será una lista con tantos elementos como niveles tenga la variable sexo. Luego a cada uno de los elementos de la lista se le aplica la función mean con la ayuda de sapply o tapply. A continuación el código completo para obtener las alturas medias para hombres y mujeres.
sapply(split(x=datos$altura, f=datos$sexo), mean)
## Hombre Mujer
## 179.0778 164.0333
El resultado es un vector con dos elementos, vemos que la altura media para hombres es 179.0777778 centímetros y que para las mujeres es de 164.0333333 centímetros.
¿Qué sucede si se usa tapply en lugar de sapply? Substituya en el código anterior la función sapply por tapply y observe la diferencia entre los resultados.
Ejemplo Suponga que se tiene el vector edad con las edades de siete personas y supóngase que para el individuo cinco no se tiene información de su edad, eso significa que el vector tendrá un NA en la quinta posición.
¿Cuál será la edad promedio del grupo de personas?
edad <- c(18, 23, 26, 32, NA, 32, 29)
mean(x=edad)
## [1] NA
Al correr el código anterior se obtiene un error y es debido al símbolo NA en la quinta posición. Para calcular la media sólo con los datos de los cuales se tiene información, se incluye el argumento na.rm = TRUE para que R remueva los NA. El código correcto a usar en este caso es:
mean(x=edad, na.rm=TRUE)
## [1] 26.66667
De este último resultado se obtiene que la edad promedio de los individuos es 26.67 años
Para calcular la mediana de una variable cantitativa se usa la función median. Los argumentos básicos de la función median son dos y se muestran a continuación. median(x, na.rm = FALSE) En el parámetro x se indica la variable de interés para la cual se quiere calcular la mediana, el parámetro na.rm es un valor lógico que en caso de ser TRUE, significa que se deben remover las observaciones con NA, el valor por defecto para este parámetro es FALSE.
Ejemplo Calcular la edad mediana para los estudiantes de la base de datos.
Para obtener la mediana usamos el siguiente código:
median(x=datos$edad)
## [1] 28
y obtenemos que la mitad de los estudiantes tienen edades mayores o iguales a 28 años.
El resultado anterior se pudo haber obtenido con la función quantile e indicando que se desea el cuantil 50 así:
quantile(x=datos$edad, probs=0.5)
## 50%
## 28
La moda de una variable cuantitativa corresponde a valor o valores que más se repiten, una forma sencilla de encontrar la moda es construir una tabla de frecuencias y observar los valores con mayor frecuencia.
Ejemplo Calcular la moda para la variable edad de la base de datos de estudiantes.
Se construye la tabla con la función table y se crea el objeto tabla para almacenarla.
tabla <- table(datos$edad)
tabla
##
## 19 20 21 22 23 24 25 26 28 29 30 32 33 35 37 40 43 45 51 55 65
## 1 1 1 3 2 1 5 3 2 1 2 1 1 2 3 1 2 1 1 1 1
Al mirar con detalle la tabla anterior se observa que el valor que más se repite es la edad de 25 años en 5 ocasiones. Si la tabla hubiese sido mayor, la inspección visual nos podría tomar unos segundos o hasta minutos y podríamos equivocarnos, por esa razón es mejor ordenar los resultados de la tabla.
Para observar los valores con mayor frecuencia de la tabla se puede ordenar la tabla usando la función sort de la siguiente manera:
sort(tabla, decreasing=TRUE)
##
## 25 22 26 37 23 28 30 35 43 19 20 21 24 29 32 33 40 45 51 55 65
## 5 3 3 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
Las medidas de variabilidad son estadísticas que se utilizan para describir la dispersión o la variación en un conjunto de datos. Estas medidas proporcionan información sobre qué tan dispersos están los datos alrededor de la media o de algún otro valor central. Algunas de las medidas de variabilidad más comunes:
Es la diferencia entre el valor más grande y el valor más pequeño en un conjunto de datos. Proporciona una indicación general de la amplitud de los datos.
Para calcular el rango:
Ordenar los datos de menor a mayor: 150, 160, 170, 180, 190.
Encuentra el valor mínimo y el valor máximo:
Valor mínimo: 150 centímetros.
Valor máximo: 190 centímetros. Calcula el rango:
Rango = Valor máximo - Valor mínimo
Rango = 190 - 150 = 40 centímetros.
# Alturas de los árboles
alturas <- c(150, 180, 160, 190, 170)
# Calculando el rango
rango <- max(alturas) - min(alturas)
rango
## [1] 40
Entonces, el rango de altura de los árboles en este bosque es de 40 centímetros. Esto significa que la altura varía en 40 centímetros entre el árbol más alto y el más bajo en este conjunto de datos.
La desviación estándar es una medida que dice qué tan dispersos están los valores de un conjunto de datos en relación con su media. Si los valores están muy cerca de la media, la desviación estándar será pequeña; si están muy dispersos, será grande.
Para calcular la desviación estándar:
Para 20 años: 20 - 30 = -10
Para 30 años: 30 - 30 = 0
Para 40 años: 40 - 30 = 10
Para -10: (-10)² = 100
Para 0: 0² = 0
Para 10: 10² = 100
(100 + 0 + 100) / 3 = 66.67
Desviación estándar ≈ √66.67 ≈ 8.16
# Edades de las personas
edades <- c(20, 30, 40)
# Media de las edades
media <- mean(edades)
# Diferencias respecto a la media
dif_media <- edades - media
# Cuadrados de las diferencias
cuadrados_dif <- dif_media^2
# Suma de los cuadrados de las diferencias
suma_cuadrados <- sum(cuadrados_dif)
# Número de datos
n <- length(edades)
# Desviación estándar
desviacion_estandar <- sqrt(suma_cuadrados / n)
desviacion_estandar
## [1] 8.164966
Entonces, la desviación estándar de estas edades es aproximadamente 8.16. Esto significa que las edades tienden a desviarse alrededor de 8.16 años de la media de 30 años. Una desviación estándar más grande indicaría una mayor variabilidad en las edades.
La varianza es una medida de dispersión que nos indica cuánto se alejan los valores individuales de un conjunto de datos de su media aritmética. En otras palabras, nos dice qué tan dispersos están los datos alrededor de la media.
Ejemplo:
Se tiene un conjunto de datos que representan las edades de tres personas: 20, 30 y 40 años, con una media de 30 años.
Para calcular la varianza:
Calcula la diferencia entre cada edad y la media, y luego eleva al cuadrado cada diferencia:
Para 20 años: (20 - 30)² = 100
Para 30 años: (30 - 30)² = 0
Para 40 años: (40 - 30)² = 100
Calcula el promedio de estos cuadrados:
(100 + 0 + 100) / 3 = 66.67
# Edades de las personas
edades <- c(20, 30, 40)
# Media de las edades
media <- mean(edades)
# Diferencias respecto a la media
dif_media <- edades - media
# Cuadrados de las diferencias
cuadrados_dif <- dif_media^2
# Suma de los cuadrados de las diferencias
suma_cuadrados <- sum(cuadrados_dif)
# Número de datos
n <- length(edades)
# Varianza
varianza <- suma_cuadrados / n
varianza
## [1] 66.66667
Entonces, la varianza de estas edades es aproximadamente 66.67. Esta cifra nos indica cuánto varían las edades respecto a su media.