Des distributions très asymétriques telles que le log-normal n'entraînent pas des intervalles de confiance bootstrap précis. Voici un exemple montrant que les zones arrière gauche et droite sont loin de la valeur idéale de 0,025, quelle que soit la méthode d'amorçage que vous essayez dans R:
require(boot)
n <- 25
B <- 1000
nsim <- 1000
set.seed(1)
which <- c('basic', 'perc', 'norm', 'bca', 'stud')
mul <- 0; sdl <- 1.65 # on log scale
dist <- c('normal', 'lognormal')[2]
switch(dist, normal = {g <- function(x) x; mu <- mul},
lognormal = {g <- exp; mu <- exp(mul + sdl * sdl / 2)})
count <- matrix(0, nrow=length(which), ncol=2,
dimnames=list(which, c('lower', 'upper')))
stat <- function(x, j) {
## See http://www.psychology.mcmaster.ca/bennett/boot09/percentileT.pdf
x <- x[j]
m <- mean(x)
s <- sd(x)
n <- length(x)
sem <- s / sqrt(n)
m.var <- sem ^ 2
c(m, m.var)
}
for(i in 1 : nsim) {
if(i %% 100 == 0) cat(i, '')
x <- g(rnorm(n, mul, sdl))
b <- boot(x, stat, R=B)
ci <- boot.ci(b, type=which)
for(w in which) {
nam <- switch(w, perc='percent', norm='normal', basic='basic',
stud='student', bca='bca')
z <- rev(rev(ci[[nam]])[1:2])
count[w, 'lower'] <- count[w, 'lower'] + (z[1] > mu)
count[w, 'upper'] <- count[w, 'upper'] + (z[2] < mu)
}
}
cat('\n')
count / nsim
Le résultat est ci-dessous:
lower upper
basic 0.000 0.329
perc 0.003 0.257
norm 0.000 0.287
bca 0.015 0.185
stud 0.005 0.129
Pour simples bootstraps ne fournissent toujours pas une couverture suffisamment précise:
lower upper
basic 0.001 0.114
perc 0.005 0.093
norm 0.002 0.102
bca 0.017 0.067
stud 0.011 0.058
La probabilité empirique ne parvient pas non plus à fournir des intervalles de confiance précis lors de l'échantillonnage à partir de la distribution log-normale.
Existe-t-il une approche générale qui ne dépend pas de la connaissance préalable de la distribution? Quelqu'un a-t-il essayé d'obtenir des intervalles de confiance pour la moyenne en ajustant les données à la distribution généralisée Tukey (cette distribution est très flexible)? Qu'en est-il de l'utilisation des bandes de confiance de Kolmogorov-Smirnov pour le CDF? Le calcul de la moyenne sur les bornes supérieure et inférieure du CDF serait-il horriblement conservateur? Je me contenterais d'un certain conservatisme si une méthode a une large applicabilité.
Pour reformuler les objectifs, je recherche une approche généralement applicable pour obtenir un intervalle de confiance pour une population moyenne telle que
- l'intervalle est asymétrique si la distribution des données brutes est asymétrique
- l'intervalle a une couverture correcte dans les deux queues (par exemple, une probabilité d'erreur de 0,025 dans les deux)
- la procédure ne nécessite pas que l'analyste spécifie quoi que ce soit sur la distribution sous-jacente ou la transformation nécessaire pour rendre la distribution symétrique
Notez que le théorème central limite n'est pas pertinent ici; J'ai un petit échantillon fixe et l'intervalle de confiance doit être asymétrique pour être précis dans les deux queues. L' intervalle de confiance paramétrique basé sur sous un modèle log-normal avec et toujours une mauvaise couverture (erreur de queue gauche 0,012, droite 0,047 quand les deux devraient être 0,025).μ = 0 , σ = 1,65 n = 20000
En continuant à y penser, il y a deux grandes façons de conceptualiser le problème que j'aimerais discuter.
- La moyenne n'est pas une quantité qui se prête à l'inférence non paramétrique, du moins lorsque l'exactitude de l'inférence est requise. La médiane de l'échantillon est significative pour toute distribution continue et nous avons un intervalle de confiance exact simple pour la médiane. Dans un échantillon de taille d'une distribution normale, l'intervalle de confiance pour la médiane est plus long que l' intervalle de confiance basé sur exact pour la moyenne (voir le code ci-dessous). Ce facteur de 1,28 est peut-être un prix raisonnable à payer pour la robustesse et la liberté de distribution complète.1,28 × t
- Même si aucun bootstrap ne donnera des limites de confiance suffisamment précises pour les échantillons provenant de distributions extrêmement asymétriques, le double bootstrap peut améliorer considérablement la couverture de confiance dans les deux queues. Nankervis a de bons résultats et fournit un excellent algorithme de calcul. Mais aucun logiciel que j'ai pu trouver ne l'implémente.
Code R illustrant 1. ci-dessus:
## Exact CI for median from DescTools package SignTest.default
## See also ttp://www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf,
## http://de.scribd.com/doc/75941305/Confidence-Interval-for-Median-Based-on-Sign-Test
cimed <- function(x, alpha=0.05, na.rm=FALSE) {
if(na.rm) x <- x[! is.na(x)]
n <- length(x)
k <- qbinom(p=alpha / 2, size=n, prob=0.5, lower.tail=TRUE)
## Actual CL: 1 - 2 * pbinom(k - 1, size=n, prob=0.5) >= 1 - alpha
sort(x)[c(k, n - k + 1)]
}
n <- 20
m <- 20000
cil <- cilt <- 0
z <- qt(0.975, n - 1)
for(i in 1 : m) {
x <- rnorm(n)
cil <- cil + diff(cimed(x))
cilt <- cilt + 2 * z * sqrt(var(x) / n)
}
cil <- cil / m
cilt <- cilt / m
c(cil, cilt, cilt / cil, cil / cilt)
la source
Réponses:
Je suis quelque peu pessimiste à propos d'une telle méthode non paramétrique, du moins sans l'introduction d'une sorte de contrainte sur la distribution sous-jacente.
Donc, si vous recherchez une couverture asymptotique appropriée , bien sûr, cela peut être réalisé par le CLT. Cependant, votre question implique que vous êtes (assez raisonnablement) intéressé par la couverture limitée. Comme mon exemple le montre, il y aura toujours un cas pathologique qui ruine tout CI de longueur finie.
Maintenant, vous pouvez toujours avoir un CI non paramétrique qui atteint une bonne couverture finie en ajoutant des contraintes à votre distribution. Par exemple, la contrainte log-concave est une contrainte non paramétrique. Cependant, il semble insuffisant pour votre problème, car log-normal n'est pas log-concave.
la source
L'une des hypothèses sous-jacentes de tout échantillon est la représentativité. Plus la longueur d'une distribution est longue, moins il est probable qu'un petit échantillon soit suffisamment représentatif pour qu'une méthode soit résolue de manière fiable pour l'IC, car l'échantillon ne sera pas en mesure de représenter la distribution.
Par exemple, l'exécution d'un CI simple perc sur une distribution exponentielle avec une taille d'échantillon de 250 donne des résultats assez corrects. Ils sont bien meilleurs qu'un avec un échantillon de 25, bien qu'ils ne soient toujours pas idéaux.
Je suis d'accord avec Cliff AB qu'il n'y aura pas de solution générale mais vous n'avez pas à faire d'hypothèse de distributions extrêmes. Il n'y aura rien qui fonctionne largement avec de petits échantillons. Et dans certains cas, les échantillons peuvent être très volumineux (mais ce serait bien de se tromper).
la source