Як підігнати модель для часового ряду, що містить видатки


9

Я встановив модель ARIMA (5,1,2), використовуючи auto.arima()функцію R, і, шукаючи порядок, можна сказати, що це не найкраща модель для прогнозування. Якщо в ряді даних існують інші люди, який спосіб пристосувати модель до таких даних?


Чи є у вас якісь дані / теорія щодо того, які точки є випускниками? Ви не можете просто припустити, що "далекі" точки - це люди, що переживають люди, але якщо ви знаєте, що в певну дату сталося щось особливе, і ця подія вплине на ваші дані, ви можете додати змінну індикатора до вашої моделі для цієї дати. Дивіться коментар IrishStat нижче.
Уейн

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

Відповіді:


7

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

Ви не можете конкурувати з сучасними автоматизованими комп'ютерними алгоритмами. Вони розглядають багато способів наблизитись до часових рядів, які ви не розглядали і часто не зафіксовані в жодному папері чи книзі. Коли потрібно запитати, як зробити ANOVA, точну відповідь можна очікувати при порівнянні з різними алгоритмами. Коли я задаю собі запитання, як мені розпізнати візерунок, можливе багато відповідей, оскільки це стосується евристики. Ваше запитання передбачає використання евристики.

Найкращий спосіб підходити до моделі ARIMA, якщо в даних є інші люди - це оцінити можливі стани природи та вибрати той підхід, який вважається оптимальним для певного набору даних. Одним із можливих станів природи є те, що процес ARIMA є основним джерелом поясненої варіації. У цьому випадку можна "орієнтовно визначити" процес ARIMA за допомогою функції acf / pacf, а потім вивчити залишки на предмет можливих людей, що залишилися. Отримані люди можуть бути Імпульсами, тобто разовими подіями АБО сезонними імпульсами, про які свідчать систематичні люди з певною частотою (скажімо, 12 для щомісячних даних). Третій тип вигулу - це той, де один суцільний набір імпульсів, кожен має однаковий знак і величину, це називається зсувом кроку або рівня. Після вивчення залишків попереднього процесу ARIMA можна потім орієнтовно додати емпірично ідентифіковану детерміновану структуру для створення орієнтовної комбінованої моделі. Ні, якщо первинним джерелом варіації є один із 4-х видів або "чужих", тоді краще було б послуговуватися ідентифікацією їх ab initio (спочатку), а потім використанням залишків цієї "регресійної моделі" для ідентифікації стохастичної (ARIMA) структури . Тепер ці дві альтернативні стратегії ускладнюються, коли виникає "проблема", коли параметри ARIMA з часом змінюються або дисперсія помилок з часом змінюється через низку можливих причин, можливо, необхідності найменш зважених квадратів або перетворення потужності як журнали / зворотні матеріали тощо. Іншим ускладненням / можливістю є те, як і коли сформувати внесок запропонованих користувачем серій прогнозів для формування цілісно інтегрованої моделі, що включає пам'ять, причинний зв’язок та емпірично ідентифіковані манекени. Ця проблема ще більше загострюється, коли в трендовій серії найкраще моделюється індикаторний ряд форми0,0,0,0,1,2,3,4,..., або 1,2,3,4,5,...n і комбінації серій зсуву рівня, як 0,0,0,0,0,0,1,1,1,1,1. Можливо, ви захочете спробувати записати такі процедури на R, але життя коротке. Буду радий реально вирішити вашу проблему і продемонструвати в цьому випадку, як працює процедура, будь ласка, опублікуйте дані або надішліть їх на sales@autobox.com


Додатковий коментар після отримання / аналізу даних / щоденних даних за курсом іноземної валюти / 18 = 765 значень, починаючи з 1.01.2007 р

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

Дані мали доступ:

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

Після ідентифікації моделі арми форми (1,1,0)(0,0,0)а кількість залишків acf залишків вказує на випадковість, оскільки значення ACF дуже малі. AUTOBOX визначила декілька людей, що пережили люди:

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

Кінцева модель:

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

включила необхідність збільшення стабілізації дисперсії a la TSAY, де зміни дисперсії залишків були визначені та включені. Проблема, з якою у вас виник автоматичний запуск, полягала в тому, що процедура, яку ви використовуєте, як бухгалтер, вірить у дані, а не оскаржує дані за допомогою Detection Intervention (він же, виявлення Outlier). Я опублікував повний аналіз тут .

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


@IrishStat: Чи надалі ви можете використовувати параметри форматування? (правильна клавіша для вставки посилань - ctrl-l, а не ctrl-c).
user603

@ user603 Я просто використовував опцію додати графік. Я не знаю, що ви маєте на увазі під ctrl-l чи cntrl-c. Можливо, ви могли б мені допомогти, будь ласка, зв’яжіться зі мною на сайті dave / @ / autobox.com і, можливо, ви можете пройти / поговорити зі мною через це.
IrishStat

@IrishStat: подивіться тут .
user603

