Estimate the ratio between the median income of people with age above 65 and the median income of people with age below 65.

svyrmir(formula, design, ...)

# S3 method for survey.design
svyrmir(
  formula,
  design,
  age,
  agelim = 65,
  quantiles = 0.5,
  na.rm = FALSE,
  med_old = FALSE,
  med_young = FALSE,
  ...
)

# S3 method for svyrep.design
svyrmir(
  formula,
  design,
  age,
  agelim = 65,
  quantiles = 0.5,
  na.rm = FALSE,
  med_old = FALSE,
  med_young = FALSE,
  ...
)

# S3 method for DBIsvydesign
svyrmir(formula, design, age, ...)

Arguments

formula

a formula specifying the income variable

design

a design object of class survey.design or class svyrep.design from the survey library.

...

arguments passed on to `survey::oldsvyquantile`

age

formula defining the variable age

agelim

the age cutpoint, the default is 65

quantiles

income quantile, usually .5 (median)

na.rm

Should cases with missing values be dropped?

med_old

return the median income of people older than agelim

med_young

return the median income of people younger than agelim

Value

Object of class "cvystat", which are vectors with a "var" attribute giving the variance and a "statistic" attribute giving the name of the statistic.

Details

you must run the convey_prep function on your survey design object immediately after creating it with the svydesign or svrepdesign function.

References

Guillaume Osier (2009). Variance estimation for complex indicators of poverty and inequality. Journal of the European Survey Research Association, Vol.3, No.3, pp. 167-195, ISSN 1864-3361, URL https://ojs.ub.uni-konstanz.de/srm/article/view/369.

Jean-Claude Deville (1999). Variance estimation for complex statistics and estimators: linearization and residual techniques. Survey Methodology, 25, 193-203, URL https://www150.statcan.gc.ca/n1/en/catalogue/12-001-X19990024882.

See also

Author

Djalma Pessoa and Anthony Damico

Examples

library(survey)
library(laeken)
data(eusilc) ; names( eusilc ) <- tolower( names( eusilc ) )

# missing completely at random, missingness rate = .20
ind_miss <- rbinom(nrow(eusilc), 1, .20 )
eusilc$eqincome_miss <- eusilc$eqincome
is.na(eusilc$eqincome_miss)<- ind_miss==1

# linearized design
des_eusilc <- svydesign( ids = ~rb030 , strata = ~db040 ,  weights = ~rb050 , data = eusilc )
des_eusilc <- convey_prep(des_eusilc)

svyrmir( ~eqincome , design = des_eusilc , age = ~age, med_old = TRUE )
#>             rmir     SE
#> eqincome 0.93304 0.0113

# replicate-weighted design
des_eusilc_rep <- as.svrepdesign( des_eusilc , type = "bootstrap" )
des_eusilc_rep <- convey_prep(des_eusilc_rep)

svyrmir( ~eqincome , design = des_eusilc_rep, age= ~age, med_old = TRUE )
#>             rmir     SE
#> eqincome 0.93304 0.0125

if (FALSE) {

# linearized design using a variable with missings
svyrmir( ~ eqincome_miss , design = des_eusilc,age= ~age)
svyrmir( ~ eqincome_miss , design = des_eusilc , age= ~age, na.rm = TRUE )
# replicate-weighted design using a variable with missings
svyrmir( ~ eqincome_miss , design = des_eusilc_rep,age= ~age )
svyrmir( ~ eqincome_miss , design = des_eusilc_rep ,age= ~age, 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 )

svyrmir( ~eqincome , design = dbd_eusilc , age = ~age )

dbRemoveTable( conn , 'eusilc' )

dbDisconnect( conn , shutdown = TRUE )

}