26

我需要创建一个没有截距的概率模型。那么,如何从 R 中的概率模型中删除截距?

4

2 回答 2

49

您没有说您打算如何拟合概率模型,但如果它使用 R 的公式符号来描述模型,那么您可以提供其中一个+ 0作为- 1公式的一部分来抑制截距:

mod <- foo(y ~ 0 + x1 + x2, data = bar)

或者

mod <- foo(y ~ x1 + x2 - 1, data = bar)

(当然都使用伪 R 代码 - 替换您的建模函数和数据/变量。)

如果这是一个模型拟合,glm()那么类似:

mod <- glm(y ~ x1 + x2 - 1, data = bar, family = binomial(link = "probit"))

应该这样做(再次适当地替换您的数据和变量名称。)

于 2013-01-08T15:54:05.857 回答
15

此外,如果您有一个现有的公式对象,foo您可以像这样删除截距update

foo <- y ~ x1 + x2
bar <- update(foo, ~ . -1)
# bar == y ~ x1 + x2 - 1
于 2014-03-18T21:48:50.607 回答