Problema das Médias

Helen Lourenço, Vitor Kroeff

Contexto

Como proposta da disciplina CE087 (Estatística Computacional II), vamos comparar as propriedades de três estimadores da média de uma população, a média aritmética, a trimédia e o mid-range. Para isso, decidimos trabalhar com 6 diferentes cenários, buscando explorar o desempenho de cada estimador diante de diferentes situações.

Introdução

Podemos definir como um bom estimador aquele que possui menor viés, menor variância, e maior constância na estimação do parâmetro em questão. A seguir, examinaremos abordagens analíticas para avaliar esses critérios.

  • Vício

Por definição, o vício (bias) de um estimador \(\theta\) pode ser calculado como:

\[B(\hat\theta)= E(\hat\theta)-\theta\]

Assim, conforme \(E(\hat{\theta})\) se aproxima do verdadeiro valor de \(\theta\), \(B(\hat{\theta})\) se aproxima de \(0\), configurando um estimador não viciado (esperança do estimador é igual ao valor do parâmetro).

  • Variância

Escolher um estimador com menor variância proporciona estimativas mais precisas e consistentes do parâmetro de interesse, reduzindo a dispersão dos valores estimados. Além da variância, podemos calcular o erro padrão do estimador, importante para testes de hipóteses e intervalos de confiança, da seguinte forma:

\[EP(\hat\theta)=\sqrt{Var(\hat\theta)}\]

  • Erro Quadrático Médio (EQM)

O erro quadrático médio é uma medida que equilibra o vício e a variância de um estimador. Se o estimador for não viciado, seu EQM é igual à sua variância. Seu cálculo é feito da seguinte forma:

\[EQM = V(\hat\theta)+[B(\hat\theta)]^2\]

Assim, valores mais baixos indicam estimativas mais precisas.

  • Eficiência Relativa

A eficiência relativa entre dois estimadores é definida como:

\[Efr(\hat\theta_1,\hat\theta_2) = \frac{EQM(\hat\theta_1)}{EQM(\hat\theta_2)}\]

Dessa forma, se \(Efr(\hat\theta_1,\hat\theta_2) < 1\), concluimos que \(\hat\theta_1\) fornece estimativas mais precisas para o parâmetro em consideração (e vice-versa).

Embora tenhamos listado formas analíticas de avaliar o desempenho de um estimador neste tópico, nosso trabalho priorizará técnicas computacionais, por meio de simulação, para uma análise mais prática e abrangente.

Cenários

Para comparar o desempenho dos estimadores, decidimos seguir o seguinte roteiro:

  • Gerar 100 observações da distribuição desejada

  • Calcular a média aritmética, a trimédia, e o mid-range

  • Armazenar os resultados em um data frame

  • Repetir o processo (1000 vezes)

  • Analisar a distribuição das médias e comparar a média das médias (\(\hat{\mu}\)) com o verdadeiro valor de \(\mu\)

  • Calcular o erro quadrático médio, o erro padrão e a eficiência relativa (a pares) dos estimadores

Considerar as linhas azuis dos gráficos de dispersão como o valor do parâmetro da distribuição e as linhas vermelhas como a média das médias calculadas.

Distribuição Normal

No caso da distribuição normal com média 0 e desvio padrão 1, o primeiro cenário (mais simples) que imaginamos, os três estimadores atuaram de forma similar, com distribuições muito parecidas. Apesar disso, a média aritmética foi mais eficiente em relação aos outros estimadores, seguida pela trimédia. Mesmo com um desempenho levemente inferior, o mid-range apresentou medidas muito similares aos outros estimadores.

  • Simulação
set.seed(13)

n <- 1000
df <- data.frame(media_arit = numeric(n), trimedia = numeric(n), mid_range = numeric(n))

for (i in 1:n) {
  dados <- rnorm(100)
  df[i, "media_arit"] <- mean(dados)
  df[i, "trimedia"] <- (quantile(dados, 0.25) + 2 * quantile(dados, 0.5) + quantile(dados, 0.75)) / 4
  df[i, "mid_range"] <- (quantile(dados, 0.25) + quantile(dados, 0.75)) / 2
}
  • Análise Gráfica
