Redacción del problema

La simulación ayuda a entender y validar las propiedades de los estimadores estadísticos como son. insesgadez, eficiencia y la consistencia principalmente. El siguiente problema permite evidenciar las principales características de un grupo de estimadores propuestos para la estimación de un parámetro asociado a un modelo de probabilidad.

Sean X1, X2, X3 y X4, una muestra aleatoria de tamaño n=4 cuya población la conforma una distribución exponencial con parámetro θ desconocido. Determine las características de cada uno de los siguientes estimadores propuestos:

  • θ1ˆ=(X1+X2)/6+(X3+X4)/3

  • θ2ˆ=(X1+2X2+3X3+4X4)/5

  • θ3ˆ=(X1+X2+X3+X4)/4

  • θ4ˆ=(min{X1,X2,X3,X4}+max{X1,X2,X3,X4})/2

Nota

Obtenga para la muestra n =4, un total de repeticiones de 20, 50, 100 y 1000 para cada uno de los estimadores planteados y a partir de ellos, evalue las propiedades de insesgadez, eficiencia y consistencia

  • RESULTADOS INSESGADEZ Y EFICIENCIA

A continuación, se presentan la evaluación de las propiedades: INSESGADEZ y EFICIENCIA para una muestra de tamaño n= 4. Adicionalmente, se evalúa la información, para la cantidad repeteciones requeridas por estimador (20, 50, 100 y 1000) Esto, Se realiza para los 4 estimadores detallados en la sección anterior:

NOTA:

-La presentación de la información, se realiza por medio de la tabulación de la información, del valor que adquiere cada propiedad, a partir de la formulación indicada para cada estimador y la muestra aleatoria que se genera.

Además, se agregan cuatro columnas, donde se presenta el valor que adquiere cada estimador:

# Cargar librería
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Definición de  función para calcular estimador

calcular_estimador <- function(muestra, estimador_nombre) {
  n <- length(muestra)
  if (estimador_nombre == "Estimador1") {
    return((muestra[1] + muestra[2]) / 6 + (muestra[3] + muestra[4]) / 3)
  } else if (estimador_nombre == "Estimador2") {
    return((muestra[1] + 2 * muestra[2] + 3 * muestra[3] + 4 * muestra[4]) / 5)
  } else if (estimador_nombre == "Estimador3") {
    return((muestra[1] + muestra[2] + muestra[3] + muestra[4]) / 4)
  } else if (estimador_nombre == "Estimador4") {
    return((min(muestra) + max(muestra)) / 2)
  } else {
    stop("Estimador no válido")
  }
}

# Definición de función para calcular insesgadez
calcular_insesgadez <- function(valores, parametro_verdadero) {
  return(mean(valores) - parametro_verdadero)
}

# Definición de función para calcular eficiencia
calcular_eficiencia <- function(valores) {
  return(var(valores))
}

# Parámetro θ
parametro_verdadero <- 1

# Crear un data frame para almacenar resultados de los estimadores
estimadores_df <- data.frame(
  Repeticion = integer(0),
  Estimador = character(0),
  Valor = numeric(0)
)

# Tamaño de muestra fijo
n_muestra <- 4

# Número de repeticiones de cálculo del estimador
repeticiones <- c(20, 50, 100, 1000)

# Nombres de los estimadores
nombres_estimadores <- c("Estimador1", "Estimador2", "Estimador3", "Estimador4")

# Realizar repeticiones para el tamaño de muestra fijo (4) y calcular los estimadores
for (rep in repeticiones) {
  for (i in 1:rep) {
    muestra_exponencial <- rexp(n_muestra, rate = parametro_verdadero)
    
    # Calcular los estimadores y guardar sus valores en el dataframe
    for (estimador_nombre in nombres_estimadores) {
      estimador_valor <- calcular_estimador(muestra_exponencial, estimador_nombre)
      estimadores_df <- bind_rows(
        estimadores_df,
        data.frame(
          Repeticion = rep,
          Estimador = estimador_nombre,
          Valor = estimador_valor
        )
      )
    }
  }
}

# Crear un data frame para almacenar resultados de insesgadez y eficiencia
resultados_propiedades <- data.frame(
  Repeticion = integer(0),
  Estimador = character(0),
  Ins = numeric(0),
  Efi = numeric(0),
  ValorEstimador = numeric(0),
  ParametroVerdadero = numeric(0)
)

