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