R?
中Y~X和Y~X + 1之间的区别是什么?答案 0 :(得分:7)
在lm()
的背景下,它们完全相同。两种模型都包括拦截。
要删除拦截,您可以写Y ~ X - 1
或Y ~ X + 0
。
答案 1 :(得分:5)
你问题的背景是什么?
如前所述,在lm
和其他内部使用model.matrix
的函数中,它们是相同的。但是在其他情况下它们有所不同,请考虑以下代码:
plot.new()
text( .5, .1, y ~ x )
text( .5, .3, y ~ x + 1 )
这里它们不同(运行代码显示差异)。
对于任何其他功能或上下文,它将取决于实现。
这两行给出了相同的结果:
plot( Petal.Length ~ Species, data=iris )
plot( Petal.Length ~ Species + 1, data=iris )
但这些不是:
library(lattice)
bwplot( Petal.Length ~ Species, data=iris )
bwplot( Petal.Length ~ Species + 1, data=iris )
我记得有一次(尽管它可能是在S-Plus中而不是R中而在R中可能不可能)在开头包含0+
或-1
的公式+1
后面的公式。它构造了没有截距的主效应(第一因子的每个级别的拟合平均值),但正确位置的+1
改变了交互编码的方式。
理论上可能存在建模函数(我无法想到,但它们可能存在或将来会被编写),它们采用公式但默认情况下不包括截距,因此+1
将需要指定一个拦截。
那么,你在问什么背景?