Можно ли согласовать линейную модель только с переменной отклика? - PullRequest
4 голосов
/ 30 января 2012

Если я это сделаю, я получу два коэффициента (перехват и год)

data <- data.frame(accidents=c(3,1,5,0,2,3,4), year=1:7)
glm(accidents ~ year, family=poisson(link = log), data)

Coefficients:
(Intercept)         year  
     0.7155       0.0557

Но правильный ответ 0,944

data <-data.frame(accidents=c(3,1,5,0,2,3,4))
glm(accidents ~ ., family=poisson(link=log), data)

Coefficients:
(Intercept)  
  0.944 

Есть ли способ указать формулу glmтолько для переменной ответа?Если я использую вторую формулу с первым фреймом данных, я получаю неправильный ответ, потому что "."также включает в себя "год".Во втором фрейме данных я обманываю, потому что есть только один столбец.

1 Ответ

10 голосов
/ 30 января 2012

Вот заклинание, которое вы ищете:

glm(accidents ~ 1, family=poisson(link = log), data)

Использование его с исходным фреймом данных:

data <- data.frame(accidents=c(3,1,5,0,2,3,4), year=1:7)
coef(glm(accidents ~ 1, family=poisson(link = log), data))
(Intercept) 
  0.9444616 

Кроме того, как упоминает Бен Болкер, документ «Введение R», поставляемый с буквой R, включает очень информативный раздел по грамматике интерфейса формулы .

...