用行数预测 R 中 GLM 的误差

Predict error for GLMs in R with number of rows

我正在尝试在 R 中获取逻辑 glm 的预测曲线。我创建了一个新的数据框,但不明白为什么我总是收到此错误。感谢您的帮助!

glm1 <- glm(dataset_presence$presence ~ dataset_presence$Int_Bk, data = dataset_presence, family = binomial, na.action = na.exclude)

newdat <- data.frame(Int_Bk = seq(min(dataset_presence$Int_Bk), max(dataset_presence$Int_Bk), length=50))

newdat$presence <- predict(glm1, newdata = newdat, type="response")

Error in $<-.data.frame(*tmp*, presence, value = c(0.862135653229272, : replacement has 167 rows, data has 50 In addition: Warning message: 'newdata' had 50 rows but variables found have 167 rows

您需要在公式中指定不带data$variable的型号:

glm1 <- glm(presence ~ Int_Bk, data = dataset_presence, family = binomial, na.action = na.exclude)

一旦你这样做了,你的预测就会成功。也就是说,如果您尝试绘制曲线,ggeffectseffects 包有一些非常有用的功能。例如,使用 carData 包中的 Chile 数据:

library(ggeffects)
data("Chile", package="carData")

Chile <- Chile %>% 
  filter(vote %in% c("Y", "N"))
m2 <- glm(vote ~ age, data=Chile, family=binomial)

p <- ggpredict(m2, terms="age")
plot(p)

ggpredict 对象的 plot() 方法生成 ggplot