Estimates the group decomposition of the generalized entropy index
svygeidec(formula, subgroup, design, ...)
# S3 method for survey.design
svygeidec(
formula,
subgroup,
design,
epsilon = 1,
na.rm = FALSE,
deff = FALSE,
linearized = FALSE,
influence = FALSE,
...
)
# S3 method for svyrep.design
svygeidec(
formula,
subgroup,
design,
epsilon = 1,
na.rm = FALSE,
deff = FALSE,
linearized = FALSE,
return.replicates = FALSE,
...
)
# S3 method for DBIsvydesign
svygeidec(formula, subgroup, design, ...)
a formula specifying the income variable
a formula specifying the group variable
a design object of class survey.design
or class svyrep.design
from the survey
library.
future expansion
a parameter that determines the sensivity towards inequality in the top of the distribution. Defaults to epsilon = 1.
Should cases with missing values be dropped? Observations containing missing values in income or group variables will be dropped.
Return the design effect (see survey::svymean
)
Should a matrix of linearized variables be returned
Should a matrix of (weighted) influence functions be returned? (for compatibility with svyby
)
Return the replicate estimates?
Object of class "cvydstat
", which are vectors with a "var
" attribute giving the variance-covariance matrix and a "statistic
" attribute giving the name of the statistic.
you must run the convey_prep
function on your survey design object immediately after creating it with the svydesign
or svrepdesign
function.
This measure only allows for strictly positive variables.
Anthony F. Shorrocks (1984). Inequality decomposition groups population subgroups. Econometrica, v. 52, n. 6, 1984, pp. 1369-1385. URL https://www.jstor.org/stable/1913511.
Martin Biewen and Stephen Jenkins (2002). Estimation of Generalized Entropy and Atkinson Inequality Indices from Complex Survey Data. DIW Discussion Papers, No.345, URL https://www.diw.de/documents/publikationen/73/diw_01.c.40394.de/dp345.pdf.
library(survey)
library(laeken)
data(eusilc) ; names( eusilc ) <- tolower( names( eusilc ) )
# linearized design
des_eusilc <- svydesign( ids = ~rb030 , strata = ~db040 , weights = ~rb050 , data = eusilc )
des_eusilc <- convey_prep(des_eusilc)
# replicate-weighted design
des_eusilc_rep <- as.svrepdesign( des_eusilc , type = "bootstrap" )
des_eusilc_rep <- convey_prep(des_eusilc_rep)
# linearized design
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc, eqincome > 0 ) , epsilon = 0 )
#> gei decomposition SE
#> total 0.13136923 0.0024
#> within 0.13058151 0.0024
#> between 0.00078772 0.0002
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc, eqincome > 0 ) , epsilon = .5 )
#> gei decomposition SE
#> total 0.12161379 2e-03
#> within 0.12082601 2e-03
#> between 0.00078777 2e-04
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc, eqincome > 0 ) , epsilon = 1 )
#> gei decomposition SE
#> total 0.12052692 0.0021
#> within 0.11973904 0.0021
#> between 0.00078788 0.0002
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc, eqincome > 0 ) , epsilon = 2 )
#> gei decomposition SE
#> total 0.13674956 0.0035
#> within 0.13596133 0.0035
#> between 0.00078824 0.0002
# replicate-weighted design
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc_rep, eqincome > 0 ) , epsilon = 0 )
#> gei decomposition SE
#> total 0.13136923 0.0029
#> within 0.13058151 0.0028
#> between 0.00078772 0.0002
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc_rep, eqincome > 0 ) , epsilon = .5 )
#> gei decomposition SE
#> total 0.12161379 0.0022
#> within 0.12082601 0.0022
#> between 0.00078777 0.0002
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc_rep, eqincome > 0 ) , epsilon = 1 )
#> gei decomposition SE
#> total 0.12052692 0.0023
#> within 0.11973904 0.0023
#> between 0.00078788 0.0002
svygeidec( ~eqincome , ~rb090 , subset( des_eusilc_rep, eqincome > 0 ) , epsilon = 2 )
#> gei decomposition SE
#> total 0.13674956 0.0037
#> within 0.13596133 0.0037
#> between 0.00078824 0.0002
if (FALSE) {
# linearized design using a variable with missings
sub_des_eusilc <- subset(des_eusilc, py010n > 0 | is.na(py010n) )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc , epsilon = 0 )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc , epsilon = 0, na.rm = TRUE )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc , epsilon = 1 )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc , epsilon = 1, na.rm = TRUE )
# replicate-weighted design using a variable with missings
sub_des_eusilc_rep <- subset(des_eusilc_rep, py010n > 0 | is.na(py010n) )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc_rep , epsilon = 0 )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc_rep , epsilon = 0, na.rm = TRUE )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc_rep , epsilon = 1 )
svygeidec( ~py010n , ~rb090 , sub_des_eusilc_rep , epsilon = 1, na.rm = TRUE )
# database-backed design
library(RSQLite)
library(DBI)
dbfile <- tempfile()
conn <- dbConnect( RSQLite::SQLite() , dbfile )
dbWriteTable( conn , 'eusilc' , eusilc )
dbd_eusilc <-
svydesign(
ids = ~rb030 ,
strata = ~db040 ,
weights = ~rb050 ,
data="eusilc",
dbname=dbfile,
dbtype="SQLite"
)
dbd_eusilc <- convey_prep( dbd_eusilc )
# database-backed linearized design
svygeidec( ~eqincome , ~rb090 , subset(dbd_eusilc, eqincome > 0) , epsilon = 0 )
svygeidec( ~eqincome , ~rb090 , subset(dbd_eusilc, eqincome > 0) , epsilon = .5 )
svygeidec( ~eqincome , ~rb090 , subset(dbd_eusilc, eqincome > 0) , epsilon = 1 )
svygeidec( ~eqincome , ~rb090 , subset(dbd_eusilc, eqincome > 0) , epsilon = 2 )
# database-backed linearized design using a variable with missings
sub_dbd_eusilc <- subset(dbd_eusilc, py010n > 0 | is.na(py010n) )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = 0 )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = 0, na.rm = TRUE )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = .5 )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = .5, na.rm = TRUE )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = 1 )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = 1, na.rm = TRUE )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = 2 )
svygeidec( ~py010n , ~rb090 , sub_dbd_eusilc , epsilon = 2, na.rm = TRUE )
dbRemoveTable( conn , 'eusilc' )
dbDisconnect( conn , shutdown = TRUE )
}