Granice współczynnika Giniego i granice błędów

11

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ą.var(sol)=n-1n×k=1n(sol(n,k)-sol¯(n))2)sol(n,k)ksol¯(x)sol(n,k)

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?

Sean
źródło
Być może możesz dodać rzeczywiste obliczenia, których używasz dla oszacowania próbki i błędu standardowego, ponieważ wiele osób może nie mieć dostępu do papieru pod podanym linkiem.
kardynał

Odpowiedzi:

5

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:

> library(reldist) # just for the gini() function
> library(boot) # for the boot() function
> x <- c(1,2,2,3,4,99)
> gini(x)
[1] 0.7462462 # check get same result as in your question
> y <- boot(x, gini, 500)
> quantile(y$t, probs=c(0.025, 0.975))
     2.5%     97.5% 
0.6353158 0.7717868 
> plot(density(y$t))

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.

Peter Ellis
źródło
Jest to w rzeczywistości jeden z punktów oryginalnego artykułu - metoda została opracowana w celu ~ zmniejszenia obciążeń obliczeniowych związanych z używaniem scyzoryka do obliczania SE Gini. ZN.=14, nie ma prawie żadnego obciążenia.
MichaelChirico