# Histograma
par(mfrow = c(1,3))
hist(df$media_arit, col = "salmon", main = "Média Aritmética", xlab = "mu.hat", xlim = c(-0.4, 0.4), ylim = c(0, 200))
hist(df$trimedia, col = "salmon", main = "Trimédia", xlab = "mu.hat", xlim = c(-0.4, 0.4), ylim = c(0, 200))
hist(df$mid_range, col = "salmon", main = "Mid-range", xlab = "mu.hat", xlim = c(-0.4, 0.4), ylim = c(0, 200))

# Scatterplot
par(mfrow = c(1,3))

plot(df$media_arit ~ c(1:1000), col = "darkgrey", 
     main = "Média Aritmética", xlab = "Amostra", ylab = "mu.hat", ylim = c(-0.4, 0.3))
abline(h = 0, col = "steelblue", lwd = 1.8)
abline(h = mean(df$media_arit), col = "#ff5454", lwd = 1.8)

plot(df$trimedia ~ c(1:1000), col = "darkgrey", 
     main = "Trimédia", xlab = "Amostra", ylab = "mu.hat", ylim = c(-0.4, 0.3))
abline(h = 0, col = "steelblue", lwd = 1.8)
abline(h = mean(df$trimedia), col = "#ff5454", lwd = 1.8)

plot(df$mid_range ~ c(1:1000), col = "darkgrey", 
     main = "Mid-range", xlab = "Amostra", ylab = "mu.hat", ylim = c(-0.4, 0.3))
abline(h = 0, col = "steelblue", lwd = 1.8)
abline(h = mean(df$mid_range), col = "#ff5454", lwd = 1.8)

  • Viés, Erro Padrão e EQM
dados2 <- c(mean(df$media_arit), mean(df$trimedia), mean(df$mid_range),sd(df$media_arit), sd(df$trimedia), sd(df$mid_range), (var(df$media_arit)+(mean(df$media_arit))^2), (var(df$trimedia)+(mean(df$trimedia))^2), (var(df$mid_range)+(mean(df$mid_range))^2))

tabela <- data.frame(t(matrix(dados2,3,3)))
coluna <- c("Media Aritmética", "Trimédia", "Mid-range")
linha <- c("Viés", "Erro Padrão", "EQM")
tabela <- `colnames<-`(tabela,coluna)
tabela <- `row.names<-`(tabela, linha)

kable(tabela)
Media Aritmética Trimédia Mid-range
Viés 0.0022111 0.0037514 0.0056183
Erro Padrão 0.0978674 0.1104885 0.1081603
EQM 0.0095829 0.0122218 0.0117302
  • Eficiência Relativa
# Média Aritmética x Trimédia
tabela[3,1]/tabela[3,2]
## [1] 0.7840854
# Média Aritmética x Mid-range
tabela[3,1]/tabela[3,3]
## [1] 0.8169422
# Trimédia x Mid Range
tabela[3,2]/tabela[3,3]
## [1] 1.041905

Distribuição Normal com Outlier

Para o segundo cenário, geramos 99 observações de uma N(0,1) e uma observação fixa (25), com o intuito de observar o efeito de um outlier ao conjunto de dados. Assim, percebemos que o desempenho da média aritmética é muito diferente, com maiores viés, erro padrão, e EQM, além de eficiência muito inferior. Por fim, quando comparamos a trimédia e o mid-range, vemos que os dois tiveram performances similares.

  • Simulação
set.seed(13)

n <- 1000
df <- data.frame(media_arit = numeric(n), trimedia = numeric(n), mid_range = numeric(n))

for (i in 1:n) {
  dados <- rnorm(99) ; dados[100] <- 25
  df[i, "media_arit"] <- mean(dados)
  df[i, "trimedia"] <- (quantile(dados, 0.25) + 2 * quantile(dados, 0.5) + quantile(dados, 0.75)) / 4
  df[i, "mid_range"] <- (quantile(dados, 0.25) + quantile(dados, 0.75)) / 2
}
  • Análise Gráfica
# Histograma
par(mfrow = c(1,3))
hist(df$media_arit, col = "salmon", main = "Média Aritmética", xlab = "mu.hat", xlim = c(-0.3, 0.6), ylim = c(0, 200))
hist(df$trimedia, col = "salmon", main = "Trimédia", xlab = "mu.hat", xlim = c(-0.3, 0.6), ylim = c(0, 200))
hist(df$mid_range, col = "salmon", main = "Mid-range", xlab = "mu.hat", xlim = c(-0.3, 0.6), ylim = c(0, 200))

# Scatterplot
par(mfrow = c(1,3))

