Coeficiente de Gini y límites de error


11

Tengo una serie temporal de datos con N = 14 recuentos en cada punto de tiempo, y quiero calcular el coeficiente de Gini y un error estándar para esta estimación en cada punto de tiempo.

Como solo tengo N = 14 recuentos en cada punto de tiempo, procedí calculando la varianza de la navaja, es decir, de la ecuación 7 de Tomson Ogwang 'Un método conveniente para calcular el índice de Gini y su' error estándar ' . Donde es el coeficiente de Gini de los N valores sin elemento y es la media de .var(G)=n1n×k=1n(G(n,k)G¯(n))2G(n,k)kG¯(x)G(n,k)

Implementación directa ingenua de la fórmula anterior para la varianza.

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

¿Es este un enfoque razonable para una pequeña N? ¿Cualquier otra sugerencia?


Tal vez pueda agregar los cálculos reales que está utilizando tanto para la estimación de la muestra como para el error estándar, ya que muchas personas pueden no tener acceso al documento en el enlace proporcionado.
Cardenal

Respuestas:


5

Un problema será que con este pequeño tamaño de muestra y una estadística compleja (coeficiente de Gini) la distribución de probabilidad de su estadística ciertamente no será aproximadamente normal, por lo que el "error estándar" puede ser engañoso si tiene la intención de usarlo para crear intervalos de confianza o pruebas de hipótesis basadas en la normalidad.

Pensé que un bootstrap percentil sería un mejor método y más sencillo de implementar. Por ejemplo:

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

No he adjuntado el gráfico generado al final, pero muestra que el intervalo de confianza es muy asimétrico, por lo que usar un método como +/- 1.96 * se para un intervalo de confianza será engañoso. No soy fanático de los métodos de navaja para intervalos de confianza principalmente por este motivo; Jackknife se inventó como una técnica de reducción de sesgo para las estimaciones puntuales, mientras que los intervalos de confianza son intrínsecos a toda la idea del bootstrap.


De hecho, este es uno de los puntos del artículo original: el método está desarrollado para aliviar la carga computacional del uso de jackknife para calcular los SE Gini. Con , casi no hay ninguna carga. N=14
MichaelChirico
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.