Informe Actividad 2, Problema 2: Propiedades de los estimadores

En este informe se presenta la solución del problema 2, correspondiente a la actividad 2 de la asignatura de Métodos y Simulación estadística.

Objetivo

Determinar las características de los 4 estimadores propuestos.

Generación de Población con Distribución Exponencial

Se crea la población de estudio

pobDisExp = rexp(1000)

Creación de Función para generación de muestra aleatoria

Se crea función para generar la muestra aleatoria con n=4, que son los elementos requeridos en los estimadores propuestos.

n = 4
genera_muestra <- function(data, n) {
  muestra <- sample(data, n)
  return(muestra)
}

Evaluación de las propiedades de los estimadores para tamaño de muestra n=20

Se generan las muestras aplicando la función “genera_muestra”

num_muestras <- 20  
muestras <- lapply(1:num_muestras, function(x) genera_muestra(pobDisExp, n))

Se crea Dataframe vacío y se itera sobre la lista de muestras para agregar los datos al Dataframe

df20 <- data.frame()
for (i in 1:length(muestras)) {
  df20 <- rbind(df20, muestras[[i]])
}

Se cambian los nombres de las columnas

colnames(df20) <- c("X1", "X2", "X3", "X4")

Se estima cada uno de los Estimadores para n=20

df20['Est1'] <- ((df20['X1'] + df20['X2'])/6 + (df20['X3'] + df20['X4'])/3)
df20['Est2'] <- (df20['X1'] + 2*df20['X2'] + 3*df20['X3'] + 4*df20['X4'])/5
df20['Est3'] <- (df20['X1'] + df20['X2'] + df20['X3'] + df20['X4'])/4
df20['Est4'] <- (apply(df20[,c("X1","X2","X3","X4")], 1, FUN = min) + apply(df20[,c("X1","X2","X3","X4")], 1, FUN = max))/2

Se grafican los estimadores para n=20

Summary<-boxplot(df20[,c("Est1","Est2","Est3","Est4")],
                 main = "Estimación de Estimadores (n = 20)",
                 xlab="Estimadores",
                 ylab="Valor Estimado", las=1)$stats

colnames(Summary)<-c("Theta 1","Theta 2","Theta 3","Theta 4")
rownames(Summary)<-c("Min","First Quartile","Median","Third Quartile","Maximum")
Summary
##                  Theta 1  Theta 2   Theta 3   Theta 4
## Min            0.2905152 1.017499 0.2667689 0.3052240
## First Quartile 0.6564054 1.373305 0.6284851 0.6505611
## Median         0.7832533 1.585634 0.8392904 0.8732693
## Third Quartile 0.9037461 1.751151 1.0103858 1.1263557
## Maximum        1.1495437 1.982459 1.4764878 1.5612916

Evaluación de las propiedades de los estimadores para tamaño de muestra n=50

Se generan las muestras aplicando la función “genera_muestra”

num_muestras <- 50  
muestras <- lapply(1:num_muestras, function(x) genera_muestra(pobDisExp, n))

Se crea Dataframe vacío y se itera sobre la lista de muestras para agregar los datos al Dataframe

df50 <- data.frame()
for (i in 1:length(muestras)) {
  df50 <- rbind(df50, muestras[[i]])
}

Se cambian los nombres de las columnas

colnames(df50) <- c("X1", "X2", "X3", "X4")

Se estima cada uno de los Estimadores para n=50

df50['Est1'] <- ((df50['X1'] + df50['X2'])/6 + (df50['X3'] + df50['X4'])/3)
df50['Est2'] <- (df50['X1'] + 2*df50['X2'] + 3*df50['X3'] + 4*df50['X4'])/5
df50['Est3'] <- (df50['X1'] + df50['X2'] + df50['X3'] + df50['X4'])/4
df50['Est4'] <- (apply(df50[,c("X1","X2","X3","X4")], 1, FUN = min) + apply(df50[,c("X1","X2","X3","X4")], 1, FUN = max))/2

Se grafican los estimadores para n=50

Summary<-boxplot(df50[,c("Est1","Est2","Est3","Est4")],
                 main = "Estimación de Estimadores (n = 50)",
                 xlab="Estimadores",
                 ylab="Valor Estimado", las=1)$stats

