R中的瓦哈卡分解

时间:2011-02-25 07:41:49

标签: r stata economics

我想用R做一个瓦哈卡分解。它用于例如我相信,劳动经济学能够区分解释的方差与不明原因的方差。我无法在R中找到合适的解决方案,而且我不愿意自己创建一个解决方案(我可能会搞砸它)。

无论如何,这里简要解释了程序:

http://en.wikipedia.org/wiki/Ronald_Oaxaca

Stata很幸运,有一个相当不错的包装,但Stata对我来说并不容易。

www.stata.com/meeting/5german/SINNING_stata_presentation.pdf

请注意:我还在R-help上发布了一条消息,但没有得到回复。我希望也可以在这个列表上发帖。

提前致谢, 拉斯穆斯

编辑:我已经做了以下功能,这似乎产生了错误的答案(urgh)。我尝试按照上面的Stata链接进行操作,但它没有像我希望的那样工作:)

oaxaca <- function (fsex,frace1,frace2) {
  ## First we make regresions
  data1 <- subset(l2,sex==fsex & race==frace1)
  data2 <- subset(l2,sex==fsex & race==frace2)

  mindata1 <- subset(cbind(grade,exp,I(exp^2)),sex==fsex & race==frace1)
  mindata2 <- subset(cbind(grade,exp,I(exp^2)),sex==fsex & race==frace2)

  reg1 <- lm(log(wage)~grade+exp+I(exp^2), data=data1)
  reg2 <- lm(log(wage)~grade+exp+I(exp^2), data=data2)

  ## DECOMPOSITION
  ################

  ## Variables
  gap <- mean(log(wage[race==frace1 & sex==fsex]))-mean(log(wage[race==frace2 & sex==fsex]))

  mean1 <- colMeans(mindata1)
  mean2 <- colMeans(mindata2)

  beta1 <- summary(reg1)$coefficients[,1]
  beta2 <- summary(reg2)$coefficients[,1]
  beta1incep <- summary(reg1)$coefficients[1,1]
  beta2incep <- summary(reg2)$coefficients[1,1]
  beta1coef <- summary(reg1)$coefficients[c(2,3,4),1]
  beta2coef <- summary(reg2)$coefficients[c(2,3,4),1]
  betastar <- .5*(beta1coef+beta2coef)
  betastar2 <- (beta1+beta2)/2

  expl <- sum((mean1-mean2)*beta1coef)
  uexpl <- sum(mean2*(beta2coef-beta1coef))

  pct=expl/gap
  pct2=uexpl/gap

  ## output
  out <- data.frame(Gap=gap,
         Explained=expl,
         Unexplained=uexpl,
         Pct=pct*100)

  return(out)
 }

2 个答案:

答案 0 :(得分:7)

我使用了瓦哈卡类型分解。从来没有找到任何R的包,所以我写了一些功能来做到这一点。它类似于Stata中的相应包。

您可以在以下位置找到它的副本: https://github.com/eyjo/Oaxaca

请注意,当时我对使用固定效果(面板数据)模型感兴趣,这些模型与这些分解不直接兼容。 FE类型模型有一个未完成的处理程序,但不应该使用它。我打算用它来创建一个包,但从来没有绕过它。

答案 1 :(得分:4)

CRAN上的oaxaca包可以估算线性模型的Blinder-Oaxaca分解,以及生成显示结果的条形图:http://cran.r-project.org/web/packages/oaxaca/index.html

它还可以计算自举标准误差,以便了解估计的不确定性。

小插图详细描述了软件包的功能,并提供了一些使用示例。见这里:“oaxaca: Blinder-Oaxaca Decomposition in R