r - 在 GLM 中,为什么即使给出数据,某些系数仍为 NA?

标签 r glm

在下面的例子中

df <- data.frame(place = c("South","South","North"),
                 temperature = c(30,30,20),
                 outlookfine=c(TRUE,TRUE,FALSE)
                 )
glm.fit <- glm(outlookfine ~ .,df, family=binomial)

glm.fit

输出为

Call:  glm(formula = outlookfine ~ ., family = binomial, data = df)

Coefficients:
(Intercept)   placeSouth  temperature  
     -23.57        47.13           NA  

Degrees of Freedom: 2 Total (i.e. Null);  1 Residual
Null Deviance:      3.819 
Residual Deviance: 3.496e-10    AIC: 4

为什么温度为 NA?

[更新]

我尝试了更多数据

df <- data.frame(place = c("South","South","North","East","West"),
                 temperature = c(30,17,20,12,15),
                 outlookfine=c(TRUE,TRUE,FALSE,FALSE,TRUE)
                 )
glm.fit <- glm(outlookfine ~ .,df, family= binomial )
glm.fit

这次有输出

Call:  glm(formula = outlookfine ~ ., family = binomial, data = df)

Coefficients:
(Intercept)   placeNorth   placeSouth    placeWest  temperature  
 -2.457e+01   -7.094e-07    4.913e+01    4.913e+01    8.868e-08  

Degrees of Freedom: 4 Total (i.e. Null);  0 Residual
Null Deviance:      6.73 
Residual Deviance: 2.143e-10    AIC: 10

最佳答案

我认为这是因为地点温度高度相关。

如果您这样做,您将获得相同的fitted(glm.fit)

glm.fit <- glm(outlookfine ~ place,df, family=binomial)

glm.fit <- glm(outlookfine ~ temperature, df, family=binomial)

另一个相关变量给出 NA 系数的示例。

df <- iris
df$SL <- df$Sepal.Length * 2 + 1
glm(Sepal.Width ~ Sepal.Length + SL, data  = df)
Call:  glm(formula = Sepal.Width ~ Sepal.Length + SL, data = df)

Coefficients:
 (Intercept)  Sepal.Length            SL  
     3.41895      -0.06188            NA  

Degrees of Freedom: 149 Total (i.e. Null);  148 Residual
Null Deviance:        28.31 
Residual Deviance: 27.92  AIC: 179.5

关于r - 在 GLM 中,为什么即使给出数据,某些系数仍为 NA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67628712/

相关文章:

从文本中删除除特定单词之外的所有内容

r - 如何按多列对data.table进行分组?

R 根据以前的列改变新列并动态命名它们

R:在数据框中插入多行(变量数)

r - glm 起始值不被接受日志链接

r - 如何获得 glm 系数的阴影置信区间带?

r - 使用 str_extract_all 查找多个字符串

r - R 中带扫帚的 glm 的快速 Wald 置信区间

R:VGAM 中的不兼容尺寸错误 vglm 函数

r - 如何在大数据中加速glm?