逻辑回归中连续变量的交互作用图
Interaction plots for continuous variables in logistic regression
我用连续预测变量之间的相互作用拟合了逻辑回归模型。
我在 R 的 sjPlot
包中使用了 plot_model()
函数来获得这个交互图,但我无法弄清楚这个函数是如何将体积分类为 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
的最小值和最大值。您可以使用 mdrt.values
参数来显示 Volume
的中位数和四分位数或 Volume
的均值和标准差(有关其他选项,请参阅帮助)。例如:
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
等于 "Up" 的概率。例如:
# 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
增加,正如我们在上图中看到的那样。
我用连续预测变量之间的相互作用拟合了逻辑回归模型。
我在 R 的 sjPlot
包中使用了 plot_model()
函数来获得这个交互图,但我无法弄清楚这个函数是如何将体积分类为 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
的最小值和最大值。您可以使用 mdrt.values
参数来显示 Volume
的中位数和四分位数或 Volume
的均值和标准差(有关其他选项,请参阅帮助)。例如:
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
等于 "Up" 的概率。例如:
# 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
增加,正如我们在上图中看到的那样。