fitLorenz {biogeom} | R Documentation |
Data-Fitting Function for the Rotated and Right-Shifted Lorenz Curve
Description
fitLorenz
is used to estimate the parameters of the rotated and right-shifted Lorenz curve
using version 4 or 5 of MPerformanceE
, or the Lorenz equations including
SarabiaE
, SCSE
, and SHE
.
Usage
fitLorenz(expr, z, ini.val, simpver = 4,
control = list(), par.list = FALSE,
fig.opt = FALSE, np = 2000,
xlab=NULL, ylab=NULL, main = NULL, subdivisions = 100L,
rel.tol = .Machine$double.eps^0.25,
abs.tol = rel.tol, stop.on.error = TRUE,
keep.xy = FALSE, aux = NULL, par.limit = TRUE)
Arguments
expr |
version 4 or 5 of |
z |
the observations of size distribution (i.e., the household income distribution, the leaf size distribution). |
ini.val |
the initial values of the model parameters. |
simpver |
an optional argument to use version 4 or 5 of |
control |
the list of control parameters for using the |
par.list |
the option of showing the list of parameters on the screen. |
fig.opt |
an optional argument to draw the original and rotated Lorenz curves. |
np |
the number of data points to draw the predicted original and rotated Lorenz curves. |
xlab |
the label of the |
ylab |
the label of the |
main |
the main title of the figure. |
subdivisions |
please see the arguments for the |
rel.tol |
please see the arguments for the |
abs.tol |
please see the arguments for the |
stop.on.error |
please see the arguments for the |
keep.xy |
please see the arguments for the |
aux |
please see the arguments for the |
par.limit |
an optional argument to limit the numerical ranges of model parameters of the three Lorenz
equations including |
Details
Here, ini.val
only includes the initial values of the model parameters as a list.
The Nelder-Mead algorithm (Nelder and Mead, 1965) is used to carry out the optimization of minimizing the residual
sum of squares (RSS) between the observed and predicted y
values. The optim
function in package stats was used to carry out the Nelder-Mead algorithm.
Here, versions 4 and 5 of MPerformanceE
and the Lorenz equations including
SarabiaE
, SCSE
, and SHE
can be used to fit the rotated
and right-shifted Lorenz curve.
\quad
When simpver = 4
, the simplified version 4 of MPerformanceE
is selected:
\mbox{if } x \in{\left(0, \ \sqrt{2}\right)},
y = c\left(1-e^{-K_{1}x}\right)^{a}\left(1-e^{K_{2}\left(x-\sqrt{2}\right)}\right)^{b};
\mbox{if } x \notin{\left(0, \ \sqrt{2}\right)},
y = 0.
There are five elements in P
, representing
the values of c
, K_{1}
, K_{2}
, a
, and b
, respectively.
\quad
When simpver = 5
, the simplified version 5 of MPerformanceE
is selected:
\mbox{if } x \in{\left(0, \ \sqrt{2}\right)},
y = c\left(1-e^{-K_{1}x}\right)\left(1-e^{K_{2}\left(x-\sqrt{2}\right)}\right);
\mbox{if } x \notin{\left(0, \ \sqrt{2}\right)},
y = 0.
There are three elements in P
, representing
the values of c
, K_{1}
, and K_{2}
, respectively.
\quad
For the Lorenz functions, the user can define any formulae that follow the below form:
Lorenz.fun <- function(P, x){...}
, where P
is the vector of parameter(s), x
is the preditor that
ranges between 0 and 1 representing the cumulative proportion of the number of individuals in a statistical
unit, and Lorenz.fun
is the name of a Lorenz function defined by the user, which also ranges between 0 and 1
representing the cumulative
proportion of the income or size in a statistical unit. This package provides three representative Lorenz
functions: SarabiaE
, SCSE
, and SHE
.
\quad
Here, the Gini coefficient (GC) is calculated as follows when MPerformanceE
is selected:
\mbox{GC} = 2\int_{0}^{\sqrt{2}}y\,dx,
where x
and y
are the independent and dependent variables
in version 4 or 5 of MPerformanceE
, respectively.
\quad
However, the Gini coefficient (GC) is calculated as follows when a Lorenz function, e.g.,
SCSE
, is selected:
\mbox{GC} = 2\int_{0}^{1}y\,dx,
where x
and y
are the independent and dependent variables
in the Lorenz function, respectively.
\quad
For SarabiaE
and SHE
, there are explicit formulae for GC
(Sarabia, 1997; Sitthiyot and Holasut, 2023).
Value
x1 |
the cumulative proportion of the number of an entity of interest, i.e., the number of households of a city, the number of leaves of a plant. |
y1 |
the cumulative proportion of the size of an entity of interest. |
x |
the |
y |
the |
par |
the estimates of the model parameters. |
r.sq |
the coefficient of determination between the observed and predicted |
RSS |
the residual sum of squares between the observed and predicted |
sample.size |
the number of data points used in the data fitting. |
GC |
the calculated Gini coefficient. |
Note
When MPerformanceE
is selected, the estimates of the model parameters
denote those in MPerformanceE
rather than
being obtained by directly fitting the y1
versus x1
data;
when a Lorenz function is selected, the estimates of the model parameters
denote those in the Lorenz function.
Author(s)
Peijian Shi pjshi@njfu.edu.cn, Johan Gielis johan.gielis@uantwerpen.be, Brady K. Quinn Brady.Quinn@dfo-mpo.gc.ca.
References
Huey, R.B., Stevenson, R.D. (1979) Integrating thermal physiology and ecology of ectotherms:
a discussion of approaches. American Zoologist 19, 357-
366. doi:10.1093/icb/19.1.357
Lian, M., Shi, P., Zhang, L., Yao, W., Gielis, J., Niklas, K.J. (2023) A generalized performance equation
and its application in measuring the Gini index of leaf size inequality.
Trees -
Structure and Function 37, 1555-
1565. doi:10.1007/s00468-023-02448-8
Lorenz, M.O. (1905) Methods of measuring the concentration of wealth.
Journal of the American Statistical Association 9(70), 209-
219. doi:10.2307/2276207
Nelder, J.A., Mead, R. (1965) A simplex method for function minimization.
Computer Journal 7, 308-
313. doi:10.1093/comjnl/7.4.308
Sarabia, J.-M. (1997) A hierarchy of Lorenz curves based on the generalized Tukey's lambda distribution.
Econometric Reviews 16, 305-
320. doi:10.1080/07474939708800389
Shi, P., Gielis, J., Quinn, B.K., Niklas, K.J., Ratkowsky, D.A., Schrader, J., Ruan, H.,
Wang, L., Niinemets, Ü. (2022) 'biogeom': An R package for simulating and fitting natural
shapes. Annals of the New York Academy of Sciences 1516, 123-
134. doi:10.1111/nyas.14862
Sitthiyot, T., Holasut, K. (2023) A universal model for the Lorenz curve with novel applications for datasets containing zeros and/or exhibiting extreme inequality. Scientific Reports 13, 4729. doi:10.1038/s41598-023-31827-x
See Also
LeafSizeDist
, MPerformanceE
, SarabiaE
,
SCSE
, SHE
Examples
data(LeafSizeDist)
CulmNumber <- c()
for(i in 1:length(LeafSizeDist$Code)){
temp <- as.numeric( strsplit(LeafSizeDist$Code[i], "-", fixed=TRUE)[[1]][1] )
CulmNumber <- c(CulmNumber, temp)
}
uni.CN <- sort( unique(CulmNumber) )
ind <- CulmNumber==uni.CN[1]
A0 <- LeafSizeDist$A[ind]
ini.val1 <- list(0.5, 0.1, c(0.01, 0.1, 1, 5, 10), 1, 1)
ini.val2 <- list(0.5, 0.1, c(0.01, 0.1, 1, 5, 10))
resu1 <- fitLorenz(MPerformanceE, z=A0, ini.val=ini.val1, simpver=4, fig.opt=TRUE)
resu2 <- fitLorenz(MPerformanceE, z=A0, ini.val=ini.val2, simpver=5, fig.opt=TRUE)
resu1$par
resu2$par
ini.val3 <- list(0.9, c(10, 50, 100, 500), 1, 0)
resu3 <- fitLorenz( SarabiaE, z=A0, ini.val=ini.val3, par.limit=TRUE,
fig.opt=TRUE, control=list(reltol=1e-20, maxit=10000) )
resu3$par
resu3$GC
graphics.off()