首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中权重的广义Gini

R中权重的广义Gini
EN

Stack Overflow用户
提问于 2021-01-25 19:57:20
回答 1查看 54关注 0票数 0

我想计算加权广义基尼系数。CRAN使用合适的函数分发"acid“包。

这里我漏掉了什么?当权重不变时,给定参数nu =2,weighted.gini和sgini的估计是相等的(以获得规则的基尼系数)。当权重是非常数时,它们是不同的。是不是有什么不对劲的地方,还是我错过了什么?它们应该是一样的,对吧?

用van Kerm的STATA sgini函数检查,该函数在acid文档中被引用,它的函数返回预期的相同估计值。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2021-11-22 18:48:50

"sgini“中有一个错误。在命令"sgini“具有的公式中,在同一点上,在不考虑权重的情况下计算平均值(X)。

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

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65884289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档