Koefisien dan batas kesalahan gini

11

Saya memiliki serangkaian waktu data dengan N = 14 jumlah pada setiap titik waktu, dan saya ingin menghitung koefisien Gini dan kesalahan standar untuk perkiraan ini pada setiap titik waktu.

Karena saya hanya memiliki N = 14 hitungan pada setiap titik waktu saya melanjutkan dengan menghitung varians jackknife, yaitu dari persamaan 7 dari Tomson Ogwang 'Metode yang mudah untuk menghitung indeks Gini dan' kesalahan standar ' . Di mana adalah koefisien Gini dari nilai N tanpa elemen dan adalah rata-rata dari .var(G)=n1n×k=1n(G(n,k)G¯(n))2G(n,k)kG¯(x)G(n,k)

Implementasi naif langsung dari rumus di atas untuk Variance.

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

Apakah ini pendekatan yang masuk akal untuk N kecil? Ada saran lain?

Sean
sumber
Mungkin Anda dapat menambahkan perhitungan aktual yang Anda gunakan untuk estimasi sampel dan kesalahan standar karena banyak orang mungkin tidak memiliki akses ke makalah di tautan yang disediakan.
kardinal

Jawaban:

5

Satu masalah adalah bahwa dengan ukuran sampel yang kecil dan statistik yang kompleks (koefisien gini), distribusi probabilitas statistik Anda tentu tidak akan mendekati normal, sehingga "kesalahan standar" mungkin menyesatkan jika Anda bermaksud menggunakannya untuk membuat interval kepercayaan atau pengujian hipotesis mengandalkan normalitas.

Saya akan berpikir bootstrap persentil akan menjadi metode yang lebih baik, dan lebih mudah diterapkan. Sebagai contoh:

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

Saya belum melampirkan plot yang dihasilkan pada akhir tetapi ini menunjukkan bahwa interval kepercayaan sangat asimetris, jadi menggunakan metode seperti +/- 1.96 * se untuk interval kepercayaan akan menyesatkan. Saya bukan penggemar metode jackknife untuk interval kepercayaan terutama karena alasan ini; jackknife diciptakan sebagai teknik reduksi bias untuk estimasi titik, sedangkan interval kepercayaan intrinsik dengan seluruh ide bootstrap.

Peter Ellis
sumber
Ini sebenarnya adalah salah satu poin dari makalah asli - metode ini dikembangkan untuk meringankan beban komputasi menggunakan pisau lipat untuk menghitung Gini SEs. Dengan , hampir tidak ada beban sama sekali. N=14
MichaelChirico