R语言中lm()公式里的&(与符号)有什么作用?
R语言线性模型(lm())公式中&符号的作用
在R的线性模型公式里,&符号的作用是仅纳入两个变量的交互项,不包含各自的主效应,和其他公式运算符的核心区别如下:
a + b:同时纳入变量a和b的主效应a * b:纳入a、b的主效应,再加上两者的交互项(等价于a + b + a:b)a & b:仅纳入a和b的交互项(等价于a:b)
示例对比
使用+的情况
代码:
x <- 1:10 + rnorm(10) z <- rep(c(0,4), 5) y <- x + z lm(y ~ x + z)
输出:
Call: lm(formula = y ~ x + z) Coefficients: (Intercept) x z -1.685e-15 1.000e+00 1.000e+00
此模型纳入了x和z的主效应,系数完全匹配y = x + z的设定。
使用&的情况
代码:
lm(y ~ x & z)
输出:
Call: lm(formula = y ~ x & z) Coefficients: (Intercept) x & zTRUE 4.666 5.731
此模型仅纳入x和z的交互项,未包含两者的主效应。由于z取值为0和4,交互项x&z被处理为指示变量(z≠0时为TRUE),对应的系数代表z=4时x对y的额外影响,截距则对应z=0时的基础预测值。
有效搜索关键词
如果需要拓展查找相关内容,可使用以下关键词:
R formula & operator lmR linear model ampersand interaction only
内容的提问来源于stack exchange,提问作者Richard Erickson
相关产品推荐
相关产品推荐

