#Informe 2
# Establecer un valor para theta
theta <- 1
# Función para calcular los estimadores para una muestra de tamaño n
calcular_estimadores <- function(muestra) {
estimador1 <- (muestra[1] + muestra[2]/6 + muestra[3] + muestra[4]/3)
estimador2 <- (muestra[1] + 2*muestra[2] + 3*muestra[3] + 4*muestra[4]) / 10
estimador3 <- mean(muestra)
estimador4 <- (min(muestra) + max(muestra)) / 2
return(c(estimador1, estimador2, estimador3, estimador4))
}
# Función para realizar la simulación
simular_estimadores <- function(n, num_simulaciones, theta) {
# Matriz para almacenar los resultados de los estimadores
resultados <- matrix(nrow=num_simulaciones, ncol=4)
for (i in 1:num_simulaciones) {
# Generar muestra aleatoria
muestra <- rexp(n, rate = 1/theta)
# Calcular estimadores
resultados[i, ] <- calcular_estimadores(muestra)
}
colnames(resultados) <- c("estimador1", "estimador2", "estimador3", "estimador4")
return(resultados)
}
# Tamaños de muestra para la simulación
tamanos_muestra <- c(20, 50, 100, 1000)
# Número de simulaciones
num_simulaciones <- 1000
# Lista para almacenar los data frames de resultados
lista_resultados <- list()
for (n in tamanos_muestra) {
# Realizar simulaciones
simulaciones <- simular_estimadores(n, num_simulaciones, theta)
# Calcular insesgadez, varianza (eficiencia) y consistencia
medias <- colMeans(simulaciones)
varianzas <- apply(simulaciones, 2, var)
# Almacenar resultados en un data frame
resultados_df <- data.frame(
Tamano_Muestra = n,
Media_Estimador1 = medias[1],
Media_Estimador2 = medias[2],
Media_Estimador3 = medias[3],
Media_Estimador4 = medias[4],
Varianza_Estimador1 = varianzas[1],
Varianza_Estimador2 = varianzas[2],
Varianza_Estimador3 = varianzas[3],
Varianza_Estimador4 = varianzas[4]
)
# Agregar al lista
lista_resultados[[as.character(n)]] <- resultados_df
}
# Imprimir resultados
for (n in tamanos_muestra) {
print(lista_resultados[[as.character(n)]])
}
## Tamano_Muestra Media_Estimador1 Media_Estimador2 Media_Estimador3
## estimador1 20 2.585724 1.016456 1.008177
## Media_Estimador4 Varianza_Estimador1 Varianza_Estimador2
## estimador1 1.826766 2.299803 0.2955932
## Varianza_Estimador3 Varianza_Estimador4
## estimador1 0.05145449 0.358141
## Tamano_Muestra Media_Estimador1 Media_Estimador2 Media_Estimador3
## estimador1 50 2.492729 0.9910851 0.9969999
## Media_Estimador4 Varianza_Estimador1 Varianza_Estimador2
## estimador1 2.285883 2.316284 0.3001095
## Varianza_Estimador3 Varianza_Estimador4
## estimador1 0.01977851 0.4622313
## Tamano_Muestra Media_Estimador1 Media_Estimador2 Media_Estimador3
## estimador1 100 2.538711 1.006702 0.9968214
## Media_Estimador4 Varianza_Estimador1 Varianza_Estimador2
## estimador1 2.606367 2.190323 0.2958287
## Varianza_Estimador3 Varianza_Estimador4
## estimador1 0.01038491 0.4158612
## Tamano_Muestra Media_Estimador1 Media_Estimador2 Media_Estimador3
## estimador1 1000 2.445952 1.003339 1.001325
## Media_Estimador4 Varianza_Estimador1 Varianza_Estimador2
## estimador1 3.763694 2.188602 0.3049947
## Varianza_Estimador3 Varianza_Estimador4
## estimador1 0.0009599783 0.4452692
# Gráficos boxplot para el último tamaño de muestra (1000)
par(mfrow=c(2,2))
for(i in 1:4) {
boxplot(simulaciones[,i], main=paste("Estimador", i), horizontal=TRUE)
}
par(mfrow=c(1,1))