# Calcular insesgadez y eficiencia para cada estimador
for (estimador_nombre in nombres_estimadores) {
  for (rep in repeticiones) {
    valores_estimador <- estimadores_df$Valor[estimadores_df$Estimador == estimador_nombre & estimadores_df$Repeticion == rep]
    insesgadez <- calcular_insesgadez(valores_estimador, parametro_verdadero)
    eficiencia <- calcular_eficiencia(valores_estimador)
    resultados_propiedades <- bind_rows(
      resultados_propiedades,
      data.frame(
        Repeticion = rep,
        Estimador = estimador_nombre,
        Ins = insesgadez,
        Efi = eficiencia,
        ValorEstimador = valores_estimador[1],
        ParametroVerdadero = parametro_verdadero
      )
    )
  }
}

# Mostrar resultados de insesgadez, eficiencia, valor del estimador y valor del parámetro verdadero
print(resultados_propiedades)
##    Repeticion  Estimador          Ins       Efi ValorEstimador
## 1          20 Estimador1 -0.110980026 0.2422727      0.4965645
## 2          50 Estimador1 -0.069925491 0.2374691      0.8639117
## 3         100 Estimador1 -0.020843569 0.2293608      0.3765101
## 4        1000 Estimador1 -0.001231685 0.2605684      0.3903601
## 5          20 Estimador2  0.732144459 1.2166570      1.0947965
## 6          50 Estimador2  0.846909318 1.0738327      1.6006227
## 7         100 Estimador2  0.960201066 1.0416369      0.6280259
## 8        1000 Estimador2  0.995351478 1.1348951      0.7813952
## 9          20 Estimador3 -0.096706538 0.1929469      0.6735387
## 10         50 Estimador3 -0.035294083 0.2490783      0.9473392
## 11        100 Estimador3 -0.039829295 0.1732178      0.4677269
## 12       1000 Estimador3 -0.001282063 0.2392728      0.3654417
## 13         20 Estimador4  0.068759929 0.3743746      0.9706381
## 14         50 Estimador4  0.119400155 0.4305371      0.9918955
## 15        100 Estimador4  0.109886415 0.2817314      0.6889960
## 16       1000 Estimador4  0.159811025 0.3934721      0.3886729
##    ParametroVerdadero
## 1                   1
## 2                   1
## 3                   1
## 4                   1
## 5                   1
## 6                   1
## 7                   1
## 8                   1
## 9                   1
## 10                  1
## 11                  1
## 12                  1
## 13                  1
## 14                  1
## 15                  1
## 16                  1
  • Análisis de las propiedades Insesgadez y Efiencia

Nota: La ejecución del código genera valores aleatorios, por lo que se establece, de caracter general, las conclusiones del análisis por propiedad evaluada.

  1. La insesgadez, como propiedad clave de estimadores en estadística, se puede concluir con la definición de si la tendencia de comportamiento de un estimador, es parcial o no. En relación con la eficiencia, se puede indicar que mide el nivel de dispersión de las estimaciones.

  2. Por lo tanto, en relación con la insesgadez, si se observa valores positivos, se puede entender que el estimador, tiene a sobreestimar el parámetro definido (θ=1). Si es negativo,a subestimar este parámetro.

  3. Por último, en cuanto a la eficiencia, entre menor varianza, se considera más preciso el estimador.

    • A continuación, se presenta el gráfico de dispersión y diagrama de caja de los valores que asumen los estimadores para cada repetición:
# Cargar librería
library(dplyr)
library(ggplot2)
# Crear un gráfico de dispersión (scatter plot) para cada estimador
ggplot(estimadores_df, aes(x = Repeticion, y = Valor, color = Estimador)) +
  geom_point() +
  facet_wrap(~Estimador, scales = "free_y") +
  labs(
    title = "Valor de Estimadores por Repetición",
    x = "Repeticiones",
    y = "Valor Estimador"
  ) +
  theme_minimal()

# Crear diagramas de cajas para cada estimador
ggplot(estimadores_df, aes(x = Estimador, y = Valor, fill = Estimador)) +
  geom_boxplot() +
  labs(
    title = "Diagrama de Cajas de Estimadores",
    x = "Estimador",
    y = "Valor Estimador"
  ) +
  theme_minimal()

  • Se observa, que el estimador 2, sería el menos recomendado para la estimación del parámetro verdadero.

  • RESULTADOS CONSISTENCIA

