R: Прогноз с ETS и применение перекрестной проверки временных рядов - PullRequest
0 голосов
/ 11 января 2019

Недавно я начал изучать прогнозный пакет и пытался сначала применить его к некоторым данным о запасах, а затем перенести на мою работу.

library(quantmod)
library(forecast)
library(data.table)


#Importing historical data of Microsoft stock
my_portfolio <- "MSFT"
StockData <- lapply(my_portfolio,getSymbols,auto.assign=FALSE)
names(StockData) <- my_portfolio
head(StockData[[my_portfolio[1]]])
StockData <-StockData$MSFT
StockData <-data.frame(StockData[,4])
setDT(StockData, keep.rownames = TRUE)[]
setnames(StockData, 1, "Date")
StockData$Date <- as.Date(StockData$Date)

#Creating the time-series object
TimeSeries <- ts(StockData, frequency=365)

#Fitting the Exponential smoothing
fit2 <- ets(TimeSeries, model="ZZZ")
TimeSeriesFC <- forecast(fit2,h=60,model="ZZZ")
plot(forecast(fit2,h=60,model="ZZZ"))

#Performing accuracy tests
accuracy(TimeSeriesFC)

#Running time-series cross validation
e <- tsCV(TimeSeries, function(x,h){forecast(ets(x),h)}, h=60)
mse <- colMeans(e^2, na.rm = TRUE)

#Union 2 data frames
Union <- ts.union(TimeSeries,TimeSeriesFC$mean, dframe=TRUE)

Я получаю 2 ошибки. 1-й - при применении tsCV Error in ets(TimeSeries, model = "ZZZ") : y should be a univariate time series

2-й при объединении 2-х временных рядов. Error in .cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE) not all series have the same frequency Не могли бы вы помочь мне решить и, возможно, объяснить, что я делаю неправильно? Заранее спасибо!

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