Як передбачити один часовий ряд з іншого часового ряду, якщо вони пов'язані


14

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

Ви є літаком, який відстежує ворожий корабель, який подорожує океаном, тому ви зібрали ряд координат (x, y, часу) корабля. Ви знаєте, що прихований підводний човен їде з судном, щоб захистити його, але, хоча існує взаємозв'язок між їхніми положеннями, підводний човен часто відхиляється від корабля, тому, хоча він часто знаходиться поруч, він може знаходитися і з іншого боку світ періодично. Ви хочете передбачити шлях підводного човна, але він, на жаль, прихований від вас.

Але один місяць у квітні ви помічаєте, що підводний човен забуває ховатися, тому у вас є ряд координат як для підводного човна, так і для корабля протягом 1000 поїздок. Використовуючи ці дані, ви хочете побудувати модель для прогнозування прихованого шляху підводного човна з урахуванням лише руху корабля. Наївною базовою лінією було б сказати "положення підводного човна = =" поточне положення корабля ", але з квітневих даних, де підводний човен був видно, ви помітили, що існує тенденція, що підводний човен трохи випередить корабель, тому" положення підводного човна здогадка = Позиція корабля за 1 хвилину "є ще кращою оцінкою. Крім того, квітневі дані показують, що коли корабель призупиняється у воді протягом тривалого періоду, підводний човен, ймовірно, буде далеко патрулювати прибережні води. Є й інші закономірності звичайно.

Як би ви побудували цю модель, враховуючи дані квітня як дані про навчання, для прогнозування шляху підводного човна? Моє поточне рішення - спеціальна лінійна регресія, де чинниками є "час поїздки", "координата x корабля", "простоювали корабель протягом 1 дня" і т.д., а потім R визначити ваги і зробити перехресну перевірку . Але я дуже люблю спосіб генерувати ці фактори автоматично з квітневих даних. Крім того, модель, яка використовує послідовність або час, була б непоганою, оскільки лінійна регресія не є, і я вважаю, що це актуально.

Дякую за прочитане все це, і я був би радий щось пояснити.


5
tj(r(tj),θ(tj))rθ|θ|rr

2
Я збирався запропонувати щось подібне до ймовірнісного - вам потрібна змінна величина, яка є відстань між судном та підпорядком. Приємне в полярних координатах полягає в тому, що ця інформація, як і спрямованість, також включені. Потім ви можете спробувати лінійну регресію для цієї нової змінної.
учень

Дякуємо за пропозиції. Одне, за що я борюся з полярними координатами, це те, що якщо я спробую передбачити змінну кута, вона "закручується" так 0 == 360, що не має сенсу з точки зору прогнозування. Будь-які пропозиції, як з цим боротися?
Перевезення вантажів та підводних човнів

@probabilityislogic Подумавши про це трохи більше, чи було б сенсом використовувати полярні координати, але використовувати sin (theta) замість theta як змінну для прогнозування? Хоча тоді він поводився б більше як delta_y.
Перевезення вантажів та підводних човнів

Щодо використання полярних координат, ви можете прочитати про статистику спрямованості .
стійлака

Відповіді:


3

Ось підхід, який не використовує будь-яку "контекстуальну" інформацію, тобто не враховує той факт, що "підводний супроводжує судно". З іншого боку, це легко почати з:

Позначимо через

хсуб(т),усуб(т)

хсгодip(т),усгодip(т)

т

хгiст(т)=хсгодip(т)-хсуб(т)

угiст(т)=усгодip(т)-усуб(т)

Моя пропозиція полягає в тому, щоб ви передбачили кожне з них окремо (ви можете зв'язати їх згодом).

х

Потім

хгiст(т)=100±10шiггле(т)

шiггле

Тепер (все ще акцентуючи увагу на хушiгглемкσхгiст

хгiст(т)=мк+σWх(т)

Wх(т)хгiст

Ще одна стратегія, яку люди використовують (яка, на мою думку, допоможе вам), полягає в тому, що вони розбивають свої серії

Polynomial base + Cyclic pattern + Bounded randomness

Що стосується підводного човна і корабля, то поліноміальна частина, ймовірно, буде постійною, а циклічна частина - сумою синусів і косинусів (від хвиль океану ...). Це може не стосуватися спостереження за очима.

Є інструменти, які можуть зрозуміти це для вас. Ось два, про які я знаю:

  1. DTREG (ліцензія на оцінку 30 днів)
  2. Алгоритм часової серії Microsoft, який є частиною продукту SQL Server. Зараз я використовую 180-денне видання для оцінювання, воно просте у використанні.

Ось скріншот із інструменту SQL Server (пунктирна частина - передбачення):

введіть тут опис зображення

Один алгоритм, який вони використовують, називається ARIMA. Бажаючи дізнатись, як це працює, я трохи погуглив і знайшов цю книгу: Перший курс із часових рядів (і не хвилюйтеся, вам не потрібно мати SAS, щоб слідувати далі. Мені не потрібно). Це дуже легко читається.

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


Інструменти ARIMA для R: stat.ethz.ch/R-manual/R-patched/library/stats/html/arima.html
zzk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.