プロビット回帰の二段階推定と逆ミルズ比(調査観察データの統計科学 5章:選択バイアスの補足)
はじめに
今回はヘックマンのプロビット選択モデル(調査観察データの統計科学5章でやってた)の二段階推定についての補足です。詳しくはリンクを。
二段階推定時の表現
プロビット選択モデルを二段階推定で表現すると
\begin{align} E(y_{i1}|y_{i2}>0) &=E(x_{i1}β_{1} | y_{i2}>0 ) + E(ε_{i1} | y_{i2}>0 ) \\ &=x_{i1}β_{1} +ρσ_{1}\frac{φ(x_{i2}β_{2})}{Φ(x_{i2}β_{2})} \end{align}
φ/Φ部分をλ:逆ミルズ比(inberse Mills' ratio)と呼びます。データが観測されるかされないかは二値データですが、そのしやすさを示す指数です。プロペンシティスコアと同じようなものですね。
逆ミルズ比を求めて二段階推定をやってみる(R)
install.packages("sampleSelection") data(Mroz87) Mroz87$kids <- (Mroz87$kids5 + Mroz87$kids618>0) #################################### #同時推定 #################################### mrozml <- selection(lfp ~ age + I(age^2) + faminc + kids + educ, wage ~ exper + I(exper^2) + educ + city, data=Mroz87) summary(mrozml) #################################### # 二段階推定(selection関数) #################################### mrozml2step <- selection(lfp ~ age + I(age^2) + faminc + kids + educ, wage ~ exper + I(exper^2) + educ + city, data=Mroz87,method="2step") summary(mrozml2step) #################################### # 二段階推定(glmで手動) #################################### # 推定1段階目 mrozmlstep1 <- glm(lfp ~ age + I(age^2) + faminc + kids + educ, data=Mroz87, family = binomial(probit)) lpred <-mrozmlstep1$linear.predictors # 逆ミルズ比を求める関数 IMR <- Vectorize( function(x) exp( dnorm(x,log=T) - pnorm(x,log.p = T) ) ) imr <- IMR(lpred) # 推定2段階目 mrozmlstep2 <- glm(wage ~ exper + I(exper^2) + educ + city +imr, data=Mroz87 %>% mutate(imr=imr) %>% filter(wage>0)) summary(mrozmlstep2)
こんなところですかね