【发布时间】:2015-08-14 20:36:37
【问题描述】:
我正在尝试使用 forecast 命令为 glm(概率回归)模型生成一个简单的单周期预测。但是在运行以下代码时,我收到以下消息:Error in as.data.frame(newdata) : argument "newdata" is missing, with no default
#generate dataset with unknown value for last period dependent variable
data.set <- data.frame(date= seq(as.Date('2015-01-01'), by = 'days' , length = 100),
replicate(100, sample(0:1,1)), runif(1e2),runif(1e2),runif(1e2))
colnames(data.set) <- c("date", "dv", "iv1", "iv2", "iv3")
data.set.ts <- xts(data.set[-1], order.by=data.set$date)
rm(data.set)
data.set.ts$dv[100] <- NA
#run glm probit model
PRmodel <- glm(dv ~ iv1 + iv2 + iv3, data = data.set.ts[-nrow(data.set.ts),],
family = binomial(link = "probit"))
#generate forecast for last period dv
iv_input <- xts(data.set.ts[, which(colnames(data.set.ts) %in% c("iv1" , "iv2" , "iv3"))],
order.by = index(data.set.ts))
start.date <- index(data.set.ts)[length(index(data.set.ts))]
fcastFn_output <- forecast(PRmodel, xreg=window(iv_input, start = start.date))
我也尝试过使用predict 命令,但如果缺少实际值,R 似乎不会为观察生成预测值。
【问题讨论】:
-
不在笔记本电脑附近,如果这是错误的,我们深表歉意,但我认为
forecast是为时间序列模型设计的,而不是 glms。我对错误的猜测是,它最终被传递给predict.glm,此时 newdata 参数(指定独立变量的输入数据集)不存在。尝试形成一个包含 101 个日期而不是 100 个日期的数据集,然后使用predict(PRmodel, newdata = data.set.2)来获取您的预测。这行得通吗?
标签: r glm forecasting