プレディクタのヒストグラムがプロットの背景にある場合、相互作用限界効果プロットを作成したいと思います。限界効果プロットもまた重要であるため、この問題はやや複雑です。最終結果がStataのMARHISパッケージのように見えるようにしたいと思います。継続的な予測子の場合、私はちょうどgeom_rug
を使用しますが、それは要因では機能しません。私はgeom_histogram
を使用したいが、私は、スケーリングの問題に実行します。私は、ヒストグラムのビットにggplot2を使用したオーバーレイヒストグラムとの相互作用限界効果プロット
+ geom_histogram(aes(cenretrosoc), position="identity", linetype=1,
fill="gray60", data = data, alpha=0.5)
これを追加するとき、しかし1
:動作し、このグラフを生成
ggplot(newdat, aes(cenretrosoc, linetype = factor(wave))) +
geom_line(aes(y = cengovrec), size=0.8) +
scale_linetype_manual(values = c("dotted", "twodash", "solid")) +
geom_line(aes(y = plo,
group=factor(wave)), linetype =3) +
geom_line(aes(y = phi,
group=factor(wave)), linetype =3) +
facet_grid(. ~ regioname) +
xlab("Economy") +
ylab("Disapproval of Record") +
labs(linetype='Wave') +
theme_minimal()
何が起こるか:2
私はそれが異なる確率の予測確率と彼のためにだと思うtogramはY軸上にあります。しかし、私はこれを解決する方法がわかりません。何か案は?
UPDATE:
ここでは問題を(それが使用するデータのWWGbookパッケージを必要とする)
# install.packages("WWGbook")
# install.packages("lme4")
# install.packages("ggplot2")
require("WWGbook")
require("lme4")
require("ggplot2")
# checking the dataset
head(classroom)
# specifying the model
model <- lmer(mathgain ~ yearstea*sex*minority
+ (1|schoolid/classid), data=classroom)
# dataset for prediction
newdat <- expand.grid(
mathgain = 0,
yearstea = seq(min(classroom$yearstea, rm=TRUE),
max(classroom$yearstea, rm=TRUE),
5),
minority = seq(0, 1, 1),
sex = seq(0,1,1))
mm <- model.matrix(terms(model), newdat)
## calculating the predictions
newdat$mathgain <- predict(model,
newdat, re.form = NA)
pvar1 <- diag(mm %*% tcrossprod(vcov(model), mm))
## Calculating lower and upper CI
cmult <- 1.96
newdat <- data.frame(
newdat, plo = newdat$mathgain - cmult*sqrt(pvar1),
phi = newdat$mathgain + cmult*sqrt(pvar1))
## this is the plot of fixed effects uncertainty
marginaleffect <- ggplot(newdat, aes(yearstea, linetype = factor(sex))) +
geom_line(aes(y = mathgain), size=0.8) +
scale_linetype_manual(values = c("dotted", "twodash")) +
geom_line(aes(y = plo,
group=factor(sex)), linetype =3) +
geom_line(aes(y = phi,
group=factor(sex)), linetype =3) +
facet_grid(. ~ minority) +
xlab("First grade teacher years of teaching experience") +
ylab("Predicted Probability of student gain in math") +
labs(linetype='Sex') +
theme_minimal()
1はmarginaleffect
を見ることができるようには限界効果のプロットで示すための再現可能な例です:)ヒストグラムをバックグラウンドに追加したいので、私は次のように書きます:
marginaleffect + geom_histogram(aes(yearstea), position="identity", linetype=1,
fill="gray60", data = classroom, alpha=0.5)
ヒストグラムがOYスケールをヒストグラム値で上書きします。この例では、元の予測確率スケールが周波数に匹敵するので、影響をまだ見ることができます。しかし、私の場合は、多くの値を持つデータセットですが、そうではありません。
好ましくは、ヒストグラムの縮尺は表示されません。予測される確率スケールの最大値である最大値を持つ必要があります。したがって、同じ領域をカバーしますが、垂直軸のpred prob値を上書きしません。
データセットを追加して、より簡単に役立ててください。スケールの問題であれば、データは0から1の間で正規化することができます。 – timat