R中的Y~X和Y~X+1有什么区别?
问问题
130 次
2 回答
7
在 的上下文中lm()
,它们完全相同。两种模型都包括截距。
要删除截距,您可以编写Y ~ X - 1
or Y ~ X + 0
。
于 2013-04-06T14:23:42.220 回答
5
你的问题的背景是什么?
如前所述,inlm
和其他在内部使用的函数model.matrix
是相同的。但在其他情况下它们有所不同,请考虑以下代码:
plot.new()
text( .5, .1, y ~ x )
text( .5, .3, y ~ x + 1 )
在这里它们是不同的(并且运行代码显示了差异)。
对于任何其他功能或上下文,它将取决于实现。
这 2 行给出了相同的结果:
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 中可能不可能)看到一个公式,它在公式的开头和后面包含 a0+
或a 。它构建了没有截距的主效应(第一因子的每个水平的拟合平均值),但在正确的位置改变了交互编码的方式。-1
+1
+1
从理论上讲,可能有建模函数(我想不出,但它们可能存在或将来编写)采用公式但默认情况下不包括截距,因此+1
需要指定截距。
那么,您在什么背景下提出问题?
于 2013-04-06T15:51:57.527 回答