Недавно я начал изучать прогнозный пакет и пытался сначала применить его к некоторым данным о запасах, а затем перенести на мою работу.
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
Не могли бы вы помочь мне решить и, возможно, объяснить, что я делаю неправильно?
Заранее спасибо!