Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:GLMM(lme4)的连续变量和分类变量的交互图_R_Plot_Interaction_Lme4_Mixed Models - Fatal编程技术网

R:GLMM(lme4)的连续变量和分类变量的交互图

R:GLMM(lme4)的连续变量和分类变量的交互图,r,plot,interaction,lme4,mixed-models,R,Plot,Interaction,Lme4,Mixed Models,我想制作一个交互图,以直观地显示分类变量(4级)和回归模型结果中标准化连续变量交互斜率的差异或相似性 with(GLMModel,interaction.plot(continuous.var,category.var,response.var)) 这不是我要找的。它生成一个曲线图,其中连续变量的每个值的斜率都会发生变化。我希望绘制一个具有恒定坡度的图,如下图所示: 有什么想法吗 我拟合了一个形式为fit的模型,下面是各种各样的答案(顺便说一下,上面的数据框中缺少了一些引号,必须手动修复…)

我想制作一个交互图,以直观地显示分类变量(4级)和回归模型结果中标准化连续变量交互斜率的差异或相似性

with(GLMModel,interaction.plot(continuous.var,category.var,response.var))
这不是我要找的。它生成一个曲线图,其中连续变量的每个值的斜率都会发生变化。我希望绘制一个具有恒定坡度的图,如下图所示:

有什么想法吗

我拟合了一个形式为
fit的模型,下面是各种各样的答案(顺便说一下,上面的数据框中缺少了一些引号,必须手动修复…)

符合模型:

library(lme4)
fit <- glmer(resp.var ~ cont.var:cat.var + (1|rand.eff) ,
           data = sample.data , poisson)
快速和肮脏的线性回归:

ggplot(sample.data,aes(cont.var,resp.var,linetype=cat.var))+
    geom_smooth(method="lm",se=FALSE)
现在使用泊松GLM(但不包括随机效应),并显示数据点:

ggplot(sample.data,aes(cont.var,resp.var,colour=cat.var))+
    stat_sum(aes(size=..n..),alpha=0.5)+
    geom_smooth(method="glm",family="poisson")
下一位需要开发(r-forge)版本的
lme4
,该版本具有
预测方法:

为预测设置数据帧:

predframe <- with(sample.data,
                  expand.grid(cat.var=levels(cat.var),
                              cont.var=seq(min(cont.var),
                              max(cont.var),length=51)))
现在在反应量表上:

predframe$pred <- predict(fit,newdata=predframe,REform=NA,type="response")
ggplot(predframe,aes(cont.var,pred,linetype=cat.var))+geom_line()+
    geom_point(data=subset(predframe,cont.var %in% minmaxvals),
               aes(shape=cat.var))
predframe$pred该软件包支持
lme4
型号,应该能够满足您的需要

效果:线性、广义线性和其他模型的效果显示

图形和表格效果显示,例如,具有线性预测的各种统计模型的交互作用


它还附带了两个稍微过时的(您可以将它们视为渐晕)。

jtools
包()可以使这种模型的绘制非常简单。我是这个软件包的开发者

我们将像Ben在回答中所做的那样拟合模型:

library(lme4)
fit <- glmer(resp.var ~ cont.var:cat.var + (1 | rand.eff),
             data = sample.data, family = poisson)
结果是:


默认情况下,它绘制在响应量表上,但您可以使用
output.scale=“link”
参数(默认值为
“response”
)将
predict
ggplot
lattice::xyplot
组合在线性量表上绘制。请提供可复制的示例?谢谢!很抱歉遗漏了报价。我使用了dput,没有修改输出,而是提供了示例数据。我应该做点别的吗。是的,你是对的,我应该在指定模型时使用
*
而不是
。这有点混乱,但我会尝试
安装.packages(“lme4”,repos=”http://lme4.r-forge.r-project.org/repos“”
——r-forge主存储库的构建目前已中断(如有必要,您始终可以从CRAN重新安装)。Excel除外:-):无法安装的症状是什么?(您使用的是什么OS和R版本?)我在尝试安装jtools时收到了一长串警告,发布了一些警告:InternetOpenUrl失败:“证书中的日期无效或已过期”“无法打开URL”“我无法访问存储库的索引:无法打开URL”“包“jtools”不可用(对于R版本3.6.3)InternetOpenUrl失败:“证书中的日期无效或已过期”
predframe$pred.logit <- predict(fit,newdata=predframe,REform=NA)

minmaxvals <- range(sample.data$cont.var)

ggplot(predframe,aes(cont.var,pred.logit,linetype=cat.var))+geom_line()+
    geom_point(data=subset(predframe,cont.var %in% minmaxvals),
               aes(shape=cat.var))
predframe$pred <- predict(fit,newdata=predframe,REform=NA,type="response")
ggplot(predframe,aes(cont.var,pred,linetype=cat.var))+geom_line()+
    geom_point(data=subset(predframe,cont.var %in% minmaxvals),
               aes(shape=cat.var))
library(lme4)
fit <- glmer(resp.var ~ cont.var:cat.var + (1 | rand.eff),
             data = sample.data, family = poisson)
library(jtools)
interact_plot(fit, pred = cont.var, modx = cat.var)