Jak obliczyć przedział ufności średniej w próbce o rozkładzie innym niż normalny?

19

Jak obliczyć przedział ufności średniej w próbce o rozkładzie innym niż normalny?

Rozumiem, że metody bootstrap są tutaj powszechnie stosowane, ale jestem otwarty na inne opcje. Podczas gdy szukam opcji nieparametrycznej, jeśli ktoś może mnie przekonać, że rozwiązanie parametryczne jest prawidłowe, byłoby dobrze. Rozmiar próbki wynosi> 400.

Gdyby ktoś mógł podać próbkę w R, byłoby to bardzo mile widziane.

fmark
źródło
3
Twierdzenie o granicy centralnej implikuje, że ograniczający rozkład średniej próbki jest normalny bez względu na rozkład pierwotnych danych (pod pewnymi warunkami). W wielu przypadkach wielkość próbki jest wystarczająco duża, aby normalne przybliżenie było dość dokładne, ale dokładność zależy od rozkładu macierzystego - może to pomóc, na przykład, jeśli opublikowałeś histogram oryginalnych danych. n>400
Makro

Odpowiedzi:

18

Przede wszystkim sprawdziłbym, czy średnia jest odpowiednim wskaźnikiem dla danego zadania. Jeśli szukasz „typowej / lub centralnej wartości” przekrzywionego rozkładu, średnia może wskazywać na raczej niereprezentatywną wartość. Rozważ log-normalną dystrybucję:

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

Średnia (czerwona), średnia obcięta 20% (zielona) i mediana (niebieska) dla rozkładu logarytmiczno-normalnego

Średnia (czerwona linia) jest raczej daleko od dużej ilości danych. 20% średnia obcięta (zielona) i mediana (niebieska) są bliższe wartości „typowej”.

Wyniki zależą od rodzaju „nienormalnego” rozkładu (pomocny byłby histogram rzeczywistych danych). Jeśli nie jest przekrzywiony, ale ma ciężkie ogony, twoje CI będą bardzo szerokie.

W każdym razie uważam, że ładowanie początkowe rzeczywiście jest dobrym podejściem, ponieważ może również zapewnić asymetryczne CI. RPakiet simplebootjest dobry początek:

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

... daje następujący wynik:

# 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
Felix S.
źródło
Bardzo dziękuję za szczegółową odpowiedź. Czy chciałbyś skomentować (minimalną) różnicę między statystykami percentyla i skorygowanego percentyla (BCa)?
fmark
„Interwał przyspieszania (BCa) z korekcją odchylenia początkowego jest modyfikacją metody percentyla, która dostosowuje percentyle do korekcji odchylenia i skośności” (Hesterberg, T., Monaghan, S., Moore, D., Clipson, A., I Epstein, R. (2005). Metody ładowania początkowego i testy permutacyjne. Wprowadzenie do praktyki statystycznej, 14.1–14.70.). Ilekroć oprogramowanie na to pozwala, używaj CI poprawionego BCa (uwaga: potrzebuje> 1000 próbek)
Felix S
Z dokumentacji pakietu simpleboot wynika, że ​​argument dotyczący przycinania nie jest już obsługiwany. :(
et jest
8

κ^/(6s2)n)κ^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

StasK
źródło
2

Wypróbuj rozkład log-normalny, obliczając:

  1. Logarytm danych;
  2. Średnia i odchylenie standardowe (1)
  3. Przedział ufności odpowiadający (2)
  4. Wykładniczy z (3)

Otrzymasz asymetryczny przedział ufności wokół oczekiwanej wartości (która nie jest średnią z surowych danych).

Felipe G. Nievinski
źródło