首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggplot2中两个连续变量与置信带的相互作用

ggplot2中两个连续变量与置信带的相互作用
EN

Stack Overflow用户
提问于 2014-08-14 00:20:31
回答 1查看 2K关注 0票数 0

我想要生成一个具有简单斜率和95%置信带的交互图,用于两个具有连续结果变量的连续预测变量。

我们可以利用ggplot2的钻石数据来解决我的问题。我包括语法,将因子变量清晰化为以数值为中心的变量,这样就可以回答我的问题了。

代码语言:javascript
复制
# load package    
library(ggplot2)
# rename data from ggplot2
d <- diamonds

# recode clarity from a factor variable into a numeric variable
levels(d$clarity)
library(plyr)
mapvalues(d$clarity, from = c("I1" ,  "SI2" , "SI1" , "VS2" , "VS1" , "VVS2" ,  "VVS1" , "IF"), 
      to = c("1", "2", "3", "4", "5", "6", "7", "8"))
d$clarity_n <- as.numeric(d$clarity)

我可以在下面的摘要输出中看到简单斜率的值。但我想不出怎么用信任感来勾勒他们。

代码语言:javascript
复制
# create variables for simple effects
d$carat_MC <- d$carat - mean(d$carat, na.rm=T)
d$clarity_nMC <- d$clarity_n - mean(d$clarity_n, na.rm=T)
d$clarityPLUS_1sd <- d$clarity_nMC + sd(d$clarity_n, na.rm=T)
d$clarityMINUS_1sd <- d$clarity_nMC - sd(d$clarity_n, na.rm=T)

# create a small subset of 500
d <- d[sample(1:nrow(d), 500,replace=FALSE),]

# model the interaction and simple slopes
summary(lm(price~carat_MC*clarity_nMC, data = d))
# simple effect of increased carat for less clear diamonds 
summary(lm(price~carat_MC*clarityPLUS_1sd, data = d))
# simple effect of increased carat for more clear diamonds
summary(lm(price~carat_MC*clarityMINUS_1sd, data = d))

我已经知道如何为一个因子变量和一个连续变量创建一个带置信带的交互图。如果我对克拉的变量进行中值除法,您将看到一个非常类似于我最终想要得到的情节:

代码语言:javascript
复制
# create a new factor variable based on the median split
d$clarity_nMS[ d$clarity_nMC < median(d$clarity_nMC) ] <- -1
d$clarity_nMS[ d$clarity_nMC > median(d$clarity_nMC) ] <- 1
d$clarity_nMS <- as.factor( d$clarity_nMS )

# Begin plotting
ex <- ggplot(d, aes(carat_MC, price, color = clarity_nMS))           

# jitter the scatter plot 
ex <- ex + layer(geom = "point", 
           position = position_jitter(w = 0.1, h = 0.1))

# Add plot lines with confidence intervals. 
ex <- ex + geom_smooth(method="lm", se=TRUE , fullrange=TRUE)  
ex

我希望能提供任何帮助,帮助我如何与简单的斜率,95%的置信带,如果可能的话,用他们预测的两个连续预测变量的简单斜率着色的数据点的交互作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 13:34:39

正如MrFlick所建议的那样,你似乎需要一个3D图表,而ggplot不会为你做到这一点。在的第13.8节中,温斯顿·张有一个详细的例子,说明如何用一个预测面来绘制三维散点图,这个曲面可能接近你心中的想法。总的来说,这本书是一个伟大的参考R图形和图形特别是,所以可能是值得获得一份副本。

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

https://stackoverflow.com/questions/25298231

复制
相关文章

相似问题

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