大家好, 我在R中使用神经网络包。我使用三个'x'变量来预测'y'变量。我正在处理82个观测的时间序列数据。我将数据集分为训练集和测试集。使用'compute'函数我在测试数据上测试了神经网络拟合模型。 但是,我想预测未来没有x数据的时期。我正在尝试使用'预测'功能。有没有办法在R中使用神经网络包的预测功能。我很欣赏这方面的任何帮助。 找到下面的R代码:
## Creating Training (1:72) and Test Slices (73:82)
library(caret)
timeSlices <- createTimeSlices(1:nrow(data1),
initialWindow = 72, horizon = 10, fixedWindow = TRUE)
共有82个观察结果。我使用了来自caret包的createTimeSlices来创建训练集(1:72)和测试集(73:82)。现在我使用神经网络包来训练模型,如下所示:
library(neuralnet)
set.seed(101)
Model1 <- neuralnet(ppy ~ ppx1+ppx2+ppx3,data=mytraindata,
hidden=4, threshold=0.001, stepmax = 2e+05, rep = 1,
lifesign = "full", lifesign.step = 1000,
algorithm = "rprop+", err.fct = "sse",
act.fct = "logistic", linear.output = TRUE)
现在我在测试集(73:82)上预测模型,使用以下代码
Predmodel1 <- compute(Model1, Ntestdata)
直到这一刻,一切都很酷。但是,我需要预测未来的y变量。我尝试使用'预测'功能来预测未来7个时期(即83:89期)的y值,如下所示
library(forecast)
predmodel2 <- forecast(Model1$net.result[[1]], 7)
我收到以下错误:
ets中的错误(对象,lambda = lambda,允许。乘法。趋势=允许。乘法。趋势,:y应该是单变量时间序列
有关如何将y预测到未来7个时期(83:89)的任何想法?为了预测未来的7个时期,让我们假设模型1是根据观察1:82进行训练的。非常感谢您的反馈。谢谢。
答案 0 :(得分:0)
forecast()函数仅适用于单变量数据,不适用于多变量方法