Antes de tudo, eu verificaria se a média é um índice apropriado para a tarefa em questão. Se você estiver procurando por "um valor típico / ou central" de uma distribuição distorcida, a média poderá indicar um valor não representativo. Considere a distribuição log-normal:
x <- rlnorm(1000)
plot(density(x), xlim=c(0, 10))
abline(v=mean(x), col="red")
abline(v=mean(x, tr=.20), col="darkgreen")
abline(v=median(x), col="blue")
A média (linha vermelha) está bem longe da maior parte dos dados. A média aparada de 20% (verde) e a mediana (azul) estão mais próximas do valor "típico".
Os resultados dependem do tipo de sua distribuição "não normal" (um histograma dos seus dados reais seria útil). Se não estiver inclinado, mas tiver caudas pesadas, seus ICs serão muito amplos.
De qualquer forma, acho que o bootstrap é realmente uma boa abordagem, pois também pode fornecer ICs assimétricos. O R
pacote simpleboot
é um bom começo:
library(simpleboot)
# 20% trimmed mean bootstrap
b1 <- one.boot(x, mean, R=2000, tr=.2)
boot.ci(b1, type=c("perc", "bca"))
... fornece o seguinte resultado:
# The bootstrap trimmed mean:
> b1$t0
[1] 1.144648
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 2000 bootstrap replicates
Intervals :
Level Percentile BCa
95% ( 1.062, 1.228 ) ( 1.065, 1.229 )
Calculations and Intervals on Original Scale