Cuestión 2 - Apartado c

# Simulación del Teorema Central del Límite
# Definir la distribución de las variables aleatorias Por ejemplo, una distribución exponencial con lambda=2
lambda <- 2
n <- 1000  # Tamaño de la muestra
num_simulaciones <- 1000  # Número de simulaciones
# Crear una función para generar muestras y calcular la media
simulacion_tcl <- function(n, lambda) {
  muestra <- rexp(n, rate = lambda)  # Generar muestra
  media <- mean(muestra)  # Calcular la media de la muestra
  return(media)
}
# Realizar múltiples simulaciones
medias <- replicate(num_simulaciones, simulacion_tcl(n, lambda))
# Graficar el histograma de las medias
hist(medias, breaks = 30, main = "Distribución de las medias muestrales",
     xlab = "Media", ylab = "Frecuencia", col = "skyblue")
# Superponer una curva de densidad normal
curve(dnorm(x, mean = 1/lambda, sd = sqrt(1/(lambda^2*n))), 
      add = TRUE, col = "red", lwd = 2)

Ejercicio 1

# Definir la distribución conjunta como una matriz de probabilidades
distribucion_conjunta <- matrix(c(0.05, 0.1, 0.05, 0.02, 0.01,
                                  0.1, 0.2, 0.1, 0.05, 0.02,
                                  0.05, 0.1, 0.05, 0.02, 0.01), 
                                nrow = 3, byrow = TRUE,
                                dimnames = list(c("0-50", "51-100", "101-150"), 
                                                c("0-20", "21-40", "41-60", "61-80", "81-100")))

# Mostrar la distribución conjunta
print("Distribución Conjunta:")
## [1] "Distribución Conjunta:"
print(distribucion_conjunta)
##         0-20 21-40 41-60 61-80 81-100
## 0-50    0.05   0.1  0.05  0.02   0.01
## 51-100  0.10   0.2  0.10  0.05   0.02
## 101-150 0.05   0.1  0.05  0.02   0.01
# Calcular las distribuciones marginales para la edad y el peso
distribucion_marginal_edad <- rowSums(distribucion_conjunta)
distribucion_marginal_peso <- colSums(distribucion_conjunta)

# Mostrar las distribuciones marginales
print("Distribución Marginal para la Edad:")
## [1] "Distribución Marginal para la Edad:"
print(distribucion_marginal_edad)
##    0-50  51-100 101-150 
##    0.23    0.47    0.23
print("Distribución Marginal para el Peso:")
## [1] "Distribución Marginal para el Peso:"
print(distribucion_marginal_peso)
##   0-20  21-40  41-60  61-80 81-100 
##   0.20   0.40   0.20   0.09   0.04
# Calcular la distribución condicional para la edad dado un peso específico (por ejemplo, 51-100 kg)
peso_especifico <- "51-100"
indice_peso <- which(colnames(distribucion_conjunta) == peso_especifico)
distribucion_condicional_edad <- distribucion_conjunta[, indice_peso] / distribucion_marginal_peso[indice_peso]

# Mostrar la distribución condicional para la edad dado un peso específico
print(paste("Distribución Condicional para la Edad dado un Peso de", peso_especifico, ":"))
## [1] "Distribución Condicional para la Edad dado un Peso de 51-100 :"
print(distribucion_condicional_edad)
##        
## 0-50   
## 51-100 
## 101-150