colnames(Summary)<-c("Theta 1","Theta 2","Theta 3","Theta 4")
rownames(Summary)<-c("Min","First Quartile","Median","Third Quartile","Maximum")
Summary
##                  Theta 1   Theta 2   Theta 3   Theta 4
## Min            0.1749080 0.3245546 0.1922231 0.2473818
## First Quartile 0.4811561 0.9936438 0.5417376 0.5840607
## Median         0.7272959 1.4484609 0.7488558 0.9598991
## Third Quartile 1.1402087 2.5037428 1.2008639 1.7897261
## Maximum        1.9977401 4.4387605 2.0470681 3.2200756

Evaluación de las propiedades de los estimadores para tamaño de muestra n=100

Se generan las muestras aplicando la función “genera_muestra”

num_muestras <- 100  
muestras <- lapply(1:num_muestras, function(x) genera_muestra(pobDisExp, n))

Se crea Dataframe vacío y se itera sobre la lista de muestras para agregar los datos al Dataframe

df100 <- data.frame()
for (i in 1:length(muestras)) {
  df100 <- rbind(df100, muestras[[i]])
}

Se cambian los nombres de las columnas

colnames(df100) <- c("X1", "X2", "X3", "X4")

Se estima cada uno de los Estimadores para n=100

df100['Est1'] <- ((df100['X1'] + df100['X2'])/6 + (df100['X3'] + df100['X4'])/3)
df100['Est2'] <- (df100['X1'] + 2*df100['X2'] + 3*df100['X3'] + 4*df100['X4'])/5
df100['Est3'] <- (df100['X1'] + df100['X2'] + df100['X3'] + df100['X4'])/4
df100['Est4'] <- (apply(df100[,c("X1","X2","X3","X4")], 1, FUN = min) + apply(df100[,c("X1","X2","X3","X4")], 1, FUN = max))/2

Se grafican los estimadores para n=100

Summary<-boxplot(df100[,c("Est1","Est2","Est3","Est4")],
                 main = "Estimación de Estimadores (n = 100)",
                 xlab="Estimadores",
                 ylab="Valor Estimado", las=1)$stats

colnames(Summary)<-c("Theta 1","Theta 2","Theta 3","Theta 4")
rownames(Summary)<-c("Min","First Quartile","Median","Third Quartile","Maximum")
Summary
##                  Theta 1   Theta 2   Theta 3   Theta 4
## Min            0.1708723 0.3562864 0.1737754 0.1876168
## First Quartile 0.5661583 1.0823853 0.5560931 0.6710242
## Median         0.7970108 1.5879510 0.9158921 0.9965735
## Third Quartile 1.2055780 2.3834187 1.3150982 1.4719581
## Maximum        2.1138366 4.1818123 2.0475104 2.6302644

Evaluación de las propiedades de los estimadores para tamaño de muestra n=1000

Se generan las muestras aplicando la función “genera_muestra”

num_muestras <- 1000  
muestras <- lapply(1:num_muestras, function(x) genera_muestra(pobDisExp, n))

Se crea Dataframe vacío y se itera sobre la lista de muestras para agregar los datos al Dataframe

df1000 <- data.frame()
for (i in 1:length(muestras)) {
  df1000 <- rbind(df1000, muestras[[i]])
}

Se cambian los nombres de las columnas

colnames(df1000) <- c("X1", "X2", "X3", "X4")

Se estima cada uno de los Estimadores para n=1000

df1000['Est1'] <- ((df1000['X1'] + df1000['X2'])/6 + (df1000['X3'] + df1000['X4'])/3)
df1000['Est2'] <- (df1000['X1'] + 2*df1000['X2'] + 3*df1000['X3'] + 4*df1000['X4'])/5
df1000['Est3'] <- (df1000['X1'] + df1000['X2'] + df1000['X3'] + df1000['X4'])/4
df1000['Est4'] <- (apply(df1000[,c("X1","X2","X3","X4")], 1, FUN = min) + apply(df1000[,c("X1","X2","X3","X4")], 1, FUN = max))/2

Se grafican los estimadores para n=1000

Summary<-boxplot(df1000[,c("Est1","Est2","Est3","Est4")],
                 main = "Estimación de Estimadores (n = 1000)",
                 xlab="Estimadores",
                 ylab="Valor Estimado", las=1)$stats

