giniCI | R Documentation |
Compute a composite index with weighting schemes based on the Gini coefficient of constituent indicators, with options for aggregation methods and horizontal variability adjustment.
giniCI(inds, method = c("equal", "gini", "reci"),
agg = c("ari", "geo"), hv = TRUE, ci.pol = c("pos", "neg"),
time = NULL, ref.time = NULL, only.ci = FALSE)
inds |
a matrix or data frame of indicators to be aggregated. |
method |
weighting method to be used. See |
agg |
aggregation function to be used, with |
hv |
a logical value indicating whether horizontal variability adjustment should be applied. |
ci.pol |
a character value indicating the polarity of composite index.
Use |
time |
a vector of temporal factors for indicators. The length of |
ref.time |
a value denoting the reference time for weighting. If provided, weights will be derived using only observations at the reference time. |
only.ci |
a logical value indicating whether only the composite index should be returned. |
The defaut method is "equal"
that produces equal weights 1/n
where
n
is the number of indicators. For methods "gini"
(Gini-based
weighting) and "reci"
(reciprocal Gini-based weighting), weights are
defined based on the Gini coefficient of indicators. Let G_i
be the
Gini coefficient of the i
-th indicator, the weights by methods
"gini"
and "reci"
are respectively computed as
w^\mathrm{gini}_i = \frac{G_i}{\sum^n_{i = 1} G_i}
and
w^\mathrm{reci}_i = \frac{1 / G_i}{\sum^n_{i = 1} 1 / G_i}
.
Temporal factors can be applied to methods "gini"
and "reci"
. If either
time
or ref.time
is NULL
, the weighting process is run on all
observations. If both time
and ref.time
are not NULL
, only observations
at the reference time are used for weight computation.
When aggregating the indicators, the aggregate score for the j
-th unit
is computed by applying the chosen aggregation function with the obtained
weights to values in the j
-th row. If hv = TRUE
, horizontal
variability adjustment is executed by introducing a penalty for units with
unbalanced values among dimensions. The penalty for the j
-th unit is
defined as the the index of dispersion (variance-to-mean ratio) of values in
the j
-th row. If ci.pol = "pos"
, the penalties is subtracted from the
aggregate scores to form the composite index. If ci.pol = "neg"
the
penalties is added to the aggregate scores to form the composite index.
A list containing the following components:
ci |
the composite index. |
w |
the weights assigned. |
pen |
the horizontal variability penalties (if |
If only.ci = TRUE
, the function will return only the composite index.
Methods "gini"
and "reci"
require non-negative indicators for the
calculation of Gini coefficients. In addition, option hv = TRUE
cannot be
used if any row contains negative values. Therefore, it may be necessary to
use normalize
to scale the indicators to non-negative ranges before
computing the composite index.
A Gini coefficient of zero occurs when the indicators are constant or do not
change over the reference time. If a zero Gini coefficient is obtained for
for one or more indicators, method "gini"
returns the corresponding weights
as zero while method "reci"
cannot be applied.
Viet Duong Nguyen, Chiara Gigliarano, Mariateresa Ciommi
Mazziotta, M. and Pareto, A. (2016). On a Generalized Non-compensatory Composite Index for Measuring Socio-economic Phenomena. Social Indicators Research, 127, 983–1003.
Ciommi, M., Gigliarano, C., Emili, A., Taralli, S., and Chelli, F. M. (2017). A new class of composite indicators for measuring well-being at the local level: An application to the Equitable and Sustainable Well-being (BES) of the Italian Provinces. Ecological Indicators, 76, 281–296.
normalize
, rankComp
.
data(bli)
# Indicator polarity
bli.pol = c("neg", "pos", "pos", "pos", "pos", "neg",
"pos", "pos", "pos", "neg", "pos")
# Goalpost normalization without using time factors
bli.norm <- normalize(inds = bli[, 3:13], method = "goalpost",
ind.pol = bli.pol)
# Goalpost normalization using time factors and a reference time
bli.norm.2014 <- normalize(inds = bli[, 3:13], method = "goalpost",
ind.pol = bli.pol, time = bli$YEAR,
ref.time = 2014)
# Adjusted Mazziotta-Pareto index
bli.ampi <- giniCI(bli.norm, ci.pol = "pos")
bli.ampi$ci
# Gini-based weighted arithmetic mean with reference time
bli.gini <- giniCI(bli.norm.2014, method = "gini", ci.pol = "pos",
time = bli$YEAR, ref.time = 2014)
bli.gini$ci
bli.gini$w
# Reciprocal Gini-based weighted geometric mean with reference time
bli.reci <- giniCI(bli.norm.2014, method = "reci", agg = "geo",
ci.pol = "pos", time = bli$YEAR, ref.time = 2014)
bli.reci$ci
bli.reci$w
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.