Я хотел бы реализовать Oaxaca Decomposition в R. Он используется, например, в. экономика труда, чтобы отличить объясненную дисперсию от необъяснимой дисперсии.
Это довольно легко сделать с невзвешенными данными, используя Пакет Оахака (см. предыдущее объяснение здесь для общего использования oaxaca). Однако в настоящее время пакет Oaxaca не поддерживает данные взвешенных обследований, таких как Current Population Survey.
"Опрос" — самый популярный пакет для работы с данными опросов в R, но ему не хватает возможности прямого выполнения декомпозиции Оахаки.
Ниже приведен пример, в котором отмечены очевидные ограничения двух пакетов:
# 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 можно сделать совместимым с весами опроса или как реализовать команду декомпозиции oaxaca для объекта Survey.design, то это было бы очень признательно. Любые указатели?
Я считаю, что пакет «decr» подходит ближе всего. Это позволяет декомпозировать взвешенные данные.
В библиотеке decr есть несколько скриптов, которые могут взвешивать и выполнять декомпозицию взвешенных данных.
Вы нашли решение? У меня та же проблема. Теоретически функция oaxaca позволяет передавать дополнительные аргументы, такие как веса, в функцию регрессии через многоточие ("...").