colnames(Summary)<-c("Theta 1","Theta 2","Theta 3","Theta 4")
rownames(Summary)<-c("Min","First Quartile","Median","Third Quartile","Maximum")
Summary
##                  Theta 1   Theta 2   Theta 3   Theta 4
## Min            0.1020720 0.2005336 0.1022235 0.1038028
## First Quartile 0.5990854 1.1564468 0.6140367 0.6956943
## Median         0.9087298 1.7916391 0.9259548 1.0228420
## Third Quartile 1.3150420 2.5914058 1.3305519 1.6719995
## Maximum        2.3657938 4.7379090 2.3863454 3.1149164

Estimación de Estimadores con tamaño de muestra n=10000

Se realiza la estimación con este tamaño de muestra con el fin obtener los parámetros de referencia.

num_muestras <- 10000  
muestras <- lapply(1:num_muestras, function(x) genera_muestra(pobDisExp, n))

Se crea Dataframe vacío y se itera sobre la lista de muestras para agregar los datos al Dataframe

df10000 <- data.frame()
for (i in 1:length(muestras)) {
  df10000 <- rbind(df10000, muestras[[i]])
}

Se cambian los nombres de las columnas

colnames(df10000) <- c("X1", "X2", "X3", "X4")

Se estima cada uno de los Estimadores para n=10000

df10000['Est1'] <- ((df10000['X1'] + df10000['X2'])/6 + (df10000['X3'] + df10000['X4'])/3)
df10000['Est2'] <- (df10000['X1'] + 2*df10000['X2'] + 3*df10000['X3'] + 4*df10000['X4'])/5
df10000['Est3'] <- (df10000['X1'] + df10000['X2'] + df10000['X3'] + df10000['X4'])/4
df10000['Est4'] <- (apply(df10000[,c("X1","X2","X3","X4")], 1, FUN = min) + apply(df10000[,c("X1","X2","X3","X4")], 1, FUN = max))/2

Parámetros de Referencia

Se asumen los siguientes valores para cada parámetro

parametro1 <- mean(df10000$Est1)
parametro2 <- mean(df10000$Est2)
parametro3 <- mean(df10000$Est3)
parametro4 <- mean(df10000$Est4)
parametro1 
## [1] 0.9867525
parametro2 
## [1] 1.973201
parametro3 
## [1] 0.9868187
parametro4 
## [1] 1.184649

Evaluación del Insesgo

Theta 1 Insesgo

Se estima el Insesgo del Estimador (Theta 1) para cada tamaño de muestra

Est1_Insesgo_M20 <- mean(df20$Est1) - parametro1
Est1_Insesgo_M50 <- mean(df50$Est1) - parametro1
Est1_Insesgo_M100 <- mean(df100$Est1) - parametro1
Est1_Insesgo_M1000 <- mean(df1000$Est1) - parametro1
Est1_Insesgo_M20 
## [1] -0.1685832
Est1_Insesgo_M50 
## [1] -0.08731806
Est1_Insesgo_M100 
## [1] -0.05112234
Est1_Insesgo_M1000 
## [1] 0.03268393

El menor Insesgo lo tiene el tamaño de muestra n=1000. Se concluye que Theta 1 es Consistente

Theta 2 Insesgo

Se estima el Insesgo del Estimador (Theta 2) para cada tamaño de muestra

Est2_Insesgo_M20 <- mean(df20$Est2) - parametro2
Est2_Insesgo_M50 <- mean(df50$Est2) - parametro2
Est2_Insesgo_M100 <- mean(df100$Est2) - parametro2
Est2_Insesgo_M1000 <- mean(df1000$Est2) - parametro2
Est2_Insesgo_M20 
## [1] -0.345949
Est2_Insesgo_M50 
## [1] -0.1398943
Est2_Insesgo_M100 
## [1] -0.1210932
Est2_Insesgo_M1000 
## [1] 0.054808

El menor Insesgo lo tiene el tamaño de muestra n=1000. Se concluye que Theta 2 es Consistente

Theta 3 Insesgo

Se estima el Insesgo del Estimador (Theta 3) para cada tamaño de muestra

Est3_Insesgo_M20 <- mean(df20$Est3) - parametro3
Est3_Insesgo_M50 <- mean(df50$Est3) - parametro3
Est3_Insesgo_M100 <- mean(df100$Est3) - parametro3
Est3_Insesgo_M1000 <- mean(df1000$Est3) - parametro3
Est3_Insesgo_M20 
## [1] -0.1453617
Est3_Insesgo_M50 
## [1] -0.04124532
Est3_Insesgo_M100 
## [1] -0.02048111
Est3_Insesgo_M1000 
## [1] 0.03593428

