Монтаж моделі 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.