plot(df$media_arit ~ c(1:1000), col = "darkgrey", 
     main = "Média Aritmética", xlab = "Amostra", ylab = "mu.hat", ylim = c(-0.4, 0.6))
abline(h = 0, col = "steelblue", lwd = 1.8)
abline(h = mean(df$media_arit), col = "#ff5454", lwd = 1.8)

plot(df$trimedia ~ c(1:1000), col = "darkgrey", 
     main = "Trimédia", xlab = "Amostra", ylab = "mu.hat", ylim = c(-0.4, 0.6))
abline(h = 0, col = "steelblue", lwd = 1.8)
abline(h = mean(df$trimedia), col = "#ff5454", lwd = 1.8)

plot(df$mid_range ~ c(1:1000), col = "darkgrey", 
     main = "Mid-range", xlab = "Amostra", ylab = "mu.hat", ylim = c(-0.4, 0.6))
abline(h = 0, col = "steelblue", lwd = 1.8)
abline(h = mean(df$mid_range), col = "#ff5454", lwd = 1.8)

  • Viés, Erro Padrão e EQM
dados2 <- c(mean(df$media_arit), mean(df$trimedia), mean(df$mid_range),sd(df$media_arit), sd(df$trimedia), sd(df$mid_range), (var(df$media_arit)+(mean(df$media_arit))^2), (var(df$trimedia)+(mean(df$trimedia))^2), (var(df$mid_range)+(mean(df$mid_range))^2))

tabela <- data.frame(t(matrix(dados2,3,3)))
coluna <- c("Media Aritmética", "Trimédia", "Mid-range")
linha <- c("Viés", "Erro Padrão", "EQM")
tabela <- `colnames<-`(tabela,coluna)
tabela <- `row.names<-`(tabela, linha)

kable(tabela)
Media Aritmética Trimédia Mid-range
Viés 0.2522826 0.0175661 0.0217391
Erro Padrão 0.0981642 0.1102154 0.1096493
EQM 0.0732827 0.0124560 0.0124956
  • Eficiência Relativa
# Média Aritmética x Trimédia
tabela[3,1]/tabela[3,2]
## [1] 5.883322
# Média Aritmética x Mid-range
tabela[3,1]/tabela[3,3]
## [1] 5.864696
# Trimédia x Mid Range
tabela[3,2]/tabela[3,3]
## [1] 0.9968342

Distribuição Exponencial

Já com dados da distribuição exponencial com média 1, quando analisamos os gráficos scatter, vemos uma diferença gritante entre os estimadores, com um ótimo desempenho da média aritmética, que tem a média das médias centradas em 1. Além disso, o estimador mid-range teve um desempenho superior ao estimador trimédia.

  • Simulação
set.seed(13)

n <- 1000
df <- data.frame(media_arit = numeric(n), trimedia = numeric(n), mid_range = numeric(n))

for (i in 1:n) {
  dados <- rexp(100)
  df[i, "media_arit"] <- mean(dados)
  df[i, "trimedia"] <- (quantile(dados, 0.25) + 2 * quantile(dados, 0.5) + quantile(dados, 0.75)) / 4
  df[i, "mid_range"] <- (quantile(dados, 0.25) + quantile(dados, 0.75)) / 2
}
  • Análise Gráfica
# Histograma
par(mfrow = c(1,3))
hist(df$media_arit, col = "salmon", main = "Média Aritmética", xlab = "mu.hat", xlim = c(0.4, 1.4), ylim = c(0, 250))
hist(df$trimedia, col = "salmon", main = "Trimédia", xlab = "mu.hat", xlim = c(0.4, 1.4), ylim = c(0, 250))
hist(df$mid_range, col = "salmon", main = "Mid-range", xlab = "mu.hat", xlim = c(0.4, 1.4), ylim = c(0, 250))

# Scatterplot
par(mfrow = c(1,3))

plot(df$media_arit ~ c(1:1000), col = "darkgrey", 
     main = "Média Aritmética", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.5, 1.4))
abline(h = 1, col = "steelblue", lwd = 1.8)
abline(h = mean(df$media_arit), col = "#ff5454", lwd = 1.8)

plot(df$trimedia ~ c(1:1000), col = "darkgrey", 
     main = "Trimédia", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.5, 1.4))
abline(h = 1, col = "steelblue", lwd = 1.8)
abline(h = mean(df$trimedia), col = "#ff5454", lwd = 1.8)

plot(df$mid_range ~ c(1:1000), col = "darkgrey", 
     main = "Mid-range", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.5, 1.4))
