/ Помилка прогнозування часових рядів у R - r, прогнозування

Прогнозування помилок часових рядів у R - r, прогнозування

Я намагаюся використовувати функцію прогнозу зпакет прогнозу v4.06 на об'єкті часового ряду, який я створюю. Залежно від розміру вектора, який я переходжу до функції часового ряду для створення об'єкта часових рядів, я отримаю виняток, викинутий з наступного виклику для прогнозу.

Наприклад, створення об'єкта часового ряду з вектором довжини 6 так:

tsObj <- ts(tsVector[1:6], frequency=12, start=c(2013,4))

і потім викликати функцію прогнозу на цьому об'єкті часових рядів:

pred <- forecast(tsObj, 1)

генерує наступний виняток:

Error in lsfit(1:maxn, y.sa[1:maxn]) : 0 responses, but only 2 variables
In addition: Warning message:
In lsfit(1:maxn, y.sa[1:maxn]) : 6 missing values deleted

Фактично, довжини вектора від 4 до 11 генеруютьсяця помилка, але довжини 1,2,3 або> = 12 вдалося створити відповідний прогноз. Будь-які погляди на виняток були б дуже вдячні. Дякуємо за час!

================================================== ==============================

Я вважаю, що знайшов джерело для lsfit і знайшов місце, де створюється це виключення:

## check for compatible lengths
nrx <- NROW(x)
ncx <- NCOL(x)
nry <- NROW(y)
ncy <- NCOL(y)
nwts <- length(wt)
if(nry != nrx) stop(paste("X matrix has", nrx, "responses, Y",
"has", nry, "responses."))
if(nry < ncx) stop(paste(nry, "responses, but only", ncx,     "variables"))

Це виглядає як невідповідність кількості рядківміж векторами x і y. Тим не менш, я не можу знайти, де lsfit називається в пакет прогнозу, щоб зрозуміти, що "у" в цьому випадку.

Відповіді:

0 для відповіді № 1

Проблема полягає в тому, що ви встановлюєте частоту 12, але це неможливо оцінити з меншою кількістю, ніж таке ж число tsVector вхідних даних. Так мінімальна частота, яку ви можете встановити, - це кількість об'єктів у вашому векторі.

Обидва ці кодові блоки працюють для мене:

tsVector <- c(1,2,3,4,5, 6)
tsObj <- ts(tsVector, frequency = 5, start = c(2013, 4))
pred <- forecast(tsObj, 1)

і

tsVector <- c(1,2,3,4,5, 6, 7, 8, 9 , 10, 11, 12)
tsObj <- ts(tsVector, frequency = 12, start = c(2013, 4))
pred <- forecast(tsObj, 1)

Сподіваюся, це допомагає!