Чому це передбачення часових рядів "досить бідне"?


15

Я намагаюся навчитися користуватися нейронними мережами. Я читав цей підручник .

Після встановлення нейронної мережі на часовій серії, використовуючи значення в для прогнозування значення на автор отримує наступний сюжет, де синя лінія є тимчасовим рядом, зелена - прогноз на дані поїздів, червона - прогнозування даних випробувань (він використав тест на поїзд)tt+1р1

і називає це "Ми можемо побачити, що модель виконала досить погану роботу з підгонки як навчальних, так і тестових наборів даних. В основному вона передбачала те саме вхідне значення, що і вихідне".

Тоді автор вирішує використовувати , і для прогнозування значення при . При цьому отримуєtт-1т-2т+1

р2

і каже: "Дивлячись на графік, ми можемо побачити більше структури в прогнозах".

Моє запитання

Чому перший "бідний"? мені це виглядає майже ідеально, він передбачає, що кожна зміна ідеально!

І так само, чому краще другий? Де "структура"? Мені це здається набагато біднішим, ніж перший.

Загалом, коли прогноз щодо часових рядів хороший, а коли поганий?


3
Як загальний коментар, більшість методів МЛ призначені для аналізу поперечного перерізу, і вони потребують коригувань для застосування в часових рядах. Основна причина - автокореляція даних, тоді як в ML найчастіше дані вважаються незалежними у більшості популярних методів
Аксакал

11
Це чудова робота передбачення кожної зміни ... одразу після того, як це станеться!
варення

@hobbs, я не намагаюся використовувати t, t-1, t-2 тощо для прогнозування t + 1. Мені було цікаво, чи знаєте ви, скільки термінів у минулому найкраще використовувати. Якщо ми використовуємо їх занадто багато, чи переозброюємо ми?
Euler_Salter

Більш освітлювальним було б побудувати рештки.
reo katoa

Відповіді:


23

Це свого роду оптична ілюзія: око дивиться на графік і бачить, що червоний і синій графіки знаходяться біля кожного. Проблема полягає в тому, що вони розташовуються прямо поруч один з одним по горизонталі , але головне - це вертикальвідстань. Око найлегше бачить відстань між кривими у двовимірному просторі декартового графіка, але важливо - одновимірна відстань у межах певного значення t. Наприклад, припустимо, що у нас були точки A1 = (10 100), A2 = (10,1, 90), A3 = (9,8,85), P1 = (10,1 100,1), а P2 = (9,8, 88). Око, природно, збирається порівняти Р1 з А1, тому що це найближча точка, тоді як Р2 буде порівнюватися з А2. Оскільки 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.


2
Це краща відповідь, оскільки інший навіть не згадує, чому "гарний" прогноз насправді поганий, тоді як ви робите велику роботу в цьому!
Річард Харді

17

Чому перший "бідний"? мені це виглядає майже ідеально, він передбачає, що кожна зміна ідеально!

Це так званий "зміщений" прогноз. Якщо більш уважно придивитися до діаграми 1, ви побачите, що сила передбачення полягає лише в копіюванні майже точно останнього баченого значення. Це означає, що модель навчилася нічого кращого, і вона трактує часові ряди як випадкову прогулянку. Я думаю, що проблема може полягати в тому, що ви використовуєте необроблені дані, які ви подаєте в нейронну мережу. Ці дані нестаціонарні, що спричиняє всі проблеми.


8
При прогнозуванні це називається "наївним" прогнозом, тобто використовуйте останній спостережуваний як прогноз
Аксакал

Дякую! @Aksakal чи знаєте ви, скільки попередніх значень слід використовувати для прогнозування?
Euler_Salter

Зосередьтеся на стаціонарності. Кілька стаціонарних лагів повинні бути непоганими для цього часового ряду. Краще 100 нестаціонарних лагів.
Олексій Бурнаков

у часових рядах є спосіб зрозуміти структуру відставання через ACF та PACF, перегляньте цей форум, було багато повідомлень про те, як це робиться
Aksakal

@AlexeyBurnakov так це означає, що я повинен перетворити його на стаціонарне?
Euler_Salter
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.