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


29

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

Коли я підходить до моделей glm, я можу використовувати еластичну сітку або ласо для регуляризації та вибору змінних за допомогою пакету glmnet . Чи існує в R інструментарій для використання еластичної сітки на моделях ARMAX, чи мені доведеться скрутити власну? Це навіть гарна ідея?

редагувати: Було б сенс вручну обчислювати терміни AR та MA (скажімо, до AR5 та MA5) та використовувати glmnet для відповідності моделі?

редагувати 2: Здається, що пакет FitAR мені стає частиною, але не всім, шляху до нього.


2
Мені буде цікаво дізнатися, чи вам колись вдалося щось зробити з цієї проблеми. У мене це було позначено для будь-якого оновлення - тому просто торкайтеся бази тут.
Вішал Белсаре

Ніколи не керували цим рішенням. Я думав написати власну реалізацію, але не обійшов її. Можливо, ви могли вручну обчислити терміни AR та MA, а потім застосувати glmnet до цих даних?
Зак

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

3
@MattWeller Я трохи поговорив з Робом Хайндманом, автором чудового forecastпакету для Р. Він сказав, що з повним ARIMA буде складно, тому що вам доведеться обмотати ласо навколо нелінійного оптимізатора ARIMA. Одним частковим рішенням було б відповідати моделі AR з використанням glmnetвідсталих змінних. Наскільки я знаю, ще ніхто не робив цього з повною моделлю ARIMA.
Зак

Відповіді:


7

Це не рішення, а деякі роздуми про можливості та труднощі, які я знаю.

Всякий раз, коли можна вказати модель часового ряду як з x t, що можна обчислити з коваріатів та затримок спостережень за часом, також можна обчислити еластичну сітку з найменшими квадратами, пеналізовану Оцінювач β за допомогою glmnet в R. Потрібно написати код для обчислення x t, щоб сформувати матрицю моделі, яка повинна бути вказана в glmnet. Це працює для AR-моделей, але не безпосередньо для моделей ARMA. Більше того, процедури перехресної перевірки glmnet самі по собі не є розумними для даних часових рядів.

Yт+1=хтβ+ϵт+1
хтβхт

Yт+1=f(хт,β)+ϵт+1
β
Yт+1=хтг(β)+ϵт+1
βг(β)-

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


Пакет caret для R має гарну реалізацію перехресної перевірки часових рядів, яку можна використовувати для вибору параметрів для glmnet. Дякую за відповідь.
Зак

2

Мені клієнт виклик вирішити цю проблему в автоматичному режимі, тобто під ключ. Я реалізував підхід, що для кожної пари (наприклад, y та кандидата x), попередньо обчислити перехресні кореляції попередньо побілених серій, ідентифікувати PDL (АБО ADL АВТОРЕГРЕСИВНИЙ РОЗПРОВАДЖЕНИЙ МОДЕЛЬ, включаючи будь-який МІРНИЙ ЧАС), включаючи виявлення інтервенції до дати надійні оцінки, розробити "міру" для цієї структури. Провівши це для ВСІХ кандидатів-регресорів, класифікуйте їх за "міркою", а потім виберіть кращі регресори К на основі "міри". Іноді це називається лінійною фільтрацією. Ми успішно включили цю евристику в наш доступний у продажу пакет часових рядів. Ви повинні мати можливість "РОЗКЛАДИТИСЯ ВЛАСНУ"


Я спеціально хочу включити ласо або еластичну сітку в модель ARIMA.
Зак

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

2
На даний момент мене не цікавлять зрушення рівня, місцеві тенденції часу, зміщення коефіцієнтів або непостійна дисперсія помилок. Мені дуже конкретно цікаво застосовувати лазеро, ребро або еластичну сітку регуляризації для моделей ARIMAX.
Зак

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

1
@frank ви намагаєтеся ідентифікувати за допомогою оцінки (зменшення), і це не працює, тому що існує занадто багато комбінацій можливих імпульсів, зрушень рівня, сезонних імпульсів і тенденцій часу.,. Якщо ці структури потрібні, але ігноруються, оцінка параметрів упереджена, а параметричні тести значущості виходять у вікно.
IrishStat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.