Gibt es ein zuverlässiges nichtparametrisches Konfidenzintervall für den Mittelwert einer verzerrten Verteilung?


30

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:n=400

      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

  1. Das Intervall ist asymmetrisch, wenn die Rohdatenverteilung asymmetrisch ist
  2. Das Intervall hat in beiden Fällen die richtige Abdeckung Schwänze (z. B. 0,025 Fehlerwahrscheinlichkeit in beiden).
  3. 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

tμ=0,σ=1.65n=20000

Wenn ich weiter darüber nachdenke, gibt es zwei Möglichkeiten, das Problem zu konzipieren, über das ich sprechen möchte.

  1. n=201.28×t
  2. 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)

1
Dies ist rechenintensiv, aber wenn Sie die empirische cdf-Datei verwenden, werden zufällig Brownsche Brücken generiert. Jede Brownsche Brücke repräsentiert das Delta zwischen dem ecdf und einem hypothetischen cdf. Berechnen Sie den Mittelwert mit dem hypothetischen cdf und gewichten Sie ihn mit dem vom KS-Test vorgegebenen Faktor. Wenn Sie dies eine Weile wiederholen, erhalten Sie einen gewichteten Mittelwertsatz und können das Konfidenzintervall berechnen.
Nir Friedman

Ich habe kein hypothetisches cdf. Und was würde passieren, wenn Sie nur den oberen und unteren 0,95-Konfidenzbereich von KS verwenden und den Mittelwert daraus berechnen würden, dh, dies wäre schrecklich konservativ.
Frank Harrell

Das hypothetische cdf wird eingeführt, indem dem empirischen cdf eine zufällig erzeugte Brown'sche Brücke hinzugefügt wird. Außerdem schlage ich nicht vor, den Mittelwert aus der Vertrauensregion zu ziehen. Ich schlage vor, viele Mittel zu erhalten, indem ich viele hypothetische Verteilungen erzeuge, die angemessen gewichtet sind, und dann das Konfidenzintervall erhalte. Es ist im Grunde genommen nur ein anderer Ansatz für das Bootstrapping. Ich denke, das Ergebnis könnte jedoch anders sein.
Nir Friedman

Es wäre interessant zu sehen, wie effizient es programmiert werden könnte und wie genau die Konfidenzintervallabdeckung ist. Danke für den Vorschlag. Ich frage mich, ob der bayesianische Bootstrap das nachahmen würde. Ich habe das Bayes'sche Bootstrap in einem anderen Kontext ausprobiert und es hat die Abdeckung des Konfidenzintervalls nicht verbessert.
Frank Harrell

Antworten:


11

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 finite n (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.


2
Excellent thoughts. I hesitate to require those kinds of constraints because I see bimodal distributions and other complexities often enough.
Frank Harrell

1
@FrankHarrell: there has been work done with mixture models with non-parametric log-concave components. However, I cannot imagine at this time that there's good methods for creating a confidence for the overall mean, especially if the number of components are not known in advance.
Cliff AB

2

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).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.