Почему это предсказание временного ряда «довольно плохое»?

15

Я пытаюсь научиться использовать нейронные сети. Я читал этот урок .

После подбора нейронной сети по временному ряду, используя значение в для прогнозирования значения в момент времени t + 1, автор получает следующий график, где синяя линия - это временной ряд, зеленый - это прогноз данных поезда, красный - это прогноз на тестовых данных (он использовал разделение тест-поезд)TT+1p1

и называет это «Мы видим, что модель довольно плохо справилась с подбором как обучающих, так и тестовых наборов данных. Она в основном предсказывала то же входное значение, что и выходной».

TT-1T-2T+1

p2

и говорит: «Глядя на график, мы видим больше структуры в прогнозах».

Мой вопрос

Почему первый "бедный"? это выглядит почти идеально для меня, он предсказывает каждое изменение совершенно!

И аналогично, почему второй лучше? Где эта «структура»? Мне это кажется намного беднее, чем первый.

В общем, когда прогноз по временным рядам хорош, а когда плох?

Euler_Salter
источник
3
Как общий комментарий, большинство методов ОД предназначены для анализа поперечного сечения и требуют корректировки для временных рядов. Основной причиной является автокорреляция в данных, в то время как в ML часто данные считаются независимыми в большинстве популярных методов
Аксакал почти наверняка двоичный
11
Он отлично предсказывает каждое изменение ... сразу после того, как оно произойдет!
Хоббс
@hobbs, я не пытаюсь использовать t, t-1, t-2 и т. д. для прогнозирования t + 1. Мне было интересно, если вы знаете, сколько терминов в прошлом лучше всего использовать. Если мы используем слишком много, мы переоснащаемся?
Euler_Salter
Это было бы более поучительно, чтобы составить график остатков.
Рео Катоа

Ответы:

23

Это своего рода оптическая иллюзия: глаз смотрит на график и видит, что красный и синий графики находятся рядом с каждым. Проблема в том, что они находятся рядом друг с другом по горизонтали , но важна вертикальрасстояние. Глазу легче всего увидеть расстояние между кривыми в двумерном пространстве декартова графа, но важна одномерная дистанция в пределах определенного значения t. Например, предположим, что у нас были точки A1 = (10 100), A2 = (10,1, 90), A3 = (9,8,85), P1 = (10,1 100,1) и P2 = (9,8, 88). Глаз, естественно, будет сравнивать P1 с A1, потому что это самая близкая точка, в то время как P2 будет сравниваться с A2. Поскольку P1 ближе к A1, чем P2 к A3, P1 будет выглядеть как лучший прогноз. Но когда вы сравниваете P1 с A1, вы просто смотрите, насколько хорошо A1 может просто повторить то, что видел ранее; в отношении A1, P1 не является прогнозом, Правильное сравнение между P1 v. A2 и P2 v. A3, и в этом сравнении P2 лучше, чем P1. Было бы яснее, если бы, помимо построения y_actual и y_pred против t, были графики (y_pred-y_actual) против t.

Acccumulation
источник
2
Это лучший ответ, так как другой даже не упоминает, почему «красивый» прогноз на самом деле плох, а вы отлично справляетесь с этим!
Ричард Харди
17

Почему первый "бедный"? это выглядит почти идеально для меня, он предсказывает каждое изменение совершенно!

Это так называемый «сдвинутый» прогноз. Если вы посмотрите более внимательно на график 1, вы увидите, что сила предсказания заключается только в копировании почти точно последнего увиденного значения. Это означает, что модель ничему не научилась лучше, и она рассматривает временные ряды как случайную прогулку. Я предполагаю, что проблема может заключаться в том, что вы используете необработанные данные, которые вы передаете в нейронную сеть. Эти данные не являются стационарными, что вызывает все проблемы.

Алексей Бурнаков
источник
8
В прогнозировании это называется «наивным» прогнозом, т.
Аксакал почти наверняка бинарный
Спасибо! @ Аксакал, ты знаешь, сколько предыдущих значений следует использовать для прогнозирования?
Euler_Salter
Фокус на стационарности. Несколько стационарных лагов должны быть достаточно хороши для этого временного ряда. Лучше, чем 100 нестационарных лагов.
Алексей Бурнаков
во временных рядах есть способ получить правильное предположение о структуре лагов с помощью ACF и PACF, поищите на этом форуме, было много постов о том, как это делается
Аксакал почти наверняка бинарный
@ AlexeyBurnakov, значит ли это, что я должен превратить его в стационарный?
Euler_Salter