基尼系数和误差范围


11

我有一个时间序列的数据,每个时间点的N = 14个计数,我想在每个时间点计算此估计的基尼系数和标准误差。

由于我在每个时间点只有N = 14个计数,因此我通过计算折刀方差来进行计算,即从方程7汤臣Ogwang的标准误差”“计算基尼系数和它的一种方便的方法”。其中G ^Ñķ是N个值的无元件的基尼系数ķ ˉ ģX是平均的的G ^Ñķ变种G=ñ-1个ñ×ķ=1个ñGñķ-G¯ñ2GñķķG¯XGñķ

上面的方差公式的直接天真实现。

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

对于较小的N,这是否合理?还有其他建议吗?


也许您可以添加用于样本估计值和标准误差的实际计算,因为许多人可能无法通过提供的链接访问纸张。
主教

Answers:


5

一个问题将是,在如此小的样本量和复杂的统计量(基尼系数)下,您的统计量的概率分布肯定不会近似于正态,因此,如果您打算使用它来创建置信区间,则“标准误”可能会产生误导或假设检验依赖于正态性。

我本以为百分位数引导会是一个更好的方法,并且更易于实现。例如:

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

我尚未附上最后生成的图,但它表明置信区间非常不对称,因此对置信区间使用+/- 1.96 * se这样的方法会产生误导。由于这个原因,我不喜欢采用折刀方法来置信区间。折刀被发明为一种用于点估计的偏差减少技术,而置信区间是整个引导程序固有的。


实际上,这是原始论文的要点之一-该方法的开发旨在减轻使用折刀来计算Gini SE的计算负担。用ñ=14,几乎没有任何负担。
MichaelChirico
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.