Ces données ont une queue courte par rapport à une distribution log-normale, un peu comme une distribution Gamma:
set.seed(17)
par(mfcol=c(1,1))
x <- rgamma(500, 1.9)
qqnorm(log(x), pch=20, cex=.8, asp=1)
abline(mean(log(x)) + .1,1.2*sd(log(x)), col="Gray", lwd=2)
Néanmoins, comme les données sont fortement asymétriques à droite, nous pouvons nous attendre à ce que les valeurs les plus élevées jouent un rôle important dans l'estimation de la moyenne et de son intervalle de confiance. Par conséquent, nous devons prévoir qu'un estimateur lognormal (LN) aura tendance à surestimer la moyenne et les deux limites de confiance .
Vérifions et, pour comparaison, utilisons les estimateurs habituels: c'est-à-dire la moyenne de l'échantillon et son intervalle de confiance en théorie normale. Il est à noter que les estimateurs habituels reposent uniquement sur la normalité approximative de la moyenne de l' échantillon , et non sur les données, et - avec un ensemble de données aussi volumineux - devraient fonctionner correctement. Pour ce faire, nous avons besoin d'une légère modification de la ci
fonction:
ci <- function (x, alpha=.05) {
z <- -qnorm(alpha / 2)
y <- log(x); n <- length(y); s2 <- var(y)
m <- mean(y) + s2 / 2
d <- z * sqrt(s2 / n + s2 * s2 / (2 * (n - 1)))
exp(c(mean=m, lcl=m-d, ucl=m+d))
}
Voici une fonction parallèle pour les estimations de la théorie normale:
ci.u <- function(x, alpha=.05) {
mean(x) + sd(x) * c(mean=0, lcl=1, ucl=-1) / sqrt(length(x)) * qnorm(alpha/2)
}
Appliquées à cet ensemble de données simulées, les sorties sont
> ci(x)
mean lcl ucl
2.03965 1.87712 2.21626
> ci.u(x)
mean lcl ucl
1.94301 1.81382 2.07219
ci.u
1,9
trial <- function(n=500, k=1.9) {
x <- rgamma(n, k)
cbind(ci(x), ci.u(x))
}
set.seed(17)
sim <- replicate(5000, trial())
1,9
xmin <- min(sim)
xmax <- max(sim)
h <- function(i, ...) {
b <- seq(from=floor(xmin*10)/10, to=ceiling(xmax*10)/10, by=0.1)
hist(sim[i,], freq=TRUE, breaks=b, col="#a0a0FF", xlab="x", xlim=c(xmin, xmax), ...)
hist(sim[i,sim[i,] >= 1.9], add=TRUE,freq=TRUE, breaks=b, col="#FFa0a0",
xlab="x", xlim=c(xmin, xmax), ...)
}
par(mfcol=c(2,3))
h(1, main="LN Estimate of Mean")
h(4, main="Sample Mean")
h(2, main="LN LCL")
h(5, main="LCL")
h(3, main="LN UCL")
h(6, main="UCL")
Il est maintenant clair que les procédures lognormales ont tendance à surestimer la moyenne et les limites de confiance, alors que les procédures habituelles font du bon travail. Nous pouvons estimer les couvertures des procédures d'intervalle de confiance:
> sapply(c(LNLCL=2, LCL=5, LNUCL=3, UCL=6), function(i) sum(sim[i,] > 1.9)/dim(sim)[2])
LNLCL LCL LNUCL UCL
0.2230 0.0234 1.0000 0.9648
Ce calcul dit:
La limite inférieure LN ne couvrira pas la vraie moyenne environ 22,3% du temps (au lieu des 2,5% prévus).
La limite inférieure habituelle ne couvrira pas la vraie moyenne environ 2,3% du temps, près des 2,5% prévus.
La limite supérieure LN dépassera toujours la vraie moyenne (au lieu de tomber en dessous de 2,5% du temps comme prévu). Cela en fait un intervalle de confiance bilatéral de 100% - (22,3% + 0%) = 77,7% au lieu d'un intervalle de confiance de 95%.
La limite supérieure habituelle ne couvrira pas la vraie moyenne environ 100 - 96,5 = 3,5% du temps. C'est un peu plus que la valeur prévue de 2,5%. Les limites habituelles comprennent donc un intervalle de confiance bilatéral de 100% - (2,3% + 3,5%) = 94,2% au lieu d'un intervalle de confiance de 95%.
La réduction de la couverture nominale de 95% à 77,7% pour l'intervalle lognormal est terrible. La réduction à 94,2% pour l'intervalle habituel n'est pas mal du tout et peut être attribuée à l'effet de l'asymétrie (des données brutes, pas de leurs logarithmes).
Nous devons conclure que de nouvelles analyses de la moyenne ne doivent pas supposer une lognormalité.
Faites attention! Certaines procédures (telles que les limites de prédiction) seront plus sensibles à l'asymétrie que ces limites de confiance pour la moyenne, il faudra donc peut-être tenir compte de leur distribution asymétrique. Cependant, il semble peu probable que les procédures lognormales fonctionnent bien avec ces données pour pratiquement n'importe quelle analyse prévue.