En este ejercicio exploraremos un conjunto de datos sobre masa corporal (en gramos) de ratones de laboratorio. Calcularemos estadísticas descriptivas y crearemos visualizaciones para interpretar la distribución de los datos.
Los datos no son reales, los vamos a producir utilizando una función
(rnorm()) de generación de números al azar; estos datos
cumplen con una distribución aproximadamente normal. Ejecuta el
siguiente bloque para cargar los datos:
set.seed(42)
masa_ratones <- round(c(rnorm(60, mean = 25, sd = 4),
rnorm(20, mean = 35, sd = 3)), 1)
masa_ratones
## [1] 30.5 22.7 26.5 27.5 26.6 24.6 31.0 24.6 33.1 24.7 30.2 34.1 19.4 23.9 24.5
## [16] 27.5 23.9 14.4 15.2 30.3 23.8 17.9 24.3 29.9 32.6 23.3 24.0 17.9 26.8 22.4
## [31] 26.8 27.8 29.1 22.6 27.0 18.1 21.9 21.6 15.3 25.1 25.8 23.6 28.0 22.1 19.5
## [46] 26.7 21.8 30.8 23.3 27.6 26.3 21.9 31.3 27.6 25.4 26.1 27.7 25.4 13.0 26.1
## [61] 33.9 35.6 36.7 39.2 32.8 38.9 36.0 38.1 37.8 37.2 31.9 34.7 36.9 32.1 33.4
## [76] 36.7 37.3 36.4 32.3 31.7
Pregunta 1: ¿Cuántas observaciones tiene el vector
masa_ratones? Usa la funciónlength()para responder.
# Escribe tu código aquí
# Calcula la media
media <- mean(masa_ratones)
media
## [1] 27.5375
# Calcula la mediana
mediana <- median(masa_ratones)
mediana
## [1] 26.8
Pregunta 2: ¿La media es mayor o menor que la mediana? ¿Qué te indica esto sobre la forma de la distribución? Escribe tu respuesta en el bloque de abajo.
Respuesta.
Supón que tienes los siguientes datos de calificaciones de un curso:
| Componente | Nota (x) | Créditos (f) |
|---|---|---|
| Examen 1 | 85 | 3 |
| Examen 2 | 78 | 3 |
| Laboratorio | 92 | 2 |
| Proyecto final | 88 | 4 |
notas <- c(85, 78, 92, 88)
creditos <- c(3, 3, 2, 4)
# Fórmula de la media ponderada: sum(f * x) / sum(f)
media_ponderada <- sum(creditos * notas) / sum(creditos)
media_ponderada
## [1] 85.41667
Pregunta 3: ¿Cuál componente tiene mayor peso en el cálculo? ¿Cómo cambiaría la media ponderada si la nota del Proyecto final fuera 70? Modifica el código para comprobarlo.
# Escribe tu código aquí
Respuesta
La función range() devuelve el mínimo y máximo de un
vector, mientras que diff() calcula la diferencia entre
ellos para obtener el rango. La función var() calcula la
varianza, y sd() calcula la desviación estándar.
rango <- range(masa_ratones)
cat("Mínimo:", rango[1], "| Máximo:", rango[2],
"| Rango:", diff(rango), "\n")
## Mínimo: 13 | Máximo: 39.2 | Rango: 26.2
varianza <- var(masa_ratones)
cat("Varianza:", round(varianza, 2), "\n")
## Varianza: 38.58
desv_std <- sd(masa_ratones)
cat("Desviación estándar:", round(desv_std, 2), "\n")
## Desviación estándar: 6.21
Pregunta 4: ¿Por qué preferimos utilizar la desviación estándar para informar sobre la dispersión de los datos?
Respuesta
n <- length(masa_ratones)
ee <- desv_std / sqrt(n)
cat("Error estándar:", round(ee, 3), "\n")
## Error estándar: 0.694
Pregunta 5: ¿Qué pasaría con el error estándar si duplicamos el tamaño de la muestra? Modifica
npara comprobarlo y explica el resultado.
# Escribe tu código aquí
Respuesta
cv <- (desv_std / media) * 100
cat("Coeficiente de variación:", round(cv, 2), "%\n")
## Coeficiente de variación: 22.55 %
Pregunta 6: Imagina que también tienes datos de masa de ratas con media = 280 g y desviación estándar = 35 g. Calcula el CV de las ratas y compáralo con el de los ratones. ¿Cuál grupo es más variable en términos relativos?
# Escribe tu código aquí
Respuesta
# Resumen de los cinco números
summary(masa_ratones)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 13.00 23.75 26.80 27.54 32.15 39.20
# Cuartiles individuales
Q1 <- quantile(masa_ratones, 0.25)
Q2 <- quantile(masa_ratones, 0.50)
Q3 <- quantile(masa_ratones, 0.75)
IQR_val <- IQR(masa_ratones)
cat("Q1:", Q1, "| Q2 (mediana):", Q2, "| Q3:", Q3,
"| IQR:", IQR_val, "\n")
## Q1: 23.75 | Q2 (mediana): 26.8 | Q3: 32.15 | IQR: 8.4
# Percentiles 5% y 95%
p5 <- quantile(masa_ratones, 0.05)
p95 <- quantile(masa_ratones, 0.95)
cat("Percentil 5%:", p5, "| Percentil 95%:", p95, "\n")
## Percentil 5%: 17.77 | Percentil 95%: 37.325
Pregunta 7: ¿Qué porcentaje de los ratones tiene una masa entre Q1 y Q3? ¿Cómo se llama ese intervalo?
Respuesta
hist(masa_ratones,
main = "Distribución de masa corporal de ratones",
xlab = "Masa (g)",
ylab = "Frecuencia",
col = "steelblue",
border = "white",
breaks = 10)
abline(v = media, col = "red", lwd = 2, lty = 2)
abline(v = mediana, col = "orange", lwd = 2, lty = 2)
legend("topright",
legend = c("Media", "Mediana"),
col = c("red", "orange"),
lwd = 2, lty = 2)
Pregunta 8: Cambia el argumento
breaksa 5 y luego a 20. ¿Cómo cambia la historia que cuenta el histograma en cada caso?
# Copia y modifica el código del histograma aquí
Respuesta
Pregunta 9: Basándote en el histograma, describe la distribución: (a) ¿Es unimodal, bimodal o multimodal? (b) ¿Está sesgada a la derecha, a la izquierda o es simétrica?
Respuesta
boxplot(masa_ratones,
main = "Masa corporal de ratones",
ylab = "Masa (g)",
col = "lightblue",
border = "darkblue",
notch = FALSE)
Pregunta 10: Identifica en la gráfica de caja y bigote, los valores en el eje Y de: la mediana, Q1, Q3 y los valores atípicos (outliers), si los hay.
Respuesta
Completa la siguiente tabla con los valores calculados en este ejercicio:
| Estadístico | Valor |
|---|---|
| Media | |
| Mediana | |
| Desviación estándar | |
| Error estándar | |
| Coeficiente de variación (%) | |
| Q1 | |
| Q3 | |
| IQR |
Biometría BIOL 3740 — Departamento de Biología, UPR-Humacao