R中加权调查数据的Oaxaca分解

Oaxaca decomposition on weighted survey data in R

我想在 R 中实现 Oaxaca 分解。它用于例如区分解释方差和未解释方差的劳动经济学。

使用 Oaxaca 包(参见 之前对 oaxaca 的一般用法的解释)。但是,Oaxaca 软件包目前不支持加权调查数据,例如 Current Population Survey。

"Survey" 是 R 中处理调查数据最流行的包,但它缺乏直接执行 Oaxaca 分解的能力。

下面的例子说明了这两个包的明显局限性:

# Note the lack of support for a "Oaxaca decomposition command":
library(survey)
data(api)
# The line below weights the data
dclus2<-svydesign(id=~dnum+snum, weights=~pw, data=apiclus2)
model0<-svyglm(I(sch.wide=="Yes")~ell+meals+mobility, design=dclus2, 
family=quasibinomial())

# Note the lack of support for survey weights:
library(oaxaca)
data("chicago")
# The line below will not work if my data is a survey.design object (i.e. weighted data)
oaxaca.results <- oaxaca(ln.real.wage ~ age + female + LTHS + some.college 
+ college + advanced.degree | foreign.born, data = chicago, R = 50)

如果有人能告诉我如何使 oaxaca 包与调查权重兼容或如何在 survey.design 对象上实施 oaxaca 分解命令,那么将不胜感激。有什么指点吗?

"decr" 库有一些脚本可以对加权数据进行加权和分解。