次の機能を備えた R パッケージはありますか。
(1) 交互作用変数のさまざまな値をシミュレートし、(2) 交互作用の項のさまざまな値に対する Y に対する交互作用の影響を示すグラフをプロットし、(3) lmer( ) lme4 パッケージの機能は?
arm、ez、coefplot2、および fanovaGraph パッケージを調べましたが、探しているものが見つかりませんでした。
次の機能を備えた R パッケージはありますか。
(1) 交互作用変数のさまざまな値をシミュレートし、(2) 交互作用の項のさまざまな値に対する Y に対する交互作用の影響を示すグラフをプロットし、(3) lmer( ) lme4 パッケージの機能は?
arm、ez、coefplot2、および fanovaGraph パッケージを調べましたが、探しているものが見つかりませんでした。
languageR パッケージまたはエフェクト パッケージの plotLMER.fnc() を試してください。
このmerTools
パッケージには、これを簡単にするための機能がいくつかありますが、これはlmer
およびglmer
オブジェクトの操作にのみ適用されます。これを行う方法は次のとおりです。
library(merTools)
# fit an interaction model
m1 <- lmer(y ~ studage * service + (1|d) + (1|s), data = InstEval)
# select an average observation from the model frame
examp <- draw(m1, "average")
# create a modified data.frame by changing one value
simCase <- wiggle(examp, var = "service", values = c(0, 1))
# modify again for the studage variable
simCase <- wiggle(simCase, var = "studage", values = c(2, 4, 6, 8))
この後、シミュレートされたデータは次のようになります。
simCase
y studage service d s
1 3.205745 2 0 761 564
2 3.205745 2 1 761 564
3 3.205745 4 0 761 564
4 3.205745 4 1 761 564
5 3.205745 6 0 761 564
6 3.205745 6 1 761 564
7 3.205745 8 0 761 564
8 3.205745 8 1 761 564
次に、予測間隔を生成する必要があります。これは、使用できるmerTools::predictInterval
(または使用できる間隔なしでlme4::predict
)実行できます。
preds <- predictInterval(m1, level = 0.9, newdata = simCase)
ここで、3 列の data.frame である preds オブジェクトを取得します。
preds
fit lwr upr
1 3.312390 1.2948130 5.251558
2 3.263301 1.1996693 5.362962
3 3.412936 1.3096006 5.244776
4 3.027135 1.1138965 4.972449
5 3.263416 0.6324732 5.257844
6 3.370330 0.9802323 5.073362
7 3.410260 1.3721760 5.280458
8 2.947482 1.3958538 5.136692
次に、すべてをまとめてプロットできます。
library(ggplot2)
plotdf <- cbind(simCase, preds)
ggplot(plotdf, aes(x = service, y = fit, ymin = lwr, ymax = upr)) +
geom_pointrange() + facet_wrap(~studage) + theme_bw()
残念ながら、ここでのデータはあまり興味をそそるものではありませんが、解釈しやすいプロットになっています。