0

Я использую подход прогнозирования пакетного прогноза Роба Гиндмана для прогнозирования для нескольких столбцов в dataframe. Мой код выглядит следующим образом:Пакетное прогнозирование с использованием прогноза HoltWinters

require(forecast) 

zips <- read.csv(file.choose(), header = T) 
zips <- zips[,-c(1,2)] 
ns <- ncol(zips) 

zips <- ts(zips, frequency = 12, start = c(2005,1), end = c(2014,12)) 
zips <- HoltWinters(zips, seasonal = "mult") 

h <- 24 

fcast <- matrix(NA, nrow=h, ncol=ns) 
for(i in 1:ns) { 
    fcast[,i] <- forecast.HoltWinters(zips[,i], h=h) 
} 

write(t(fcast), file="fcast.csv", sep=",",ncol=ncol(fcast)) 

Хотя это прекрасно работает при использовании регулярных forecast функции, я получаю ошибку

[Ошибку в молниях [, я]: неправильное число измерений]

Как я могу получить этот HoltWinters прогноз для запуска с использованием этого цикла, который я здесь построил?

ответ

0

Попробуйте сохранить прогнозы вместо списка. А также для функции forecast.HoltWinters требуется объект класса HoltWinters, который создается функцией HoltWinters, для которой требуется вектор в качестве входного сигнала. Помимо прогнозов точек, по умолчанию функция forecast.HoltWinters также создает границы интервала предсказания.

fcast <- list() 

for(i in 1:ns) { 

    zips_fit <- HoltWinters(zips[, i], seasonal = "mult") 
    fcast[[i]] <- forecast.HoltWinters(zips_fit, h = h) 
} 
0

Даже я также использую подобный вид пакетной обработки для Holts Winter метод прогнозирования, но я использую функцию от прогнозного HW пакета, созданного профессором Робом J Гайндманом. Во всяком случае для вашего вопроса я предпочитаю использовать $mean в прогнозировании. i.e

fcast <- matrix(NA, nrow=h, ncol=ns) 
for(i in 1:ns) { 
    fcast[,i] <- forecast.HoltWinters(zips[,i], h=h)`$mean` 
} 

Попробуйте это один раз!

Смежные вопросы