Gini katsayısı ve hata sınırları


11

Her zaman noktasında N = 14 sayımı olan bir veri serisi var ve her zaman noktasında Gini katsayısını ve bu tahmin için standart bir hatayı hesaplamak istiyorum.

Jackknife varyansını, yani hesaplayarak ilerlediğim her zaman noktasında sadece N = 14 sayım olduğundan Tomson Ogwang ' denklem 7'den ' Gini indeksini ve 'standart hatasını' hesaplamak için uygun bir yöntem . Burada elemanı olmadan N değerlerinin gini katsayısı ve ve ortalama bir .G(n,k)kvar(G)=n1n×k=1n(G(n,k)G¯(n))2G(n,k)kG¯(x)G(n,k)

Varyans için yukarıdaki formülün doğrudan saf uygulaması.

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

Bu küçük bir N için makul bir yaklaşım mı? Başka öneriniz var mı?


Belki birçok örnek sağlanan bağlantıdan kağıda erişemeyebileceğinden, hem örnek tahmin hem de standart hata için kullandığınız gerçek hesaplamaları ekleyebilirsiniz.
kardinal

Yanıtlar:


5

Bir sorun, bu küçük örneklem büyüklüğü ve karmaşık bir istatistik (gini katsayısı) ile istatistiklerinizin olasılık dağılımının kesinlikle normal olmayacağıdır, bu nedenle güven aralıkları oluşturmak için kullanmak istiyorsanız "standart hata" yanıltıcı olabilir veya normalliğe dayanan hipotez testleri.

Yüzdelik bir bootstrapın daha iyi ve daha basit bir yöntem olacağını düşünürdüm. Örneğin:

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

Sonunda oluşturulan grafiği eklemedim, ancak güven aralığının çok asimetrik olduğunu gösteriyor, bu nedenle güven aralığı için +/- 1.96 * se gibi bir yöntem kullanmak yanıltıcı olacaktır. Ben esas olarak bu nedenle güven aralıkları için jackknife yöntemlerinin hayranı değilim; jackknife, nokta tahminleri için bir önyargı azaltma tekniği olarak icat edilirken, güven aralıkları, bootstrap fikrinin tamamının özünü oluşturmuştur.


Bu aslında orijinal makalenin noktalarından biridir - yöntem, Gini SE'leri hesaplamak için jackknife kullanmanın hesaplama yükünü hafifletmek için geliştirilmiştir. ile hiç bir yük yok. N=14
MichaelChirico
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.