Как предсказать будущую цену акции в день, используя R? - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь предсказать будущую цену акций, используя модель auto.arima в R. Я могу предсказать результаты, но не могу получить даты, чтобы показать это. Я вижу только цифры. Вот мой код

library(quantmod)

Stock_df<-as.data.frame(getSymbols(Symbols = "AAPL", src = "yahoo", from = "2017-05-08", env = NULL))

Stock_dates<- as.data.frame(as.POSIXlt(rownames(Stock_df)))
colnames(Stock_dates) <- "Dates"

Stock_df$Open = Stock_df[,1]
Stock_df$High = Stock_df[,2]
Stock_df$Low = Stock_df[,3]
Stock_df$Close = Stock_df[,4]
Stock_df$Volume = Stock_df[,5]
Stock_df$Adj = Stock_df[,6]
Stock_df <- Stock_df[,c(7,8,9,10,11,12)]

x <- as.data.frame(xts(Stock_df$Close,Stock_dates$Date))
fit <- auto.arima(x,ic="bic")
fit.forecast <- forecast(fit)

fit.forecast

Я получаю следующие результаты:

    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
253         185.16 182.2090 188.1110 180.6468 189.6732
254         185.16 180.9866 189.3334 178.7773 191.5427
255         185.16 180.0487 190.2714 177.3429 192.9771
256         185.16 179.2579 191.0621 176.1336 194.1865
257         185.16 178.5613 191.7587 175.0681 195.2519
258         185.16 177.9315 192.3885 174.1049 196.2151
259         185.16 177.3523 192.9677 173.2191 197.1009
260         185.16 176.8132 193.5068 172.3947 197.9253
261         185.16 176.3069 194.0131 171.6203 198.6997
262         185.16 175.8280 194.4920 170.8879 199.4321

Я хочу показать следующие результаты

    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
2018-05-08  185.16 182.2090 188.1110 180.6468 189.6732
2018-05-09  185.16 180.9866 189.3334 178.7773 191.5427
2018-05-10  185.16 180.0487 190.2714 177.3429 192.9771
2018-05-11  185.16 179.2579 191.0621 176.1336 194.1865
2018-05-14  185.16 178.5613 191.7587 175.0681 195.2519
2018-05-15  185.16 177.9315 192.3885 174.1049 196.2151
2018-05-16  185.16 177.3523 192.9677 173.2191 197.1009
2018-05-17  185.16 176.8132 193.5068 172.3947 197.9253
2018-05-18  185.16 176.3069 194.0131 171.6203 198.6997
2018-05-21  185.16 175.8280 194.4920 170.8879 199.4321

ЧАСТИЧНОЕ РЕШЕНИЕ

Ниже приведено частичное решение благодаря Райану

forecast.data<- as.data.frame(fit.forecast)
forecast.data$newcolname <- Sys.Date() + seq_len(nrow(forecast.data)) - 1

Причина, по которой это частичное решение, заключается в том, что при построении объекта fit.forecast отображается несколько графиков. Мне нужен один график со временем по оси X. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...