Prima di tutto, vorrei verificare se la media è un indice appropriato per l'attività in corso. Se stai cercando "un valore tipico / o centrale" di una distribuzione distorta, la media potrebbe indicare un valore piuttosto non rappresentativo. Considera la distribuzione 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")
La media (linea rossa) è piuttosto lontana dalla maggior parte dei dati. La media del 20% (verde) e la mediana (blu) sono più vicine al valore "tipico".
I risultati dipendono dal tipo di distribuzione "non normale" (sarebbe utile un istogramma dei dati effettivi). Se non è inclinato, ma ha code pesanti, i tuoi elementi della configurazione saranno molto ampi.
In ogni caso, penso che il bootstrap sia davvero un buon approccio, in quanto può anche darti CI asimmetrici. Il R
pacchetto simpleboot
è un buon inizio:
library(simpleboot)
# 20% trimmed mean bootstrap
b1 <- one.boot(x, mean, R=2000, tr=.2)
boot.ci(b1, type=c("perc", "bca"))
... ti dà il seguente risultato:
# 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