我目前正在尝试使用时间序列交叉验证来评估tslm模型。我想使用一个固定的模型(没有参数重新估计),看一下去年评估期的1到3步前景预测。
我无法从预测库中获取mysqli_real_escape_string
和tsCV
以便一起使用。我错过了什么?
tslm
我有一种感觉,tc39/proposal-async-iteration#103是相关的。我如何将其应用于上述场景?
答案 0 :(得分:2)
对于时间序列交叉验证,您应该为每个训练集拟合一个单独的模型,而不是传递现有模型。对于预测变量,函数需要能够在拟合每个模型时获取相关元素,并在生成预测时获取其他元素。
以下内容可行。
fc <- function(y, h, xreg)
{
if(NROW(xreg) < length(y) + h)
stop("Not enough xreg data for forecasting")
X <- xreg[seq_along(y),]
fit <- tslm(y ~ X)
X <- xreg[length(y)+seq(h),]
forecast(fit, newdata=X)
}
# Predictors of the same length as the data
# and with the same time series characteristics.
pred <- ts(rnorm(length(AirPassengers)), start=start(AirPassengers),
frequency=frequency(AirPassengers))
# Now pass the whole time series and the corresponding predictors
tsCV(AirPassengers, fc, xreg=pred)
如果您有多个预测变量,那么xreg
应该是一个矩阵。