Wie kann ich das Konfidenzintervall eines Mittelwerts in einer nicht normalverteilten Stichprobe berechnen?


19

Wie kann ich das Konfidenzintervall eines Mittelwerts in einer nicht normalverteilten Stichprobe berechnen?

Ich verstehe, dass hier häufig Bootstrap-Methoden verwendet werden, bin aber offen für andere Optionen. Während ich nach einer nicht parametrischen Option suche, wäre es in Ordnung, wenn mich jemand davon überzeugen könnte, dass eine parametrische Lösung gültig ist. Die Stichprobengröße beträgt> 400.

Wenn jemand eine Probe in R geben könnte, wäre es sehr dankbar.


3
Der zentrale Grenzwertsatz impliziert, dass die Grenzverteilung des Stichprobenmittelwerts unabhängig von der Verteilung der Originaldaten (unter bestimmten Bedingungen) normal ist. In vielen Fällen ist eine Stichprobengröße groß genug, damit die normale Annäherung recht genau ist, die Genauigkeit jedoch von der übergeordneten Verteilung abhängt. Dies kann hilfreich sein, wenn Sie beispielsweise ein Histogramm der Originaldaten bereitgestellt haben. n>400
Makro

Antworten:


18

Zunächst würde ich prüfen, ob der Mittelwert für die jeweilige Aufgabe geeignet ist. Wenn Sie nach einem "typischen / oder zentralen Wert" für eine verzerrte Verteilung suchen, verweist der Mittelwert möglicherweise auf einen eher nicht repräsentativen Wert. Betrachten Sie die logarithmische Normalverteilung:

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

Mittelwert (rot), 20% Mittelwert (grün) und Median (blau) für die logarithmische Normalverteilung

Der Mittelwert (rote Linie) ist ziemlich weit von der Masse der Daten entfernt. 20% getrimmter Mittelwert (grün) und Median (blau) liegen näher am "typischen" Wert.

Die Ergebnisse hängen von der Art Ihrer "nicht normalen" Verteilung ab (ein Histogramm Ihrer tatsächlichen Daten wäre hilfreich). Wenn es nicht schief ist, aber schwere Schwänze aufweist, sind Ihre CIs sehr breit.

Auf jeden Fall halte ich Bootstrapping in der Tat für einen guten Ansatz, da es Ihnen auch asymmetrische CIs bieten kann. Das RPaket simplebootist ein guter Anfang:

library(simpleboot)
# 20% trimmed mean bootstrap
b1 <- one.boot(x, mean, R=2000, tr=.2)
boot.ci(b1, type=c("perc", "bca"))

... ergibt folgendes Ergebnis:

# 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

Vielen Dank für die ausführliche Antwort. Möchten Sie den (minimalen) Unterschied zwischen der Perzentil- und der bereinigten Perzentilstatistik (BCa) kommentieren?
5.

"Das Bootstrap-Bias-korrigierte Beschleunigungsintervall (BCa-Intervall) ist eine Modifikation der Perzentilmethode, mit der die Perzentile angepasst werden, um Bias und Schiefe zu korrigieren" (Hesterberg, T., Monaghan, S., Moore, D., Clipson, A., & Epstein, R. (2005). Bootstrap-Methoden und Permutationstests. Einführung in die Statistikpraxis, 14.1–14.70.). Wann immer die Software dies zulässt, verwenden Sie das BCa-korrigierte CI (Anmerkung: es benötigt> 1000 Resamples)
Felix S

Aus der Dokumentation für das simpleboot-Paket geht hervor, dass das Argument zum Trimmen nicht mehr unterstützt wird. :(
et ist der

8

κ^/(6s2n)κ^O(n-1/2)O(n-1)n1/2>20n>400

(exp(1)+2)exp(1)-1kappa = (exp(1)+2)*sqrt( exp(1) - 1) = 6.184877s = sqrt( (exp(1)-1)*exp(1) ) = 2.1611972*s*qnorm(0.975)/sqrt(n) = 0.2678999kappa*s/(6*n) = 0.00222779kappa


2

Versuchen Sie eine logarithmische Normalverteilung und berechnen Sie:

  1. Logarithmus der Daten;
  2. Mittelwert und Standardabweichung von (1)
  3. Konfidenzintervall entsprechend (2)
  4. Exponential von (3)

Sie erhalten ein asymmetrisches Konfidenzintervall um den erwarteten Wert (der nicht der Mittelwert der Rohdaten ist).

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.