私はRを使用して研究を再現し、著者が報告したのとほぼ同じ結果を得ています。しかし、ある時点で、非現実的に小さいように見える限界効果を計算します。私の推論と以下のコードを見て、私がどこかで間違っているかどうかを確認していただければ幸いです。
私のサンプルには24535個の観測値が含まれており、従属変数「x028bin」は値0と1をとるバイナリ変数であり、さらに10個の説明変数があります。これらの独立変数のうち9つには数値レベルがあり、独立変数「f025grouped」はさまざまな宗教宗派からなる要素です。
宗教宗派のダミーを含むプロビット回帰を実行してから、限界効果を計算したいと思います。そのためには、最初に欠落している値を削除し、従属変数と独立変数の間のクロスタブを使用して、小さいセルまたは0個のセルがないことを確認します。次に、正常に動作するプロビットモデルを実行すると、妥当な結果も得られます。
probit4AKIE <- glm(x028bin ~ x003 + x003squ + x025secv2 + x025terv2 + x007bin + x04chief + x011rec + a009bin + x045mod + c001bin + f025grouped, family=binomial(link="probit"), data=wvshm5red2delna, na.action=na.pass)
summary(probit4AKIE)
ただし、プロビット係数とスケールファクターからすべての変数を平均して限界効果を計算する場合、得られる限界効果は小さすぎます(例:2.6042e-78)。コードは次のようになります。
ttt <- cbind(wvshm5red2delna$x003,
wvshm5red2delna$x003squ,
wvshm5red2delna$x025secv2,
wvshm5red2delna$x025terv2,
wvshm5red2delna$x007bin,
wvshm5red2delna$x04chief,
wvshm5red2delna$x011rec,
wvshm5red2delna$a009bin,
wvshm5red2delna$x045mod,
wvshm5red2delna$c001bin,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped,
wvshm5red2delna$f025grouped) #I put variable "f025grouped" 9 times because this variable consists of 9 levels
ttt <- as.data.frame(ttt)
xbar <- as.matrix(mean(cbind(1,ttt[1:19]))) #1:19 position of variables in dataframe ttt
betaprobit4AKIE <- probit4AKIE$coefficients
zxbar <- t(xbar) %*% betaprobit4AKIE
scalefactor <- dnorm(zxbar)
marginprobit4AKIE <- scalefactor * betaprobit4AKIE[2:20] #2:20 are the positions of variables in the output of the probit model 'probit4AKIE' (variables need to be in the same ordering as in data.frame ttt), the constant in the model occupies the first position
marginprobit4AKIE #in this step I obtain values that are much too small
データセットが大きすぎるため、実際の例を提供できないことをお詫び申し上げます。コメントをいただければ幸いです。どうもありがとう。
一番、
トビアス