【问题标题】:Interpreting error message in regression in R在 R 中解释回归中的错误消息
【发布时间】:2015-11-08 21:41:44
【问题描述】:

我正在尝试通过原点进行回归。

lm(Petal.Width ~ Petal.Length -1, iris)

然后,我尝试从 Petal.WidthPetal.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)

问题:但是为什么错误信息说“可变长度不同”?这本身并不能真正帮助我弄清楚发生了什么,因为可变长度是相同的。

【问题讨论】:

    标签: r regression


    【解决方案1】:

    由于+- 在公式中没有它们通常的含义,Petal.Lengthmean(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])
    

    【讨论】:

    • 感谢@MrFlick,现在说得通了!
    猜你喜欢
    • 2016-11-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多