La propiedad de consistencia, es fundamental en el análisis de estimadores, ya que se refiere al comportamiento de un estimador a medida que el tamaño de la muestra aumenta. Por lo tanto, se considera consistente, si a medida que aumenta, el valor de este, converge al parámetro θ definido (1).

# Cargar librerías
library(dplyr)
library(ggplot2)

# Definir función para calcular estimadores
calcular_estimadores <- function(muestra) {
  n <- length(muestra)
  estimador_1 <- (muestra[1] + muestra[2]) / 6 + (muestra[3] + muestra[4]) / 3
  estimador_2 <- (muestra[1] + 2 * muestra[2] + 3 * muestra[3] + 4 * muestra[4]) / 5
  estimador_3 <- (muestra[1] + muestra[2] + muestra[3] + muestra[4]) / 4
  estimador_4 <- (min(muestra) + max(muestra)) / 2
  return(c(estimador_1, estimador_2, estimador_3, estimador_4))
}

# Parámetro θ
parametro_verdadero <- 1

# Crear un data frame para almacenar resultados
resultados <- data.frame(n = numeric(0), Estimador_1 = numeric(0), Estimador_2 = numeric(0), Estimador_3 = numeric(0), Estimador_4 = numeric(0))

# Calcular estimadores para diferentes valores de n
for (n in seq(4, 50, by = 5)) {
  muestra_exponencial <- rexp(n, rate = 1 / parametro_verdadero)
  estimador_valores <- calcular_estimadores(muestra_exponencial)
  resultados <- bind_rows(
    resultados,
    data.frame(
      n = n,
      Estimador_1 = estimador_valores[1],
      Estimador_2 = estimador_valores[2],
      Estimador_3 = estimador_valores[3],
      Estimador_4 = estimador_valores[4]
    )
  )
}

# Mostrar tabla de resultados
print(resultados)
##     n Estimador_1 Estimador_2 Estimador_3 Estimador_4
## 1   4   0.5272338    1.124134   0.5019497   0.5279698
## 2   9   0.9864416    1.869243   0.8168475   1.1416667
## 3  14   1.4259516    2.803123   1.3877572   1.4152720
## 4  19   1.4778515    3.060665   1.1737471   1.9034149
## 5  24   0.8316131    1.522710   0.9364834   1.9322546
## 6  29   0.6801674    1.453547   0.6841125   1.7844096
## 7  34   1.1027205    2.201035   0.9430028   3.0497831
## 8  39   1.4499816    3.153401   1.3264790   2.7711633
## 9  44   1.4828304    2.889129   1.2752313   2.3375423
## 10 49   0.7130388    1.435386   0.7658177   1.2898233
# Graficar el comportamiento de los estimadores
ggplot(resultados, aes(x = n)) +
  geom_line(aes(y = Estimador_1, color = "Estimador 1"), size = 1) +
  geom_line(aes(y = Estimador_2, color = "Estimador 2"), size = 1) +
  geom_line(aes(y = Estimador_3, color = "Estimador 3"), size = 1) +
  geom_line(aes(y = Estimador_4, color = "Estimador 4"), size = 1) +
  geom_hline(yintercept = parametro_verdadero, color = "green", linetype = "dashed", size = 1) +
  labs(x = "Tamaño de la Muestra (n)", y = "Valor del Estimador") +
  scale_color_manual(values = c("Estimador 1" = "red", "Estimador 2" = "blue", "Estimador 3" = "purple", "Estimador 4" = "orange")) +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

  • Análisis de la propiedad CONSISTENCIA

Nota: La ejecución del código genera valores aleatorios, por lo que se establece, de caracter general, que el comportamiento del estimador que se visualice por medio de la gráfica, como el valor más cercano al parámetro θ definido (8), a medida que aumenta n, es el más consistente.

  • Por último, y teniendo en cuenta que la consistencia se refiere a la propiedad de que un estimador se acerque al valor verdadero del parámetro definido, a medida que el tamaño de la muestra aumenta, se concluye que un estimador se puede considerar más preciso, en la medida que se obtenga mayor cantidad de datos a evaluar como muestra.