abline(h = 1, col = "steelblue", lwd = 1.8)
abline(h = mean(df$mid_range), col = "#ff5454", lwd = 1.8)

  • Viés, Erro Padrão e EQM
dados2 <- c(mean(df$media_arit)-1, mean(df$trimedia)-1, mean(df$mid_range)-1,sd(df$media_arit), sd(df$trimedia), sd(df$mid_range), (var(df$media_arit)+(mean(df$media_arit)-1)^2), (var(df$trimedia)+(mean(df$trimedia)-1)^2), (var(df$mid_range)+(mean(df$mid_range)-1)^2))

tabela <- data.frame(t(matrix(dados2,3,3)))
coluna <- c("Media Aritmética", "Trimédia", "Mid-range")
linha <- c("Viés", "Erro Padrão", "EQM")
tabela <- `colnames<-`(tabela,coluna)
tabela <- `row.names<-`(tabela, linha)

kable(tabela)
Media Aritmética Trimédia Mid-range
Viés -0.0055265 -0.2375601 -0.1667842
Erro Padrão 0.0992148 0.0883815 0.0978720
EQM 0.0098741 0.0642461 0.0373959
  • Eficiência Relativa
# Média Aritmética x Trimédia
tabela[3,1]/tabela[3,2]
## [1] 0.1536921
# Média Aritmética x Mid-range
tabela[3,1]/tabela[3,3]
## [1] 0.2640429
# Trimédia x Mid Range
tabela[3,2]/tabela[3,3]
## [1] 1.717999

Distribuição Uniforme

Para explorar casos mais limitados, geramos dados com distribuição U(0,1). Para a nossa surpresa, os três estimadores tiveram ótimas performances (trimédia e mid-range apresentaram maior dispersão, no entanto). Apesar disso, o estimador média aritmética se mostrou mais eficiente.

  • Simulação
set.seed(13)

n <- 1000
df <- data.frame(media_arit = numeric(n), trimedia = numeric(n), mid_range = numeric(n))

for (i in 1:n) {
  dados <- runif(100)
  df[i, "media_arit"] <- mean(dados)
  df[i, "trimedia"] <- (quantile(dados, 0.25) + 2 * quantile(dados, 0.5) + quantile(dados, 0.75)) / 4
  df[i, "mid_range"] <- (quantile(dados, 0.25) + quantile(dados, 0.75)) / 2
}
  • Análise Gráfica
# Histograma
par(mfrow = c(1,3))
hist(df$media_arit, col = "salmon", main = "Média Aritmética", xlab = "mu.hat", xlim = c(0.35,0.65), ylim = c(0,300))
hist(df$trimedia, col = "salmon", main = "Trimédia", xlab = "mu.hat", xlim = c(0.35,0.65), ylim = c(0,300))
hist(df$mid_range, col = "salmon", main = "Mid-range", xlab = "mu.hat", xlim = c(0.35,0.65), ylim = c(0,300))

# Scatterplot
par(mfrow = c(1,3))

plot(df$media_arit ~ c(1:1000), col = "darkgrey", 
     main = "Média Aritmética", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.35, 0.6))
abline(h = 0.5, col = "steelblue", lwd = 1.8)
abline(h = mean(df$media_arit), col = "#ff5454", lwd = 1.8)

plot(df$trimedia ~ c(1:1000), col = "darkgrey", 
     main = "Trimédia", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.35, 0.6))
abline(h = 0.5, col = "steelblue", lwd = 1.8)
abline(h = mean(df$trimedia), col = "#ff5454", lwd = 1.8)

plot(df$mid_range ~ c(1:1000), col = "darkgrey", 
     main = "Mid-range", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.35, 0.6))
abline(h = 0.5, col = "steelblue", lwd = 1.8)
abline(h = mean(df$mid_range), col = "#ff5454", lwd = 1.8)

  • Viés, Erro Padrão e EQM
dados2 <- c(mean(df$media_arit)-0.5, mean(df$trimedia)-0.5, mean(df$mid_range)-0.5,sd(df$media_arit), sd(df$trimedia), sd(df$mid_range), (var(df$media_arit)+(mean(df$media_arit)-0.5)^2), (var(df$trimedia)+(mean(df$trimedia)-0.5)^2), (var(df$mid_range)+(mean(df$mid_range)-0.5)^2))

