オアハカ分解をRにしたいと考えています。説明された分散と未説明の分散とを区別するために労働経済学は、私は信じています。私はRで適切な解決策を見つけることができず、私は自分自身を作成することにむしろ嫌です(私はおそらくそれを台無しにするでしょう)。Oaxaca分解in R
はとにかく、手順はここで簡単に説明します
http://en.wikipedia.org/wiki/Ronald_Oaxaca
Stataのは、このためにかなり良いパッケージに恵まれているが、Stataのは私には簡単に使用できません。
www.stata.com/meeting/5german/SINNING_stata_presentation.pdf
は注意してください:私はまた、R-ヘルプのメッセージを掲載しているが、それは何の回答を得ていません。私はこのリストに投稿することも大丈夫です。事前におかげで、 ラスマス
編集:私は間違った答え(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)
}
ああ、同じ人がそれを読むクロスポスト(メーリングリスト)しないでください。 –
それは一週間後に答えられなかったので、確かにその長さの後、彼は他の場所に尋ねる権利があります。 –
大丈夫、私はそれが所属していた-1を戻しました。素早く手渡してくれたことに対する謝罪。今コードはとにかく問題がはるかによく見えると述べた。 –