El objetivo de este estudio es analizar el volumen de los huevos de la negreta Minnedosa (Manitoba), basándonos en el trabajo de Arnold (1991).
Para realizar inferencias estadísticas correctas, es crucial entender el diseño muestral utilizado.
Primero, cargamos las herramientas necesarias y el conjunto de datos coots proveniente del paquete SDaA.
library(SDaA) # Contiene el dataset 'coots'
library(tidyverse) # Para manipulación de datos y gráficos
library(gridExtra) # Para arreglos de gráficos
data(coots)
# Visualizamos las primeras filas para entender la estructura
head(coots)
## clutch csize length breadth volume tmt
## 1 1 13 44.30 31.10 3.7957569 yes
## 2 1 13 45.90 32.70 3.9328497 yes
## 3 2 13 49.20 34.40 4.2156036 yes
## 4 2 13 48.70 32.70 4.1727621 yes
## 5 3 6 51.05 34.25 0.9317646 no
## 6 3 6 49.35 34.40 0.9007362 no
# Dimensiones del dataset
dim(coots)
## [1] 368 6
Tarea 1: Describir cómo este estudio representa un muestreo por conglomerados de 2 etapas.
Para identificar el diseño, debemos observar la jerarquía de los datos:
Población Objetivo: Todos los huevos de negreta en la zona de estudio.
Unidades Primarias de Muestreo (PSU - Etapa 1): Las nidadas (clutches) o nidos.
Unidades Secundarias de Muestreo (SSU - Etapa 2): Los huevos dentro de esos nidos.
Conclusión: Es un diseño en dos etapas porque hay dos procesos de selección aleatoria (o asumida aleatoria): primero seleccionamos el grupo (nido) y luego seleccionamos individuos dentro del grupo (huevos). Si hubiéramos medido todos los huevos del nido, sería de una sola etapa.
Antes de estimar, realizamos un análisis exploratorio detallado para entender la variabilidad intra e inter nidadas, siguiendo la metodología base del curso.
Comenzamos con un resumen estadístico general de todas las variables y verificamos la estructura de los conglomerados.
# Resumen general de las variables
summary(coots)
## clutch csize length breadth
## Min. : 1.00 Min. : 5.000 Min. :41.00 Min. :28.32
## 1st Qu.: 46.75 1st Qu.: 8.750 1st Qu.:47.40 1st Qu.:33.00
## Median : 92.50 Median :10.000 Median :48.55 Median :33.59
## Mean : 92.50 Mean : 9.554 Mean :48.63 Mean :33.63
## 3rd Qu.:138.25 3rd Qu.:11.000 3rd Qu.:50.01 3rd Qu.:34.35
## Max. :184.00 Max. :13.000 Max. :53.07 Max. :36.25
## volume tmt
## Min. :0.573 no :262
## 1st Qu.:1.680 yes:106
## Median :2.394
## Mean :2.333
## 3rd Qu.:2.945
## Max. :4.481
Confirmamos el número total de unidades primarias (nidadas) en la muestra:
# Conteo de nidadas únicas
length(unique(coots$clutch))
## [1] 184
Verificamos el tamaño de muestra dentro de cada conglomerado para confirmar si el diseño es balanceado (mismo número de huevos por nido).
# Conteo de observaciones por nidada
coots %>% group_by(clutch) %>% summarise(cant=n())
## # A tibble: 184 × 2
## clutch cant
## <int> <int>
## 1 1 2
## 2 2 2
## 3 3 2
## 4 4 2
## 5 5 2
## 6 6 2
## 7 7 2
## 8 8 2
## 9 9 2
## 10 10 2
## # ℹ 174 more rows
Generamos una tabla detallada con estadísticas descriptivas para cada conglomerado.
# Crear resumen detallado por nidada (Basado en 50-Conglomerados2.Rmd)
resumen_nidadas <- coots %>%
group_by(clutch) %>%
summarise(
media = mean(volume), # y_bar_i
M_i = mean(csize), # Tamaño del cluster (csize es constante por nido)
sd = sd(volume),
min = min(volume),
max = max(volume),
rango = diff(range(volume)),
cant = n() # Tamaño de la muestra (m_i = 2)
) %>%
arrange(media) %>%
mutate(orden = row_number())
# Mostramos las primeras filas del resumen para verificar M_i
head(resumen_nidadas)
## # A tibble: 6 × 9
## clutch media M_i sd min max rango cant orden
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <int>
## 1 84 0.577 5 0.00627 0.573 0.582 0.00887 2 1
## 2 97 0.594 5 0.00224 0.593 0.596 0.00317 2 2
## 3 102 0.617 5 0.0181 0.604 0.630 0.0256 2 3
## 4 85 0.649 5 0.0112 0.641 0.657 0.0158 2 4
## 5 67 0.660 5 0.00493 0.657 0.664 0.00697 2 5
## 6 65 0.814 6 0.00581 0.809 0.818 0.00821 2 6
Observamos que M_i (el tamaño real del nido) varía (ej. 6, 9, 10, 11, 12, 13 huevos), aunque nuestra muestra cant sea siempre 2. Esto confirma que debemos ponderar.
A continuación, replicamos las gráficas de análisis para visualizar la dispersión.
Figura A: Datos individuales y Medias Esta gráfica nos permite ver la dispersión de los huevos (puntos grises) respecto a la media de su nido (rombos rojos).
# Versión 1: Puntos individuales (Figura A)
fig_a <- ggplot(coots, aes(x = as.factor(clutch), y = volume)) +
geom_point(alpha = 0.6, size = 1.5) +
geom_line(aes(group = clutch), alpha = 0.3) +
stat_summary(fun = mean, geom = "point",
color = "red", size = 2, shape = 18) +
labs(
title = "Gráfica A: Volúmenes de huevo por nidada",
subtitle = "Puntos: huevos individuales | Diamantes rojos: media por nidada",
x = "Número de nidada",
y = "Volumen del huevo"
) +
theme_minimal() +
theme(
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank()
)
fig_a
Figura B: Distribución de las Medias Esta gráfica aísla las medias de cada nido. La dispersión que vemos aquí representa la varianza entre conglomerados, que es el componente principal de nuestro error de muestreo.
# Figura B: Solo medias (Basado en 50-Conglomerados2.Rmd)
fig_b <- ggplot(resumen_nidadas, aes(x = clutch, y = media)) +
geom_point(alpha = 0.7, size = 1.5, color = "darkblue") +
geom_hline(yintercept = mean(resumen_nidadas$media),
linetype = "dashed", color = "red") +
labs(
title = "Figura B: Medias por nidada",
subtitle = "Visualización de la variabilidad ENTRE conglomerados",
x = "Número de nidada",
y = "Volumen medio del huevo"
) +
theme_minimal()
fig_b
Tarea 2: Estimar el promedio poblacional del volumen del huevo.
Al tener conglomerados de distintos tamaños (\(M_i\) variable), el promedio simple de las medias de los nidos es un estimador sesgado. Debemos usar el Estimador de Razón (\(\hat{\bar{Y}}_R\)), que pondera cada media por el tamaño de su nido.
\[ \hat{\bar{Y}}{R} = \frac{\sum{i=1}^n M_i \bar{y}i}{\sum{i=1}^n M_i} \] Verificamos que esto es igual al promedio de los promedios de las nidadas (debido al tamaño de muestra constante \(m_i = 2\)).
# Numerador: Suma de los totales estimados por nido (M_i * media_i)
numerador <- sum(resumen_nidadas$M_i * resumen_nidadas$media)
# Denominador: Suma de los tamaños de los nidos
denominador <- sum(resumen_nidadas$M_i)
# Estimador de Razón
promedio_ponderado <- numerador / denominador
cat("El volumen promedio estimado (Ponderado) es:", round(promedio_ponderado, 4))
## El volumen promedio estimado (Ponderado) es: 2.4905
Comparación con el promedio simple (Sesgado)
promedio_simple <- mean(resumen_nidadas$media)
cat("Promedio Simple (Sin ponderar):", round(promedio_simple, 4), "\n")
## Promedio Simple (Sin ponderar): 2.3334
cat("Diferencia:", round(promedio_ponderado - promedio_simple, 4))
## Diferencia: 0.1571
Tarea 3: Investigar y calcular el error estándar del estimador.
Dado que usamos un estimador de razón, el error estándar también cambia. Ya no usamos la varianza simple de las medias, sino la varianza de los residuos ponderados.
La fórmula aproximada para el Error Estándar del estimador de razón en muestreo por conglomerados es:
\[ SE(\hat{\bar{Y}}_R) \approx \frac{1}{\bar{M}} \sqrt{\frac{s_r^2}{n}} \]
Donde:
\(\bar{M}\) es el tamaño promedio de los nidos en la muestra.
\(s_r^2\) es la varianza de los valores \(u_i\), donde \(u_i = M_i (\bar{y}_i - \hat{\bar{Y}}_R)\).
\(n\) es el número de nidos.
Este método captura la variabilidad “entre” conglomerados ajustada por su tamaño.
# 1. Definir n (número de nidos)
n_clutches <- nrow(resumen_nidadas)
# 2. Calcular M promedio (tamaño promedio del nido)
M_bar <- mean(resumen_nidadas$M_i)
# 3. Calcular la variable auxiliar u_i (Residuos ponderados)
# u_i representa cuánto se desvía el total del nido i respecto a lo esperado por el promedio global
resumen_nidadas <- resumen_nidadas %>%
mutate(u_i = M_i * (media - promedio_ponderado))
# 4. Calcular la varianza de u_i (s_r^2)
s2_r <- var(resumen_nidadas$u_i)
# 5. Calcular Error Estándar (SE)
error_estandar_ratio <- (1 / M_bar) * sqrt(s2_r / n_clutches)
cat("Número de nidadas (n):", n_clutches, "\n")
## Número de nidadas (n): 184
cat("Tamaño promedio del nido (M_bar):", round(M_bar, 2), "\n")
## Tamaño promedio del nido (M_bar): 9.55
cat("Error Estándar (SE) corregido:", round(error_estandar_ratio, 4))
## Error Estándar (SE) corregido: 0.061
Comparación de Errores
# Recalculamos el anterior para comparar
sd_entre_nidadas <- sd(resumen_nidadas$media)
se_simple <- sd_entre_nidadas / sqrt(n_clutches)
cat("SE (Método Simple - Incorrecto para M variable):", round(se_simple, 4), "\n")
## SE (Método Simple - Incorrecto para M variable): 0.0618
cat("SE (Método de Razón - Correcto):", round(error_estandar_ratio, 4), "\n")
## SE (Método de Razón - Correcto): 0.061
Interpretación: El cálculo correcto ajusta la incertidumbre considerando que los nidos más grandes tienen más peso en la estimación final.
Finalmente, reportamos el resultado con un intervalo de confianza al 95%.
alpha <- 0.05
t_value <- qt(1 - alpha/2, df = n_clutches - 1)
lim_inf <- promedio_ponderado - t_value * error_estandar_ratio
lim_sup <- promedio_ponderado + t_value * error_estandar_ratio
cat("Intervalo de Confianza 95%: [", round(lim_inf, 3), ", ", round(lim_sup, 3), "]")
## Intervalo de Confianza 95%: [ 2.37 , 2.611 ]
Reporte Final: Utilizando un estimador de razón para corregir por los tamaños variables de las nidadas, se estima que el volumen promedio de los huevos en la población es de 2.49 pulgadas cúbicas, con un error estándar de 0.061.