2013-01-08 125 views
14

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

+3

请参阅'?公式'。 –

+3

只需在公式中加上'-1',如:glm(y〜x1 + x2 - 1,family = binomial(link =“probit”),data = yourdata)'这将估计一个没有截距的probit模型。 –

回答

27

你不说如何你正打算以适应概率模型,但如果使用的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")) 

应该这样做(在您的数据和变量名酌情再次替换。)

+1

使用+ 0还是-1有区别吗? –

+1

@NiekdeKlein不,没有区别,我知道二 –

11

此外,如果您有现成的公式对象,foo,可以这样删除update的截取:

foo <- y ~ x1 + x2 
bar <- update(foo, ~ . -1) 
# bar == y ~ x1 + x2 - 1