两个连续变量之间是否可以相互作用?


Answers:


31

是的,为什么不?在这种情况下,将使用与类别变量相同的考虑因素:X1个对结果ÿ的影响取决于的值而不同X2。以帮助观察它,你可以认为所采取的值的X1个,当X2采用高或低的值。与分类变量相反,此处交互仅由X1的乘积表示X2。值得注意的是,最好先(这样的发言权系数中心的两个变量X1行文的影响X1时,为样本均值)。X2

正如@whuber麻烦建议的,一种简单的方法来看看如何与因人而异ÿ作为的函数的X 2当包括一个相互作用项,是写下模型ÈÝ | X = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 1 X 2X1YX2Ëÿ|X=β0+β1个X1个+β2X2+β3X1个X2

然后,可以看出,当X 2保持恒定时,单位增加一个的效果可以表示为:X1个X2

E(ÿ|X1个+1个X2-Ëÿ|X1个X2=β0+β1个X1个+1个+β2X2+β3X1个+1个X2-β0+β1个X1个+β2X2+β3X1个X2=β1个+β3X2

同样地,效果时而保持增加一个单元X 1个常数是β 2 + β 3 X 1。这说明为什么它是难以解释的影响,X 1β 1)和X 2β 2)隔离。如果两个预测变量高度相关,则情况将更加复杂。牢记在这种线性模型中进行的线性假设也很重要。X2X1个β2+β3X1个X1个β1个X2β2

您可以看看Leona S. Aiken,Stephen G. West和Raymond R. Reno(Sage Publications,1996)撰写的多元回归:测试和解释相互作用,以了解多元回归中不同类型的相互作用效应。 。(这可能不是最好的书,但可以通过Google获得)

这是R中的玩具示例:

library(mvtnorm)
set.seed(101)
n <- 300                      # sample size
S <- matrix(c(1,.2,.8,0,.2,1,.6,0,.8,.6,1,-.2,0,0,-.2,1), 
            nr=4, byrow=TRUE) # cor matrix
X <- as.data.frame(rmvnorm(n, mean=rep(0, 4), sigma=S))
colnames(X) <- c("x1","x2","y","x1x2")
summary(lm(y~x1+x2+x1x2, data=X))
pairs(X)

输出实际显示为:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.01050    0.01860  -0.565    0.573    
x1           0.71498    0.01999  35.758   <2e-16 ***
x2           0.43706    0.01969  22.201   <2e-16 ***
x1x2        -0.17626    0.01801  -9.789   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.3206 on 296 degrees of freedom
Multiple R-squared: 0.8828, Adjusted R-squared: 0.8816 
F-statistic: 743.2 on 3 and 296 DF,  p-value: < 2.2e-16 

这是模拟数据的样子:

替代文字

为了说明@ whuber的第二评论,可以随时看的变化作为的函数的X 2在不同的值X 1(例如,terciles或十分位数); 在这种情况下,网格显示非常有用。根据以上数据,我们将进行以下操作:ÿX2X1

library(Hmisc)
X$x1b <- cut2(X$x1, g=5) # consider 5 quantiles (60 obs. per group)
coplot(y~x2|x1b, data=X, panel = panel.smooth)

替代文字


5
(+1)如果您有时间和倾向,可以通过扩大您的论点来加强此答案,即包含X1 * X2会使X1对Y的影响随X2的变化而变化。具体而言,模型Y = b0 + b1 * X1 + b2 * X2 + b3 *(X1 * X2)+错误也可以视为具有以下形式:Y = b0 +(b1 + b3 * X2)* X1 + b2 * X2 +误差,精确显示X1的系数-等于b1 + b3 * X2--随X2变化(并且对称地,X2的系数随X1变化)。那是“互动”的一种简单自然的形式。
ub

1
@chl-感谢您的回复。我的问题是,我有一个大的n(11K)和我使用Minitab做一个互动情节,它需要永远要算,但不显示任何东西。我只是不确定如何查看与此数据集是否存在交互。
TheCloudlessSky

3
@TheCloudlessSky:一种方法是根据X1的值将数据切片为bin。逐箱绘制Y与X2的关系图,寻找随着箱变化而变化的斜率。对X1和X2颠倒的角色执行相同的操作。
ub

3
@chl网格显示是一个很好的例证。以相等间隔的分位数对一个变量进行切片很有吸引力。还有其他方法。例如,图基建议切片通过二等分尾巴:即,切片X2值成两半在中间,然后由切那些半部位数,然后切片的最低的组的一半在其位数和上部的最高半只要新组中有足够的数据,该组就会以中位数继续下去,依此类推。
ub

1
@whuber再次是好点。我将研究可能的R实现,或者自己尝试。
chl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.