首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多条件效应图

多条件效应图
EN

Stack Overflow用户
提问于 2015-08-02 20:37:55
回答 1查看 848关注 0票数 3

我有以下线性模型:y ~ x1 + x2 + x3 + (x1*x2) + (x1*x3) + (x2*x3)

x1x2是连续的,x3是一个虚拟变量。

我似乎不知道如何并排绘制条件效果图,以便能够检查以下内容:

  • 当(也是条件)x1=0时,x2y的条件效应
  • x1=1时,x2y的条件效应

我查阅了大量的R软件包的文档,我在过去使用这些软件包来制作效果、情节和“浏览”互联网,但似乎找不到这个问题的答案。我觉得我以前见过这样的东西,包括“假的”数据,但再也找不到了。

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-02 21:32:52

我真的不知道自动化这个任务的包,但是你可以用几个关键的笔触来完成它。注意,R很聪明,可以理解

代码语言:javascript
复制
  model <- lm(y~x1*x2*x3,data) = to y ~ x1 + x2 + x3 + (x1*x2) + (x1*x3) + (x2*x3).

为了理解这种相互作用,你需要画出适合的情节。问题是,你有三个自变量,所以你真的需要一个4d图,这是相当困难的绘制。有人说过,另一种方法是简单地将针对x1和x2的fits绘制成两个单独的图,一个对应于您的虚拟变量x3的每个级别。让我们在实践中看到:

代码语言:javascript
复制
set.seed(1)
obs <- data.frame(x3=sample(c("A","B"),size=100,replace=TRUE),
                  x2=sample(1:10,size=100,replace=TRUE),
                  x1=sample(1:10,size=100,replace=TRUE),
                  y=rnorm(100))

model <- lm(y~x1*x2*x3,data=obs)

anova(update(model,.~.-x1:x2:x3),model)


fit.A <- data.frame(x3="A",x2=rep(1:10,10),x1=rep(1:10,each=10))
fit.A$pred <- predict(model,newdata=fit.A)
fit.B <- data.frame(x3="B",x2=rep(1:10,10),x1=rep(1:10,each=10))
fit.B$pred <- predict(model,newdata=fit.B)
par(mfrow=c(1,2),mai=c(0,0.1,0.2,0)+.02)

persp(x=1:10,y=1:10,z=matrix(fit.A$pred,nrow=10,ncol=10,byrow=TRUE),
xlab="x2",ylab="x1",zlab="fit",main="x3 = A",zlim=c(-.8,1.1))
persp(x=1:10,y=1:10,z=matrix(fit.B$pred,nrow=10,ncol=10,byrow=TRUE),
xlab="x1",ylab="x2",zlab="fit",main="x3 = B",zlim=c(-.8,1.1))

另一种方法是使用来自包latticeeffects包的effects函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31776349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档