如何使用plot_model来表示R中二次变量和虚拟变量之间的交互作用系数?

dtcbnfnu  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(123)

我试图绘制一个平方变量和一个虚拟变量之间的相互作用,这是一个R中的多水平逻辑回归。虽然我可以用非二次变量来绘制这些交互作用,但我不知道如何用交互作用来绘制。
我可以完美地描绘出这些相互作用:

plot_model(model, type="eff", 
            pred.type = "re", 
            terms = c("first_variable[all]","dummy_variable"),  show.data = F,ci.lvl=.95)

但每当我试图策划这个

plot_model(model, type="eff", 
            pred.type = "re", 
            terms = c("I(first_variable^2)[all]","dummy_variable"),  show.data = F,ci.lvl=.95)

我总是得到这样的回答:Error: Some of the specified条款were not found in the model. Maybe misspelled?
我试过拼写first_variable^2as.is(first_variable^2),但似乎都不起作用。它是我回归中包含的一个变量:(glmer(y~first_variable+second_variable+I(first_variable^2)+I(first_variable^2):second_variable+(1|level2)+(1|level3), data = df3, family = binomial, nAGQ=1))
有什么办法可以绕过它吗?

4xy9mtcn

4xy9mtcn1#

我最近对我自制的绘制非线性效果的函数发表了评论,但我刚刚了解到sjPlot现在可以很好地完成它(在我制作它的时候它不能)。
使用terms = c("I(first_variable^2)[all]")时,代码无法正常工作
只需使用terms = c("first_variable[all]"),您就应该得到所需的输出。除非你想把二次项的相互作用孤立出来,而不考虑线性分量?
在下面的例子中,我得到了一个与二次项相互作用的图:

hdp <- read.csv("https://stats.idre.ucla.edu/stat/data/hdp.csv")
m <- glmer(remission ~ Sex*RBC + Sex*I(RBC^2) +
             (1 | DID), data = hdp, family = binomial(link = "logit"))

sjPlot::plot_model(m, type="eff", pred.type = "re", terms = c("RBC[all]", "Sex"), show.data = F, ci.lvl = .95)

当我绘图时,我也得到相同的输出:

sjPlot::plot_model(m, type="pred", pred.type = "fe", terms = c("RBC[all]", "Sex"), show.data = F, ci.lvl = .95)

相关问题