我正在尝试在我创建的时间序列对象上使用预测包 v4.06 中的预测功能。根据我传递给时间序列函数以生成时间序列对象的向量的大小,我将在后续调用预测时抛出异常。
例如,创建一个长度为 6 的向量的时间序列对象,如下所示:
tsObj <- ts(tsVector[1:6], frequency=12, start=c(2013,4))
然后在该时间序列对象上调用预测函数:
pred <- forecast(tsObj, 1)
生成以下异常:
Error in lsfit(1:maxn, y.sa[1:maxn]) : 0 responses, but only 2 variables
In addition: Warning message:
In lsfit(1:maxn, y.sa[1:maxn]) : 6 missing values deleted
事实上,向量长度为 4 到 11 会产生此错误,但长度为 1、2、3 或 >=12 的向量会成功生成适当的预测。对异常的任何见解将不胜感激。谢谢你的时间!
==================================================== ===============================
我相信我找到了 lsfit 的来源并找到了生成此异常的位置:
## check for compatible lengths
nrx <- NROW(x)
ncx <- NCOL(x)
nry <- NROW(y)
ncy <- NCOL(y)
nwts <- length(wt)
if(nry != nrx) stop(paste("X matrix has", nrx, "responses, Y",
"has", nry, "responses."))
if(nry < ncx) stop(paste(nry, "responses, but only", ncx, "variables"))
看起来 x 和 y 向量之间的行数不匹配。但是,我找不到在预测包中调用 lsfit 的位置来确定在这种情况下“y”是什么。感谢您的任何/所有帮助!