在 R 中解释回归中的错误消息
Interpreting error message in regression in R
我正在尝试通过原点进行回归。
lm(Petal.Width ~ Petal.Length -1, iris)
然后我尝试简单地从 Petal.Width
和 Petal.Length
中减去各自的平均值,使它们的平均值为零。
lm(Petal.Width-mean(Petal.Width) ~ Petal.Length-mean(Petal.Length) -1, iris)
这给了我以下错误信息:
Error in model.frame.default(formula = Petal.Width - mean(Petal.Width) ~ :
variable lengths differ (found for 'mean(Petal.Length)')
现在我知道我必须使用 I()
函数才能使代码正常工作。
lm(I(Petal.Width-mean(Petal.Width)) ~ I(Petal.Length-mean(Petal.Length)) -1, iris)
问题:但是为什么报错信息是"variable lengths differ"?这本身并不能真正帮助我弄清楚发生了什么,因为可变长度是相同的。
由于 +
和 -
在公式中没有它们通常的含义,因此 Petal.Length
和 mean(Petal.Length)
被解释为两个单独的变量。此处,Petal.Length
的长度为 150,而 mean(Petal.Length)
的长度为 1(均值将其压缩为单个值)。因此,您会收到有关不同可变长度的消息。
如果真要深究的话,错误其实来自model.frame()
,具体来说
model.frame.default(Petal.Width-mean(Petal.Width) ~ Petal.Length-mean(Petal.Length), iris[-1])
我正在尝试通过原点进行回归。
lm(Petal.Width ~ Petal.Length -1, iris)
然后我尝试简单地从 Petal.Width
和 Petal.Length
中减去各自的平均值,使它们的平均值为零。
lm(Petal.Width-mean(Petal.Width) ~ Petal.Length-mean(Petal.Length) -1, iris)
这给了我以下错误信息:
Error in model.frame.default(formula = Petal.Width - mean(Petal.Width) ~ :
variable lengths differ (found for 'mean(Petal.Length)')
现在我知道我必须使用 I()
函数才能使代码正常工作。
lm(I(Petal.Width-mean(Petal.Width)) ~ I(Petal.Length-mean(Petal.Length)) -1, iris)
问题:但是为什么报错信息是"variable lengths differ"?这本身并不能真正帮助我弄清楚发生了什么,因为可变长度是相同的。
由于 +
和 -
在公式中没有它们通常的含义,因此 Petal.Length
和 mean(Petal.Length)
被解释为两个单独的变量。此处,Petal.Length
的长度为 150,而 mean(Petal.Length)
的长度为 1(均值将其压缩为单个值)。因此,您会收到有关不同可变长度的消息。
如果真要深究的话,错误其实来自model.frame()
,具体来说
model.frame.default(Petal.Width-mean(Petal.Width) ~ Petal.Length-mean(Petal.Length), iris[-1])