在R中的lm()中与虚拟变量的交互

时间:2014-11-01 00:01:12

标签: r

参考:http://www.r-bloggers.com/r-for-ecologists-putting-together-a-piecewise-regression/

在本文中,我对这个论点感到困惑:

y ~ x*(x < breaks[i]) + x*(x>=breaks[i]) 
lm()中的

我知道*中的lm表示互动和主要影响,这是否意味着预测变量是x x (x < breaks[i]) (x < breaks[i])和互动?

1 个答案:

答案 0 :(得分:1)

这是一种做“分段”回归的方法。你实际上是在创建两个不同的模型,一个用于x&lt;打破[i]和另一个相反的情况。在这种情况下,*将作为乘数运行,而不是作为交互运算符,因为值为{0,1},因此不会有两级结果。网页似乎做了很好的说明,所以不清楚缺少什么。如果将模型公式写成:

,则模型公式可能会更清晰
y ~ x*I(x < breaks[i]) + x*I(x>=breaks[i])

它实质上意味着有两个预测变量:第一个是x,第二个是逻辑矢量,在小于break [i]的区域中为1,在另一个区域中为0。事实上,如果您刚刚使用,则可能不需要模型中的两个术语:

 y ~ x*I(x < breaks[i])

我认为预测是相同的,但它们略有不同,也许是因为这两个术语模型隐含地允许完全独立的截距。

还有segmentedstrucchange个软件包支持分段回归。