Stark verzerrte Verteilungen wie die Protokollnormale führen nicht zu genauen Bootstrap-Konfidenzintervallen. Hier ist ein Beispiel, das zeigt, dass der linke und der rechte Heckbereich weit vom idealen Wert von 0,025 entfernt sind, unabhängig davon, welche Bootstrap-Methode Sie in R versuchen:
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
Das Ergebnis ist unten:
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
Für bieten einzelne Bootstraps immer noch keine ausreichend genaue Abdeckung:
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
Die empirische Wahrscheinlichkeit liefert auch keine genauen Konfidenzintervalle, wenn Proben aus der logarithmischen Normalverteilung entnommen werden.
Gibt es einen allgemeinen Ansatz, der nicht davon abhängt, die Verteilung im Voraus zu kennen? Hat jemand versucht, Konfidenzintervalle für den Mittelwert durch Anpassen der Daten an das verallgemeinerte Tukey- Verteilung von (diese Verteilung ist sehr flexibel)? Was ist mit der Verwendung von Kolmogorov-Smirnov-Konfidenzbändern für die CDF? Wäre es schrecklich konservativ, den Mittelwert für die obere und untere Grenze der CDF zu berechnen? Ich würde mich mit etwas Konservativismus zufrieden geben, wenn eine Methode eine breite Anwendbarkeit hat.
Um die Ziele noch einmal zu formulieren, suche ich einen allgemein anwendbaren Ansatz, um ein Konfidenzintervall für ein Bevölkerungsmittel zu erhalten, bei dem
- Das Intervall ist asymmetrisch, wenn die Rohdatenverteilung asymmetrisch ist
- Das Intervall hat in beiden Fällen die richtige Abdeckung Schwänze (z. B. 0,025 Fehlerwahrscheinlichkeit in beiden).
- Das Verfahren erfordert nicht, dass der Analyst etwas über die zugrunde liegende Verteilung oder die Transformation angibt, die erforderlich ist, um die Verteilung symmetrisch zu machen
Wenn ich weiter darüber nachdenke, gibt es zwei Möglichkeiten, das Problem zu konzipieren, über das ich sprechen möchte.
- Auch wenn kein einzelner Bootstrap hinreichend genaue Konfidenzgrenzen für Stichproben aus extrem verzerrten Verteilungen liefert, kann der doppelte Bootstrap die Konfidenzabdeckung in beiden Schwänzen erheblich verbessern. Nankervis hat einige gute Ergebnisse und liefert einen hervorragenden Rechenalgorithmus. Aber keine Software, die ich finden konnte, implementiert dies.
R-Code zur Veranschaulichung von 1. oben:
## 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)
quelle
Antworten:
Ich bin etwas pessimistisch in Bezug auf eine solche nicht parametrische Methode, zumindest ohne die Einführung einer Art von Einschränkungen für die zugrunde liegende Verteilung.
My reasoning for this is that there will always be a distribution that breaks the true coverage probability for any finiten (although as n→∞ , this distribution will become more and more pathological), or the confidence interval will have to be arbitrarily large.
To illustrate, you could imagine a distribution that looks like a normal up to some valueα , but after α becomes extremely right skewed. This can have unbounded influence on the distribution's mean and as you push α out as far as possible, this can have arbitrarily small probability of making it into your sample. So you can imagine that for any n , you could pick an α to be so large that all points in your sample have extremely high probability of looking like it comes from a normal distribution with mean = 0, sd = 1, but you can also have any true mean.
So if you're looking for proper asymptotic coverage, of course this can be achieved by the CLT. However, your question implies that you are (quite reasonably) interested in the finite coverage. As my example shows, there will always be a pathological case that ruins any finite length CI.
Now, you still could have a non-parametric CI that achieves good finite coverage by adding constraints to your distribution. For example, the log-concave constraint is a non-parametric constraint. However, it seems inadequate for your problem, as log-normal is not log-concave.
Perhaps to help illustrate how difficult your problem could be, I've done unpublished work on a different constraint: inverse convex (if you click on my profile, I have a link to a personal page that has a preprint). This constraint includes most, but not all log-normals. You can also see that for this constraint, the tails can be "arbitrarily heavy", i.e. for any inverse convex distribution up to someα , you can have heavy enough tails that the mean will be as large as you like.
quelle
One of the underlying assumptions of any sample is representativeness. The longer the tails of a distribution the less likely any small sample is going to be representative enough for any method to reliably solve for the CI because the sample won't be able to represent the distribution.
For example, running a simple perc CI on an exponential distribution with a sample size of 250 yields pretty ok results. They are much better than a with a sample of 25, although still not ideal.
I agree with Cliff AB that there won't be a general solution but you don't have to hypothesize extreme distributions. There won't be anything that works broadly with small samples. And in some cases the samples might have to be very large (but it would be nice to be wrong).
quelle