我需要您的帮助来解释如何获得与此函数相同的结果:gini(x, weights=rep(1,length=length(x))) http://cran.r-project.org/web/ packages/reldist/reldist.pdf --> 第 2 页。 Gini
比方说,我们需要测量人口 N 的 inocme。为此,我们可以将人口 N 分成 K 个子组。并且在每个子组 kth 中,我们将选取 nk 个个人并询问他们的收入。结果,我们将获得“个人收入”,每个人将有特定的“样本权重”来表示他们对人口 N 的贡献。这是我简单地从上一个链接获得的示例,数据集来自 NLS
rm(list=ls())
cat("\014")
library(reldist)
data(nls);data
help(nls)
# Convert the wage growth from (log. dollar) to (dollar)
y <- exp(recent$chpermwage);y
# Compute the unweighted estimate
gini_y <- gini(y)
# Compute the weighted estimate
gini_yw <- gini(y,w=recent$wgt)
> --- Here is the result----
> gini_y = 0.3418394
> gini_yw = 0.3483615
我知道如何通过我自己的代码计算没有 WEIGHTS 的 Gini。因此,毫无疑问,我想在我的代码中保留命令 gini(y)。我唯一关心的是 gini(y,w) 的操作方式以获得结果 0.3483615。我尝试进行如下计算,看看是否能得出与 gini_yw 相同的结果。这是我基于本书第 9.5 节 CDF 的另一个代码:Mark S. Handcock 的“社会科学中的相对分配方法”,
#-------------------------
# test how gini computes with the sample weights
z <- exp(recent$chpermwage) * recent$wgt
gini_z <- gini(z)
# Result gini_z = 0.3924161
如您所见,我的计算 gini_z 与命令 gini(y, weights) 不同。如果你们中的某个人知道如何构建正确的计算以准确获得 gini_yw = 0.3483615,请给我您的建议。
非常感谢朋友。