Code
library(tidyverse)Simulación

library(tidyverse)# Función para simular lanzamientos de moneda
simular_monedas <- function(n) {
resultados <- sample(c("Cara", "Sello"), n, replace = TRUE)
prop.table(table(resultados))
}
# Tamaños de muestra
tamanos_muestra <- seq(from = 10, to = 100000, by = 100)
resultados <- data.frame(tamaño = integer(),
caras = numeric(),
sellos = numeric())
# Simulaciones
for (n in tamanos_muestra) {
proporciones <- simular_monedas(n)
resultados <- resultados |>
add_row(tamaño = n,
caras = proporciones["Cara"],
sellos = proporciones["Sello"])
}
# Graficar resultados
ggplot(resultados, aes(x = tamaño)) +
geom_line(aes(y = caras, color = "Cara"), size = 1) +
geom_line(aes(y = sellos, color = "Sello"), size = 1) +
geom_hline(yintercept = 0.5,
linetype = "dashed",
color = "black") +
labs(
title = "Proporciones de cara y sello en función del tamaño de la muestra",
x = "Tamaño de la nuestra",
y = "Proporción",
color = "Resultado"
) +
scale_color_manual(values = c("Cara" = "blue", "Sello" = "red")) +
theme_minimal()
# Función para simular lanzamientos de un dado
simular_dados <- function(n) {
resultados <- sample(1:6, n, replace = TRUE)
prop.table(table(resultados))
}
# Tamaños de muestra
tamanos_muestra <- seq(from = 100, to = 10000, by = 10)
resultados_dado <- data.frame(
tamaño = integer(),
cara1 = numeric(),
cara2 = numeric(),
cara3 = numeric(),
cara4 = numeric(),
cara5 = numeric(),
cara6 = numeric()
)
# Realizar simulaciones
for (n in tamanos_muestra) {
proporciones <- simular_dados(n)
resultados_dado <- resultados_dado |>
add_row(
tamaño = n,
cara1 = ifelse("1" %in% names(proporciones), proporciones["1"], 0),
cara2 = ifelse("2" %in% names(proporciones), proporciones["2"], 0),
cara3 = ifelse("3" %in% names(proporciones), proporciones["3"], 0),
cara4 = ifelse("4" %in% names(proporciones), proporciones["4"], 0),
cara5 = ifelse("5" %in% names(proporciones), proporciones["5"], 0),
cara6 = ifelse("6" %in% names(proporciones), proporciones["6"], 0)
)
}
# Graficar resultados
resultados_long <- resultados_dado |>
pivot_longer(cols = starts_with("cara"),
names_to = "cara",
values_to = "proporcion")
ggplot(resultados_long, aes(x = tamaño, y = proporcion, color = cara)) +
geom_line(size = 1) +
geom_hline(yintercept = 1 / 6,
linetype = "dashed",
color = "black") +
labs(
title = "Proporciones de cada cara del dado en función del tamaño de la muestra",
x = "Tamaño de la Muestra",
y = "Proporción",
color = "Cara"
) +
theme_minimal() +
scale_color_manual(values = rainbow(6))