Generar población

# Población de n=1000 con un 50% de individuos enfermos
poblacion <- rbinom(1000, size = 1, prob = 0.5)

Función para obtener una muestra aleatoria y calcular p^

# Función para obtener una muestra aleatoria y calcular p^
obtener_muestra_p <- function(n, poblacion) {
  muestra <- sample(poblacion, n, replace = TRUE)
  estimador_p <- sum(muestra) / n
  return(estimador_p)
}

Analizar resultados para n=500

# Realizar 500 simulaciones y almacenar los resultados
resultados <- replicate(500, obtener_muestra_p(500, poblacion))

# Histograma de los resultados
hist(resultados, col = rainbow(10), main = "Histograma de p^ (n=500)")

Comparar tamaños de muestra en cuanto a la normalidad

# Tamaños de muestra a probar
tamanos_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)

# Función para realizar pruebas de normalidad y generar gráficos QQ
prueba_normalidad <- function(n, poblacion) {
  resultados <- replicate(500, obtener_muestra_p(n, poblacion))
  shapiro_test <- shapiro.test(resultados)
  
  # Gráfico QQ
  qqnorm(resultados, main = paste("Gráfico QQ (n=", n, ")"))
  qqline(resultados)
  
  return(shapiro_test)
}

# Realizar pruebas de normalidad y generar gráficos QQ
for (n in tamanos_muestra) {
  cat("Tamaño de muestra:", n, "\n")
  shapiro_test_result <- prueba_normalidad(n, poblacion)
  print(shapiro_test_result)
}
## Tamaño de muestra: 5

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.92727, p-value = 7.602e-15
## 
## Tamaño de muestra: 10

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.96539, p-value = 1.811e-09
## 
## Tamaño de muestra: 15

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.97684, p-value = 4.007e-07
## 
## Tamaño de muestra: 20

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.98071, p-value = 3.48e-06
## 
## Tamaño de muestra: 30

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.98444, p-value = 3.465e-05
## 
## Tamaño de muestra: 50

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.98988, p-value = 0.001613
## 
## Tamaño de muestra: 60

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.99311, p-value = 0.02172
## 
## Tamaño de muestra: 100

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.99498, p-value = 0.1036
## 
## Tamaño de muestra: 200

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.99535, p-value = 0.1414
## 
## Tamaño de muestra: 500

## 
##  Shapiro-Wilk normality test
## 
## data:  resultados
## W = 0.99429, p-value = 0.05832

Simulación con 10% de enfermos

# Generar una población con 10% de individuos enfermos
poblacion_10porciento <- rbinom(1000, size = 1, prob = 0.1)

Simulación con 90% de enfermos

# Población con 90% de individuos enfermos
poblacion_90porciento <- rbinom(1000, size = 1, prob = 0.9)

Comaparativa de Valores p Tamaño muestra

# Gráfico de barras de los valores p de normalidad
barplot(resultados_normalidad[, "Valor p"], names.arg = resultados_normalidad[, "Tamaño de muestra"],
        col = rainbow(length(tamanos_muestra)), main = "Valores p de Normalidad por Tamaño de Muestra",
        xlab = "Tamaño de Muestra", ylab = "Valor p", ylim = c(0, 1))

Conclusión

De acuerdo al proceso realizado, la visualización obtenida como ultimo paso nos permite identificar que a medida que el tamaño de la muestra aumenta, las estimaciones se vuelven más precisas y se aproximan a una distribución normal. El porcentaje de individuos enfermos en la población inicial afecta la simetría y normalidad de los resultados.

Repositorio Github

Si quieres consultar el codigó de este informe puedes validarlo en este enlace:

https://github.com/Jartpuro/U2_Informe_03