tabela <- data.frame(t(matrix(dados2,3,3)))
coluna <- c("Media Aritmética", "Trimédia", "Mid-range")
linha <- c("Viés", "Erro Padrão", "EQM")
tabela <- `colnames<-`(tabela,coluna)
tabela <- `row.names<-`(tabela, linha)

kable(tabela)
Media Aritmética Trimédia Mid-range
Viés 0.0014706 0.0019910 0.0016843
Erro Padrão 0.0287842 0.0394147 0.0355739
EQM 0.0008307 0.0015575 0.0012683
  • Eficiência Relativa
# Média Aritmética x Trimédia
tabela[3,1]/tabela[3,2]
## [1] 0.5333539
# Média Aritmética x Mid-range
tabela[3,1]/tabela[3,3]
## [1] 0.654944
# Trimédia x Mid Range
tabela[3,2]/tabela[3,3]
## [1] 1.227973

Distribuição Poisson

Aqui, decidimos gerar alguns dados com distribuição discreta (poisson com média 5). Nesse cenário, a média aritmética teve uma boa performance, com uma curva bem definida ao redor do valor real do parâmetro. Apesar disso, os outros estimadores acertaram bastante, um ponto positivo, mas erraram muito também (frequência muito alta de valores incorretos).

  • Simulação
set.seed(13)

n <- 1000
df <- data.frame(media_arit = numeric(n), trimedia = numeric(n), mid_range = numeric(n))

for (i in 1:n) {
  dados <- rpois(100, lambda = 5)
  df[i, "media_arit"] <- mean(dados)
  df[i, "trimedia"] <- (quantile(dados, 0.25) + 2 * quantile(dados, 0.5) + quantile(dados, 0.75)) / 4
  df[i, "mid_range"] <- (quantile(dados, 0.25) + quantile(dados, 0.75)) / 2
}
  • Análise Gráfica
# Histograma
par(mfrow = c(1,3))
hist(df$media_arit, col = "salmon", main = "Média Aritmética", xlab = "mu.hat", xlim = c(3,6), ylim = c(0,400))
hist(df$trimedia, col = "salmon", main = "Trimédia", xlab = "mu.hat", xlim = c(3,6), ylim = c(0,400))
hist(df$mid_range, col = "salmon", main = "Mid-range", xlab = "mu.hat", xlim = c(3,6), ylim = c(0,400))

# Scatterplot
par(mfrow = c(1,3))

plot(df$media_arit ~ c(1:1000), col = "darkgrey", 
     main = "Média Aritmética", xlab = "Amostra", ylab = "mu.hat", ylim = c(4, 6))
abline(h = 5, col = "steelblue", lwd = 1.8)
abline(h = mean(df$media_arit), col = "#ff5454", lwd = 1.8)

plot(df$trimedia ~ c(1:1000), col = "darkgrey", 
     main = "Trimédia", xlab = "Amostra", ylab = "mu.hat", ylim = c(4, 6))
abline(h = 5, col = "steelblue", lwd = 1.8)
abline(h = mean(df$trimedia), col = "#ff5454", lwd = 1.8)

plot(df$mid_range ~ c(1:1000), col = "darkgrey", 
     main = "Mid-range", xlab = "Amostra", ylab = "mu.hat", ylim = c(4, 6))
abline(h = 5, col = "steelblue", lwd = 1.8)
abline(h = mean(df$mid_range), col = "#ff5454", lwd = 1.8)

  • Viés, Erro Padrão e EQM
dados2 <- c(mean(df$media_arit)-5, mean(df$trimedia)-5, mean(df$mid_range)-5,sd(df$media_arit), sd(df$trimedia), sd(df$mid_range), (var(df$media_arit)+(mean(df$media_arit)-5)^2), (var(df$trimedia)+(mean(df$trimedia)-5)^2), (var(df$mid_range)+(mean(df$mid_range)-5)^2))

tabela <- data.frame(t(matrix(dados2,3,3)))
coluna <- c("Media Aritmética", "Trimédia", "Mid-range")
linha <- c("Viés", "Erro Padrão", "EQM")
tabela <- `colnames<-`(tabela,coluna)
tabela <- `row.names<-`(tabela, linha)

kable(tabela)
Media Aritmética Trimédia Mid-range
Viés 0.0124000 -0.0988125 -0.1046250
Erro Padrão 0.2270189 0.2821778 0.3686786
EQM 0.0516913 0.0893882 0.1468703
  • Eficiência Relativa
