8

RでOaxacaDecompositionを作成したいと思います。これは、たとえば労働経済学で、説明された分散と説明されていない分散を区別するために使用されると思います。私はRで適切な解決策を見つけることができず、自分で解決策を作成することにはかなり消極的です(おそらくそれを台無しにするでしょう)。

とにかく、手順はここで簡単に説明されています:

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

Stataはこのためのかなり良いパッケージに恵まれていますが、Stataを簡単に入手することはできません。

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

注意:R-helpにもメッセージを投稿しましたが、返信がありません。このリストにも投稿しても大丈夫だと思います。

よろしくお願いします、ラスムス

編集:私は次の関数を作成しましたが、間違った答えが返されるようです(うーん)。上記の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)
 }
4

2 に答える 2

8

私はオアハカタイプの分解を使用しました。Rのパッケージが見つからなかったので、それを実行する関数をいくつか作成しました。これは、Stataの対応するパッケージに似ています。

あなたはそれのコピーを見つけることができます: https ://github.com/eyjo/Oaxaca

当時、私はこれらの分解と直接互換性のない固定効果(パネルデータ)モデルの使用に興味を持っていたことに注意してください。FEタイプのモデルには未完成のハンドラーがありますが、使用しないでください。私はそれからパッケージを作成するつもりでしたが、それを回避することはできませんでした。

于 2011-02-25T13:18:03.627 に答える
5

CRANのoaxacaパッケージは、線形モデルのBlinder-Oaxaca分解を推定し、結果を示す棒グラフを作成できます。http: //cran.r-project.org/web/packages/oaxaca/index.html

また、ブートストラップされた標準誤差を計算して、推定の不確実性がどの程度あるかを把握することもできます。

ビネットは、パッケージの機能の詳細な説明と、その使用例を示しています。ここを参照してください: " oaxaca:Blinder-Oaxaca Decomposition in R "

于 2014-11-23T15:25:14.487 に答える