This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
# Definimos los cuatro estimadores en función de los valores X1, X2, X3, X4
estimador_1 <- function(X1, X2, X3, X4) {
(X1 + X2) / 6 + (X3 + X4) / 3
}
estimador_2 <- function(X1, X2, X3, X4) {
(X1 + 2*X2 + 3*X3 + 4*X4) / 5
}
estimador_3 <- function(X1, X2, X3, X4) {
(X1 + X2 + X3 + X4) / 4
}
estimador_4 <- function(X1, X2, X3, X4) {
(min(c(X1, X2, X3, X4)) + max(c(X1, X2, X3, X4))) / 2
}
set.seed(123) # Para asegurar reproducibilidad
theta <- 2 # Supuesto valor del parámetro
# Función para generar muestras de tamaño n y calcular los estimadores
generar_muestras <- function(n, theta) {
muestras <- matrix(rexp(4 * n, rate = 1/theta), ncol = 4)
estimadores <- data.frame(
theta_1 = apply(muestras, 1, function(x) estimador_1(x[1], x[2], x[3], x[4])),
theta_2 = apply(muestras, 1, function(x) estimador_2(x[1], x[2], x[3], x[4])),
theta_3 = apply(muestras, 1, function(x) estimador_3(x[1], x[2], x[3], x[4])),
theta_4 = apply(muestras, 1, function(x) estimador_4(x[1], x[2], x[3], x[4]))
)
return(estimadores)
}
# Simular muestras de diferentes tamaños
n_values <- c(20, 50, 100, 1000)
resultados <- lapply(n_values, generar_muestras, theta = theta)
# Calcular las medias y varianzas para cada estimador
resumen_resultados <- function(resultados, n) {
data.frame(
Estimador = c("theta_1", "theta_2", "theta_3", "theta_4"),
Media = colMeans(resultados),
Varianza = apply(resultados, 2, var),
n = n
)
}
# Crear un resumen para cada tamaño de muestra
resumen <- do.call(rbind, lapply(1:length(n_values), function(i) {
resumen_resultados(resultados[[i]], n_values[i])
}))
# Crear boxplots para cada estimador
par(mfrow = c(2, 2)) # Para mostrar múltiples gráficos
for(i in 1:4) {
boxplot(resultados[[4]][, i], main = paste("Estimador theta_", i), ylab = "Valor", col = "lightblue")
}