# 1. LIBRERIAS
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(SDaA)    # Contiene datos 'coots'
## 
## Attaching package: 'SDaA'
## The following object is masked from 'package:ggplot2':
## 
##     seals
library(survey)  # Para diseño muestral complejo
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
# 2. CARGAR DATOS
data(coots)
# ---------------------------------------------------------
# PREGUNTA 1: DESCRIPCIÓN DEL MUESTREO (Imprimimos la respuesta)
# ---------------------------------------------------------
cat("1. DESCRIPCIÓN DEL MUESTREO:\n")
## 1. DESCRIPCIÓN DEL MUESTREO:
cat("Es un muestreo por conglomerados en 2 etapas porque:\n")
## Es un muestreo por conglomerados en 2 etapas porque:
cat(" - Etapa 1 (UPM): Se seleccionan Nidadas (Clutches) completas.\n")
##  - Etapa 1 (UPM): Se seleccionan Nidadas (Clutches) completas.
cat(" - Etapa 2 (USM): Dentro de cada nidada, se eligen solo 2 huevos para medir.\n\n")
##  - Etapa 2 (USM): Dentro de cada nidada, se eligen solo 2 huevos para medir.
# ---------------------------------------------------------
# GRAFICO: Visualización de datos (Huevos vs Medias de Nido)
# ---------------------------------------------------------
grafico <- ggplot(coots, aes(x = as.factor(clutch), y = volume)) +
  geom_point(alpha = 0.5, color = "gray60") + # Huevos individuales
  stat_summary(fun = mean, geom = "point", color = "red", size = 2, shape = 18) + # Medias
  labs(title = "Volumen de huevos (Conglomerados)", 
       subtitle = "Gris: Individual | Rojo: Media del nido",
       x = "Nidadas", y = "Volumen") +
  theme_minimal() +
  theme(axis.text.x = element_blank())

print(grafico)

# ---------------------------------------------------------
# PREGUNTA 2 y 3: ESTIMACIÓN DE MEDIA Y ERROR ESTÁNDAR
# ---------------------------------------------------------
# Opción A: Usando librería 'survey' (Forma correcta y rápida)
# id = ~clutch indica que el conglomerado es la nidada
diseno <- svydesign(id = ~clutch, data = coots)
## Warning in svydesign.default(id = ~clutch, data = coots): No weights or
## probabilities supplied, assuming equal probability
resultado <- svymean(~volume, diseno)

cat("--- RESULTADOS (Librería survey) ---\n")
## --- RESULTADOS (Librería survey) ---
print(resultado)
##          mean     SE
## volume 2.3334 0.0618
# Opción B: Cálculo Manual (Para investigar la fórmula)
# SE = raiz(Varianza_entre_medias / n_nidadas)
medias_nidadas <- tapply(coots$volume, coots$clutch, mean)
se_manual <- sqrt(var(medias_nidadas) / length(medias_nidadas))

cat("\n--- RESULTADOS (Cálculo Manual) ---\n")
## 
## --- RESULTADOS (Cálculo Manual) ---
cat("Promedio Estimado:", mean(medias_nidadas), "\n")
## Promedio Estimado: 2.333394
cat("Error Estándar (SE):", se_manual, "\n")
## Error Estándar (SE): 0.06182578