Neural network in R for predictions 1 day, 2 days and 3 days ahead

ε祈祈猫儿з 提交于 2020-06-29 03:39:16

问题


I am using ann in R. I have (time series) daily data which has 6400 rows and 3 input variables A, B, C and 2 output variables D, E.
I can predict D and E variables based on input A, B and C.
This is what I have tried:

data <- data.frame(A, B, C, D, E)

index <- 1:5844
datatrain = data[index, ]
datatest = data[-index, ]

max = apply(data , 2 , max)
min = apply(data, 2 , min)
scaled = as.data.frame(scale(data, center = min, scale = max - min))

train = scaled[index , ]
test = scaled[-index , ]

NN = neuralnet(as.formula(D + E ~ A + B + C), train, hidden = 2)
plot(NN)

predict_test = compute(NN, test[, c(1, 2, 3)])
predict_test1 = (predict_test$net.result[, 1] * (max(data$D) - min(data$D))) + min(data$D)
predict_test2 = (predict_test$net.result[, 2] * (max(data$E) - min(data$E))) + min(data$E)

plot(datatest$D, predict_test1, col='blue', pch=16, ylab = "Predicted D", xlab = "Real D")
abline(0, 1, col = "black")
plot(datatest$E, predict_test2, col='blue', pch=16, ylab = "Predicted E", xlab = "Real E")
abline(0, 1, col = "black")

RMSE(predict_test1, datatest$D)
RMSE(predict_test2, datatest$E)

Now, I am interested in taking lags of 1 day, 2 days and 3 days. This means that I want to predict the values of D and E in future of 1 day, 2 days and 3 days.
I am wondering, is there any function/package or a way in R so that I can predict values of D and E in 1 day, 2 days and 3 days advance?
Would be so nice if someone can help me. Thanks!

来源:https://stackoverflow.com/questions/62369163/neural-network-in-r-for-predictions-1-day-2-days-and-3-days-ahead

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!