El menor Insesgo lo tiene el tamaño de muestra n=100. Se concluye que Theta 3 es Inconsistente

Theta 4 Insesgo

Se estima el Insesgo del Estimador (Theta 4) para cada tamaño de muestra

Est4_Insesgo_M20 <- mean(df20$Est4) - parametro4
Est4_Insesgo_M50 <- mean(df50$Est4) - parametro4
Est4_Insesgo_M100 <- mean(df100$Est4) - parametro4
Est4_Insesgo_M1000 <- mean(df1000$Est4) - parametro4
Est4_Insesgo_M20 
## [1] -0.2300266
Est4_Insesgo_M50 
## [1] -0.01290773
Est4_Insesgo_M100 
## [1] -0.0312091
Est4_Insesgo_M1000 
## [1] 0.04016871

El menor Insesgo lo tiene el tamaño de muestra n=1000. Se concluye que Theta 4 es Consistente

Evaluación de la Eficiencia

Theta 1 Eficiencia

Se estima la Eficiencia del Estimador (Theta 1) para cada tamaño de muestra

Est1_Eficiencia_M20 <- var(df10000$Est1)/var(df20$Est1) 
Est1_Eficiencia_M50 <- var(df10000$Est1)/var(df50$Est1)
Est1_Eficiencia_M100 <- var(df10000$Est1)/var(df100$Est1)
Est1_Eficiencia_M1000 <- var(df10000$Est1)/var(df1000$Est1)
Est1_Eficiencia_M20  
## [1] 4.042876
Est1_Eficiencia_M50 
## [1] 1.034733
Est1_Eficiencia_M100 
## [1] 1.050321
Est1_Eficiencia_M1000 
## [1] 0.9930861

La mayor eficiencia se obtiene con tamaño de muestra n=50

Theta 2 Eficiencia

Se estima la Eficiencia del Estimador (Theta 2) para cada tamaño de muestra

Est2_Eficiencia_M20 <- var(df10000$Est2)/var(df20$Est2) 
Est2_Eficiencia_M50 <- var(df10000$Est2)/var(df50$Est2)
Est2_Eficiencia_M100 <- var(df10000$Est2)/var(df100$Est2)
Est2_Eficiencia_M1000 <- var(df10000$Est2)/var(df1000$Est2)
Est2_Eficiencia_M20 
## [1] 4.826696
Est2_Eficiencia_M50 
## [1] 0.9703087
Est2_Eficiencia_M100 
## [1] 1.048255
Est2_Eficiencia_M1000
## [1] 1.012988

La mayor eficiencia se obtiene con tamaño de muestra n=50

Theta 3 Eficiencia

Se estima la Eficiencia del Estimador (Theta 3) para cada tamaño de muestra

Est3_Eficiencia_M20 <- var(df10000$Est3)/var(df20$Est3) 
Est3_Eficiencia_M50 <- var(df10000$Est3)/var(df50$Est3)
Est3_Eficiencia_M100 <- var(df10000$Est3)/var(df100$Est3)
Est3_Eficiencia_M1000 <- var(df10000$Est3)/var(df1000$Est3)
Est3_Eficiencia_M20 
## [1] 3.059059
Est3_Eficiencia_M50 
## [1] 0.8427598
Est3_Eficiencia_M100 
## [1] 0.9613999
Est3_Eficiencia_M1000
## [1] 1.004588

La mayor eficiencia se obtiene con tamaño de muestra n=50

Theta 4 Eficiencia

Se estima la Eficiencia del Estimador (Theta 4) para cada tamaño de muestra

Est4_Eficiencia_M20 <- var(df10000$Est4)/var(df20$Est4) 
Est4_Eficiencia_M50 <- var(df10000$Est4)/var(df50$Est4)
Est4_Eficiencia_M100 <- var(df10000$Est4)/var(df100$Est4)
Est4_Eficiencia_M1000 <- var(df10000$Est4)/var(df1000$Est4)
Est4_Eficiencia_M20 
## [1] 2.563413
Est4_Eficiencia_M50 
## [1] 0.8387192
Est4_Eficiencia_M100 
## [1] 1.078153
Est4_Eficiencia_M1000
## [1] 1.004034

La mayor eficiencia se obtiene con tamaño de muestra n=20