在R中,我指定一个没有截距的模型,如下所示:

data(iris)
lmFit <- lm(Sepal.Length ~ 0 + Petal.Length + Petal.Width, data=iris)
> round(coef(lmFit),2)
Petal.Length  Petal.Width
        2.86        -4.48


但是,如果我将同一模型与插入号匹配,则得到的模型将包含一个截距:

library(caret)
caret_lmFit <- train(Sepal.Length~0+Petal.Length+Petal.Width, data=iris, "lm")
> round(coef(caret_lmFit$finalModel),2)
 (Intercept) Petal.Length  Petal.Width
        4.19         0.54        -0.32


如何告诉caret::train排除拦截词?

最佳答案

正如在链接的SO问题https://stackoverflow.com/a/41731117/7613376中所讨论的,这在插入符号v6.0.76中有效(并且上面的跟踪答案似乎不再与插入符号中的代码重构一起使用):

caret_lmFit <- train(Sepal.Length~0+Petal.Length+Petal.Width, data=iris, "lm",
           tuneGrid  = expand.grid(intercept = FALSE))

> caret_lmFit$finalModel

Call:
lm(formula = .outcome ~ 0 + ., data = dat)

Coefficients:
Petal.Length   Petal.Width
       2.856        -4.479

关于r - 在插入符中拟合无截距模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12394855/

10-12 17:57