是否可以只使用响应变量拟合线性模型?

时间:2012-01-29 23:50:18

标签: r glm lm

如果我这样做,我会得到两个系数(截距和年份)

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 个答案:

答案 0 :(得分:10)

以下是您正在寻找的咒语:

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 

另外,正如Ben Bolker所提到的,R附带的R简介文档包括a nicely informative section on the grammar of the formula interface