用行数预测 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)
一旦你这样做了,你的预测就会成功。也就是说,如果您尝试绘制曲线,ggeffects
和 effects
包有一些非常有用的功能。例如,使用 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
。
我正在尝试在 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)
一旦你这样做了,你的预测就会成功。也就是说,如果您尝试绘制曲线,ggeffects
和 effects
包有一些非常有用的功能。例如,使用 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
。