Mam szereg czasowy danych o liczbie N = 14 w każdym punkcie czasowym i chcę obliczyć współczynnik Giniego i błąd standardowy dla tego oszacowania w każdym punkcie czasowym.
Ponieważ mam tylko N = 14 zliczeń w każdym punkcie czasowym, przystąpiłem do obliczania wariancji scyzoryka, tj. z równania 7 Tomsona Ogwanga„Wygodna metoda obliczania indeksu Giniego i jego„ błędu standardowego ”. GdzieG(n,k)jest współczynnikiem Gini wartości N bez elementuk,a ˉ G (x)jest średnią.
Bezpośrednie naiwne wdrożenie powyższej formuły dla wariancji.
calc.Gini.variance <- function(x) {
N <- length(x)
# using jacknifing as suggested by Tomson Ogwang - equation 7
# in the Oxford Bulletin of Economics and Statistics, 62, 1 (2000)
# ((n-1)/n) \times \sum_{k=1}^n (G(n,k)-\bar{G}(n))^2
gini.bar <- Gini(x)
gini.tmp <- vector(mode='numeric', length=N)
for (k in 1:N) {
gini.tmp[k] <- Gini(x[-k])
}
gini.bar <- mean(gini.tmp)
sum((gini.tmp-gini.bar)^2)*(N-1)/N
}
calc.Gini.variance(c(1,2,2,3,4,99))
# [1] 0.1696173
Gini(c(1,2,2,3,4,99))
# [1] 0.7462462
Czy jest to rozsądne podejście dla małego N? Jakieś inne sugestie?
Odpowiedzi:
Jednym z problemów będzie to, że przy tej małej próbce i złożonej statystyce (współczynnik gini) rozkład prawdopodobieństwa twojej statystyki z pewnością nie będzie w przybliżeniu normalny, więc „błąd standardowy” może być mylący, jeśli zamierzasz go użyć do stworzenia przedziałów ufności lub testowanie hipotez opartych na normalności.
Myślałam, że centylowy bootstrap byłby lepszą metodą i prostszą do wdrożenia. Na przykład:
Nie dołączyłem wykresu wygenerowanego do końca, ale pokazuje, że przedział ufności jest bardzo asymetryczny, więc użycie metody takiej jak +/- 1,96 * se dla przedziału ufności będzie mylące. Głównie z tego powodu nie przepadam za metodami scyzoryka, jeśli chodzi o przedziały ufności; jackknife został wynaleziony jako technika redukcji uprzedzeń dla oszacowań punktowych, podczas gdy przedziały ufności są nieodłącznym elementem całej idei bootstrap.
źródło