r中权重的广义基尼系数



我想计算加权广义基尼系数。CRAN分配"酸"。具有合适功能的包。

我在这里错过了什么?当权重不变时,对的估计加权。在参数nu = 2的情况下,Gini和sgini是相等的(为了得到常规的Gini)。当权重是非常数时,它们是不同的。是发生了什么可疑的事,还是我错过了什么?它们应该是一样的,对吧?

通过van Kerm在acid文档中引用的STATA sgini函数进行检查,其函数返回预期的相同估计。

set.seed(123)
install.packages("acid")
library(acid)
x <- rnorm(100,10,1)
w <- rep(1, length(x))
acid::weighted.gini(x,w)$Gini
acid::sgini(x,w,nu=2)$Gini
w <- rnorm(100,10,1)
acid::weighted.gini(x,w)$Gini
acid::sgini(x,w,nu=2)$Gini

"sgini"有一个错误。在公式中,命令"sgi "在同一点,计算平均值(x)时不考虑权重。

如果我们尝试手动计算给定公式的加权基尼系数:https://core.ac.uk/download/pdf/41339501.pdf

set.seed(123)
x <- rnorm(100,10,1)
w <- rep(1, length(x))
acid::weighted.gini(x,w)$Gini
acid::sgini(x,w,nu=2)$Gini
w <- rnorm(100,10,1)
acid::weighted.gini(x,w)
acid::sgini(x,w,nu=2)
#calc manually
ox<-order(x)
x<-x[ox]
w<-w[ox]
#cov(x,cumsum(x)/cumsum(x)[length(x)])*2/mean(x) #gini without weights
w<-w/sum(w)
f<-w/2+cumsum(c(0,w[-length(w)]))
2/sum(x*w)*sum(w*(x-sum(x*w))*(f-sum(f*w))) #==weighted.gini(x,w)$Gini

相关内容

  • 没有找到相关文章

最新更新