r - 逻辑回归中连续变量的交互作用图
问题描述
我拟合了一个逻辑回归模型,其中包含连续预测变量之间的交互作用。
我在 Rplot_model()
中使用包中的函数sjPlot
来获取此交互图,但我无法弄清楚该函数如何将音量分类为 2 个因素。
require(ISLR)
require(sjPlot)
m1=glm(Direction ~ Lag1 + Lag4* Volume ,data=Smarket,family ="binomial" )
plot_model(m1,type = "int",colors =rainbow(3))
0.36 和 3.15 分别对应最小和最大音量。
谁能帮我解释一下这个情节?
还有其他方法可以绘制逻辑回归的交互图吗?
谢谢
解决方案
交互作用在两个连续变量之间。该图Lag4
用作 x 轴变量,然后选择几个 的值来显示 的不同值之间的Volume
关系如何变化。默认情况下,选择最小值和最大值。您可以改为使用参数显示 的中位数和四分位数或平均值和标准差(有关其他选项,请参阅帮助)。例如:Direction
Lag4
Volume
Volume
Volume
Volume
mdrt.values
theme_set(theme_classic()) # Set ggplot theme
plot_model(m1, type="int", colors=rainbow(3), mdrt.values="quart")
plot_model(m1, type="int", colors=rainbow(3), mdrt.values="meansd")
另一种选择是热图,它允许您在 x 和 y 轴上绘制交互变量,并使用颜色表示Direction
等于“向上”的概率。例如:
# Create grid of Lag1 and Volume values for prediction
pred.dat = expand.grid(Lag1 = median(Smarket$Lag1),
Lag4 = seq(min(Smarket$Lag4), max(Smarket$Lag4), length=100),
Volume = seq(min(Smarket$Volume), max(Smarket$Volume), length=100))
# Add predictions
pred.dat$Direction = predict(m1, newdata=pred.dat, type="response")
# Plot heatmap
ggplot(pred.dat, aes(Lag4, Volume, fill=Direction)) +
geom_tile() +
scale_fill_gradient2(low="red", mid="white", high="blue",
midpoint=median(pred.dat$Direction)) +
labs(title='Probability of Direction="Up"',
fill="Probability")
上面的图代表下面热图中的常数线Volume
。例如,当Volume
是 1.12(上图左侧的红线)时,您可以在下面的热图中看到颜色从蓝色变为白色再到红色,这表示随着概率的Direction="Up"
增加Lag4
,正如我们在上图中看到的那样。
推荐阅读
- javascript - 如何将此 Object.values 除以总数?
- swift - 在组合中模拟错误响应以测试错误处理
- javascript - Django:request.is_ajax() 返回 False
- python - 在 Seaborn 组合折线图中添加图例
- javascript - 想在递归javascript中使用异步函数
- apache-kafka - 为客户服务设计基于事件的架构
- android - 相当于 Jetpack Compose Lazy Column/Row 中的 adapter.notifydatasetchange 或 Diffutils
- android - 无法运行反应本机应用程序android模拟器
- html - flexbox child 中的文本内容导致它覆盖它的邻居
- excel - 使用列作为条件对多行求和