Problema 2 - Propiedades de los Estimadores

Genere una muestra de n=20, 50, 100 y 1000 para cada uno de los estimadores planteados (para cada uno evaluar las propiedades de insesgadez, eficiencia y consistencia):

theta <- 2


estimador_1 <- function(x1,x2,x3,x4){
  return ( (x1 + x2)/6 + (x3 + x4)/3)
}


estimador_2 <- function(x1,x2,x3,x4){
  return ( (x1 + 2 * x2 + 3 * x3 + 4 * x4)/5 )
}


estimador_3 <- function(x1,x2,x3,x4){
  return ( (x1 + x2+ x3 + x4)/4 )
}


estimador_4 <- function(x1,x2,x3,x4){
  return ( (min(x1,x2,x3,x4) + max(x1,x2,x3,x4))/2 )
}

Simulación con n=20

n <- 20
set.seed(123)

m = matrix(data=rexp(n*4, theta), nrow = n, byrow = TRUE)

colnames(m) <- c('Teta 1', 'Teta 2', 'Teta 3', 'Teta 4')
matriz20 = m[1:n,]

for (i in 1:n){
  matriz20[i,1] = estimador_1(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz20[i,2] = estimador_2(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz20[i,3] = estimador_3(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz20[i,4] = estimador_4(m[i,1], m[i,2], m[i,3], m[i,4]) 
}

estimadoresn20 = data.frame(matriz20)
boxplot(estimadoresn20, xlab = "Estimadores para N=20", ylab="Valores Estimadores")
  abline(h=theta, col="red")

media <- apply(estimadoresn20, 2, mean)
varianza <- apply(estimadoresn20, 2, var)
sesgo <- theta-media

comp = data.frame(media, varianza, sesgo)
prop.table(comp)
##             media    varianza     sesgo
## Teta.1 0.05773794 0.005968878 0.1770753
## Teta.2 0.11609673 0.029661766 0.1187165
## Teta.3 0.05970884 0.007186097 0.1751044
## Teta.4 0.07117079 0.017930143 0.1636425

En esta simulación se observa que el Theta 2 tiene un valor más cercano a la media, por ende presenta menor sesgo. Y el estimador más eficiente sería el Teta 3, ya que presenta una varianza mucho menor que la de los otros estimadores.

Simulación con n=50

n <- 50
set.seed(123)

m = matrix(data=rexp(n*4, theta), nrow = n, byrow = TRUE)

colnames(m) <- c('Teta 1', 'Teta 2', 'Teta 3', 'Teta 4')
matriz50 = m[1:n,]

for (i in 1:n){
  matriz50[i,1] = estimador_1(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz50[i,2] = estimador_2(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz50[i,3] = estimador_3(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz50[i,4] = estimador_4(m[i,1], m[i,2], m[i,3], m[i,4]) 
}

estimadoresn50 = data.frame(matriz50)
boxplot(estimadoresn50, xlab = "Estimadores para N=50", ylab="Valores Estimadores")
  abline(h=theta, col="red")

media <- apply(estimadoresn50, 2, mean)
varianza <- apply(estimadoresn50, 2, var)
sesgo <- theta-media

comp = data.frame(media, varianza, sesgo)
prop.table(comp)
##             media    varianza     sesgo
## Teta.1 0.05948136 0.005877431 0.1782380
## Teta.2 0.12174049 0.026043572 0.1159789
## Teta.3 0.05985972 0.005257439 0.1778597
## Teta.4 0.06872072 0.011943928 0.1689987

En esta simulación se observa que el Theta 2 tiene un valor más cercano a la media, por ende presenta menor sesgo. Y el estimador más eficiente sería el Teta 3, ya que presenta una varianza mucho menor que la de los otros estimadores.

Simulación con n=100

n <- 100
set.seed(123)

m = matrix(data=rexp(n*4, theta), nrow = n, byrow = TRUE)

colnames(m) <- c('Teta 1', 'Teta 2', 'Teta 3', 'Teta 4')
matriz100 = m[1:n,]

for (i in 1:n){
  matriz100[i,1] = estimador_1(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz100[i,2] = estimador_2(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz100[i,3] = estimador_3(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz100[i,4] = estimador_4(m[i,1], m[i,2], m[i,3], m[i,4]) 
}

estimadoresn100 = data.frame(matriz100)
boxplot(estimadoresn100, xlab = "Estimadores para N=100", ylab="Valores Estimadores")
  abline(h=theta, col="red")

media <- apply(estimadoresn100, 2, mean)
varianza <- apply(estimadoresn100, 2, var)
sesgo <- theta-media

comp = data.frame(media, varianza, sesgo)
prop.table(comp)
##             media    varianza     sesgo
## Teta.1 0.05802591 0.006021576 0.1800046
## Teta.2 0.11578878 0.026058222 0.1222417
## Teta.3 0.05909532 0.005722945 0.1789351
## Teta.4 0.06719884 0.010075427 0.1708316

En esta simulación con 100 simulaciones se observa que nuevamente Theta 2 tiene un valor más cercano a la media, por ende presenta menor sesgo. Y aparte estimador más eficiente sería el Teta 3, ya que presenta una varianza mucho menor que la de los otros estimadores.

Simulación con n=1000

n <- 1000
set.seed(123)

m = matrix(data=rexp(n*4, theta), nrow = n, byrow = TRUE)

colnames(m) <- c('Teta 1', 'Teta 2', 'Teta 3', 'Teta 4')
matriz1000 = m[1:n,]

for (i in 1:n){
  matriz1000[i,1] = estimador_1(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz1000[i,2] = estimador_2(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz1000[i,3] = estimador_3(m[i,1], m[i,2], m[i,3], m[i,4]) 
  matriz1000[i,4] = estimador_4(m[i,1], m[i,2], m[i,3], m[i,4]) 
}

estimadoresn1000 = data.frame(matriz1000)
boxplot(estimadoresn1000, xlab = "Estimadores para N=1000", ylab="Valores Estimadores")
  abline(h=theta, col="red")

media <- apply(estimadoresn1000, 2, mean)
varianza <- apply(estimadoresn1000, 2, var)
sesgo <- theta-media

comp = data.frame(media, varianza, sesgo)
prop.table(comp)
##             media    varianza     sesgo
## Teta.1 0.05848953 0.008129141 0.1759782
## Teta.2 0.11715539 0.035011071 0.1173124
## Teta.3 0.05861548 0.007130077 0.1758523
## Teta.4 0.06855209 0.011858732 0.1659157

En esta simulación con 1000 simulaciones se observa que nuevamente Theta 2 mejora el valor de su media a un valor más cercano a la media, por ende presenta menor sesgo. Y el estimador más eficiente sería el Teta 3, ya que presenta una varianza mucho menor que la de los otros estimadores pero su media es muy alejada del valor real.

Conclusión

De los 4 estimadores presentados, el que mejor resultados obtiene es el Tetha 2 ya que es el que resultados más cercanos en su media al tetha real se obtiene para todos los datos. Adicional presenta el menor sesgo, y también presenta la mayor varianza de todos los estimadores.