R

时间:2018-08-26 12:05:47

标签: r gini risk-analysis

我在R中使用软件包Ineq来计算基尼系数。通过检查源代码(如下),它是在计算Gini之前首先对向量x进行排序。

示例数据:

example_data = data.frame(SCORE_RANGE = c('100-200','201-300','301- 
400','401-500','501-600'),
NUMBER_OF_OBSERVATIONS = c(100,100,100,100,100),
NUMBER_OF_NON_EVENT = c(85,90,95,90,90),
NUMBER_OF_EVENT = c(15,10,5,10,10))

ineq软件包中的Gini函数的源代码:

Gini = function (x, corr = FALSE, na.rm = TRUE) 
{
if (!na.rm && any(is.na(x))) 
    return(NA_real_)
x <- as.numeric(na.omit(x))
n <- length(x)
x <- sort(x)
G <- sum(x * 1L:n)
G <- 2 * G/sum(x) - (n + 1L)
if (corr) 
    G/(n - 1L)
else G/n
}

我正在为我的信用评分模型进行此操作,并且我已将数据分类为等频率的评分范围,然后按分数排序(从最小到最大)。

使用ineq软件包中的Gini函数将得到 0.16 。在这种情况下这是正确的吗,并且ineq包中的Gini函数在计算之前会对向量进行重新排序?如果不是,正确的基尼系数应该是多少?

Gini(example_data$NUMBER_OF_EVENT) 

0 个答案:

没有答案