@ user603 Добре, але я досі не знаю, що ви маєте на увазі під ctrl-l та cntrl-c. Я використовував передачу зображень там, де мені вдається вставити зображення. Якщо я ввожу cntrl-g, я просто отримую порожній спливаючий екран.
IrishStat

@IrishStat: це нормально - метод посилання навіть кращий, ніж ctrl-l :). PS: моя мета полягала у тому, щоб допомогти вам зробити ваші відповіді / коментарі більш привабливими, косметично, приховуючи ці довгі посилання, що прорізають потік тексту. Посилання пояснює вам, як цього досягти.
user603

6

У R (поки що) немає готового використовувати надійний аналог функції arima ; Якщо хтось з’явиться, він буде вказаний тут . Можливо, альтернативою є зменшення ваги тих спостережень, які переважають у відношенні простого універсального правила виявлення, але я також не бачу готових використовувати пакети для запуску зваженої регресії ARMA. Ще однією можливою альтернативою було б перемогти основні точки:

#parameters
para     <- list(ar=c(0.6,-0.48), ma=c(-0.22,0.24))
#original series
y1 <- y0 <- arima.sim(n=100, para, sd=sqrt(0.1796)) 
#outliers
out      <- sample(1:100, 20)               
#contaminated series
y1[out]  <- rnorm(20, 10, 1)                
plot( y1, type="l")
lines(y0, col="red")

приклад випадкового зараження

#winsorized series
y2      <- rep(NA, length(y1))
a1      <- (y1-median(y1)) / mad(y1)
a2      <- which(abs(a1)>3)
y2[-a2] <- y1[-a2]
for(i in 2:length(y2)){
   if(is.na(y2[i])){ y2[i] <- y2[i-1] }
}       

очищена серія


Процедура, що базується на правилах, працює для цієї серії, оглянувши дані про часові ряди протягом майже 42 років, може не працювати взагалі. Розгляньте просту серію, яка має процес автоматичного проектування, наприклад, 1,9,1,9,1,9,5,9, 1,9,1,9, де 7-е значення є винятковим АБО взагалі серією, яка має міцну автопроективну структуру якоїсь невідомої форми АБО серію, що має 1,2,1,1,1,2,1,1,1, 2,1,20,1,2,1,2,1,1,1,2,1,2,2,19,2,1,1,2,1,2,1,1,2,2, 2,21 щомісяця серія, яка не має імпульсів, АЛЕ має не визначену СЕЗОНУЛЬНУ ДУМУ. Виявляючи 12,24 і 36 як БАД, було б викидати дитину разом з водою.
IrishStat

Все, що ви говорите, є правдивим, тобто ви надавали пов'язку, яка допомогла б отримати рану, якби 1) серія була нерухомою, що передбачає, серед іншого, ніяких зрушень рівня, жодних тенденцій та інших, немає структури ARIMA; та 2) серія повинна бути несезонною або раніше десезонізованою; . Як мені здається, такі припущення навряд чи дотримуються, і користувачі ігнорують ваші застереження, коли вони намагаються боротися з тимчасовими рядами, які мають "недосконалості". Мої коментарі тут не мають бути аргументативними, а досить висвітлюючими (для деяких!)
IrishStat

@IrishStat ОП оновив своє запитання і заявив, що сезонності немає.
user603

Ти Крістоф ?.
IrishStat

2

Існує значна література про надійні моделі часових рядів. Мартін та Йохай є одними з головних учасників. Їх робота сягає 1980-х років. Я робив певну роботу над виявленням людей, що перебувають у часових рядах, але Мартін був дійсно одним із численних учасників як виявлення випускників, так і оцінки параметрів у присутності залишків або залишків із великим хвостом у часових рядах.

  • Ось посилання на статтю опитування з цієї теми зі списком понад 100 посилань. Сюди входить навіть папір JASA 1982 року.
  • Ось докторська дисертація з 2000 року (pdf), яка висвітлює теорію, методи та застосування надійного аналізу часових рядів і включає приємну бібліографію.
  • Ось посилання на програмне забезпечення, яке включає деякі надійні інструменти часових рядів.

Яке програмне забезпечення використовується для надійного прогнозування? Чи підходить він для одноманітних серій?
Ентоні

@Anthony Це дуже гарне питання. Я не робив жодного надійного моделювання часових рядів. выкапаний Мартін заснував компанію під назвою Insightful (вони насправді мали кілька названих каналів), що продала SPlus. Я майже впевнений, що він включив надійні метиди в програмне забезпечення SPlus. Напевно, зараз існує версія в Р. Я перевірю її. Ось стаття у Вікіпедії, включаючи історію SPlus. en.wikipedia.org/wiki/S-PLUS
Michael R. Chernick

@Anthony Ось джерело, надане Роб Хайндманом про те, що доступно в аналізі часових рядів R. Він включає те, що є в CRAN, і охоплює широкий спектр методів, включаючи надійну фільтрацію. cran.r-project.org/web/views/TimeSeries.html
Майкл Р. Черник

2

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

якщо це для прогнозування, то вам доведеться задати собі два запитання: чи відбудуться ці переживачі знову? якщо вони будуть, чи повинен я їх рахувати?

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

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

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