Muszę znaleźć 95% CI na medianie i innych percentylach. Nie wiem jak do tego podejść. Głównie używam R jako narzędzia programistycznego.
Muszę znaleźć 95% CI na medianie i innych percentylach. Nie wiem jak do tego podejść. Głównie używam R jako narzędzia programistycznego.
Odpowiedzi:
Oto ilustracja klasycznego zestawu danych R.
> x = faithful$waiting
> bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
> quantile(bootmed, c(.025, 0.975))
2.5% 97.5%
73.5 77
co daje przedział ufności (73,5; 77) dla mediany.
( Uwaga: Poprawiona wersja, dzięki Jana . Kiedyś w wcześniej, co doprowadziło do zamieszania!)nrow
Inne podejście opiera się na kwantylach rozkładu dwumianowego.
na przykład:
> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77
Sprawdź resampling bootstrap. Wyszukaj w pomocy R funkcję rozruchu. W zależności od danych z ponownym próbkowaniem możesz oszacować przedziały ufności dla prawie wszystkiego.
wilcox.test(..., conf.int=TRUE)
funkcję R.
Są też inne podejścia: jedno oparte jest na teście sumy rang Wilcoxona zastosowanym dla jednej próbki z korektą ciągłości. W R można to podać jako:
wilcox.test(x,conf.level=0.95,alternative="two.sided",correct=TRUE)
I tutaj jest CI CI dla mediany Davida Olive'a:
Wynik oparty na metodzie qbinom jest nieprawidłowy dla małych próbek. Załóżmy, że x ma 10 składników. Następnie qbinom (c (.025; .975), 10, .5) daje 2 i 8. Wynikowy interwał nie traktuje statystyk rzędu dolnego ogona symetrycznie z tymi z górnego ogona; powinieneś dostać 2 i 9 lub 3 i 8. Prawidłowa odpowiedź to 2 i 9. Możesz sprawdzić w proc univariate w SAS. Złap tutaj, nie potrzebujesz więcej niż 0,025 prawdopodobieństwa poniżej i powyżej; dolny kwantyl tego nie robi, ponieważ daje co najmniej 0,025 co najmniej na poziomie. Zostajesz zapisany na dole, ponieważ liczba, która powinna wynosić 1, powinna zostać odwzorowana na statystykę drugiego rzędu, licząc 0, więc „wyłączanie o jeden” anuluje się. To przypadkowe anulowanie nie zdarza się na górze, więc tutaj otrzymujesz złą odpowiedź. Kod sort (x) [qbinom (c (.025, .975), długość (x) ,. 5) + c (0,1)] prawie działa, a .5 można zastąpić innymi wartościami kwantyli, aby uzyskać przedziały ufności dla innych kwantyli, ale nie będzie dobrze, gdy istnieje takie, że P [X <= a ] =. 025. Patrz np. Higgins, statystyki nieparametryczne.
library(boot)
wydaje się to potwierdzić:> boot.ci (boot (x, funkcja (x, i)) mediana (x [i]), R = 1000)) Interwały: Poziom Normalny Podstawowy 95% (74,42; 78,22) (75,00 , 78,49) Poziom Percentile BCa 95% (73,51, 77,00) (73,00, 77,00)