# Média Aritmética x Trimédia
tabela[3,1]/tabela[3,2]
## [1] 0.5782791
# Média Aritmética x Mid-range
tabela[3,1]/tabela[3,3]
## [1] 0.3519523
# Trimédia x Mid Range
tabela[3,2]/tabela[3,3]
## [1] 0.6086201

Distribuição Poisson com Muitos Zeros

Para provocar um “desconforto” na estimação da média e encontrar maiores diferenças entre os estimadores, decidimos trabalhar também com uma poisson de média 1 (muitas ocorrências do valor 0).

  • Simulação
set.seed(13)

n <- 1000
df <- data.frame(media_arit = numeric(n), trimedia = numeric(n), mid_range = numeric(n))

for (i in 1:n) {
  dados <- rpois(100, lambda = 1)
  df[i, "media_arit"] <- mean(dados)
  df[i, "trimedia"] <- (quantile(dados, 0.25) + 2 * quantile(dados, 0.5) + quantile(dados, 0.75)) / 4
  df[i, "mid_range"] <- (quantile(dados, 0.25) + quantile(dados, 0.75)) / 2
}
  • Análise Gráfica
# Histograma
par(mfrow = c(1,3))
hist(df$media_arit, col = "salmon", main = "Média Aritmética", xlab = "mu.hat", xlim = c(0.2,1.6), ylim = c(0,600))
hist(df$trimedia, col = "salmon", main = "Trimédia", xlab = "mu.hat", xlim = c(0.2,1.6), ylim = c(0,600))
hist(df$mid_range, col = "salmon", main = "Mid-range", xlab = "mu.hat", xlim = c(0.2,1.6), ylim = c(0,600))

# Scatterplot
par(mfrow = c(1,3))

plot(df$media_arit ~ c(1:1000), col = "darkgrey", 
     main = "Média Aritmética", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.2, 1.4))
abline(h = 1, col = "steelblue", lwd = 1.8)
abline(h = mean(df$media_arit), col = "#ff5454", lwd = 1.8)

plot(df$trimedia ~ c(1:1000), col = "darkgrey", 
     main = "Trimédia", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.2, 1.4))
abline(h = 1, col = "steelblue", lwd = 1.8)
abline(h = mean(df$trimedia), col = "#ff5454", lwd = 1.8)

plot(df$mid_range ~ c(1:1000), col = "darkgrey", 
     main = "Mid-range", xlab = "Amostra", ylab = "mu.hat", ylim = c(0.2, 1.4))
abline(h = 1, col = "steelblue", lwd = 1.8)
abline(h = mean(df$mid_range), col = "#ff5454", lwd = 1.8)

  • Viés, Erro Padrão e EQM
dados2 <- c(mean(df$media_arit)-1, mean(df$trimedia)-1, mean(df$mid_range)-1,sd(df$media_arit), sd(df$trimedia), sd(df$mid_range), (var(df$media_arit)+(mean(df$media_arit)-1)^2), (var(df$trimedia)+(mean(df$trimedia)-1)^2), (var(df$mid_range)+(mean(df$mid_range)-1)^2))

tabela <- data.frame(t(matrix(dados2,3,3)))
coluna <- c("Media Aritmética", "Trimédia", "Mid-range")
linha <- c("Viés", "Erro Padrão", "EQM")
tabela <- `colnames<-`(tabela,coluna)
tabela <- `row.names<-`(tabela, linha)

kable(tabela)
Media Aritmética Trimédia Mid-range
Viés 0.0073300 -0.0972500 -0.1885000
Erro Padrão 0.1021715 0.1274605 0.2390605
EQM 0.0104927 0.0257037 0.0926821
  • Eficiência Relativa
# Média Aritmética x Trimédia
tabela[3,1]/tabela[3,2]
## [1] 0.4082183
# Média Aritmética x Mid-range
tabela[3,1]/tabela[3,3]
## [1] 0.1132121
# Trimédia x Mid Range
tabela[3,2]/tabela[3,3]
## [1] 0.2773322

Conclusão

A média aritmética apresentou um bom desempenho na maioria dos cenários, apesar de ser muito sensível a outliers. Os estimadores trimédia e mid-range tiveram performances similares e se destacaram na presença de outliers, sendo ótimos substitutos ao estimador convencional nesse sentido. Por fim, é interessante destacar que a análise gráfica foi importante, ao percebermos alguns padrões que passariam em branco nos cálculos.