Як охарактеризувати різкі зміни?


13

Це питання може бути надто елементарним. Для тимчасової тенденції даних я хотів би з’ясувати, де відбувається «різка» зміна. Наприклад, на першому малюнку, показаному нижче, я хотів би з’ясувати точку зміни за допомогою якогось статистичного методу. І я хотів би застосувати такий метод в деяких інших даних, точка зміни яких не очевидна (як 2-а фігура). Отже, чи є загальний метод для такої мети?

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

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


3
Термін "переломний момент" має особливе значення, яке, на мою думку, не стосується раптових зрушень рівня (вгору чи вниз). Ви також використовуєте фразу "точка зміни", і я думаю, що це, мабуть, кращий вибір. Не вважайте, що це занадто просто; навіть основні питання вітаються без необхідності вибачення, і це питання не є віддаленим основним.
Glen_b -Встановити Моніку

Дякую. Я змінив «поворотну точку» на «точку зміни» у питанні.
користувач2230101

Відповіді:


11

Якщо спостереження за вашими даними часового ряду співвідносяться з попередніми спостереженнями, то документ Chen and Liu (1993) може вас зацікавити. Він описує метод виявлення зрушень рівня та тимчасових змін у рамках моделей авторегресивних ковзаючих середніх часових рядів.[1]

[1]: Чень, С. і Лю, Л.М. (1993),
"Спільна оцінка модельних параметрів та зовнішніх ефектів у часових рядах",
Журнал Американської статистичної асоціації , 88 : 421, 284-297


+1 Я намагався (але не зміг) запам'ятати достатньо про цей документ, щоб знайти його. Це хороша довідка.
Glen_b -Встановити Моніку

6

Ця проблема в статистиці називається (універсаріатним) тимчасовим виявленням подій. Найпростіша ідея - використовувати ковзну середню і стандартне відхилення. Будь-яке читання, яке є "поза" 3-ти стандартними відхиленнями (правило), вважається "подією". Звичайно, є більш вдосконалені моделі, які використовують HMM або Regression. Ось вступний огляд поля .


5
Це єдиний загальнодоступний доступ у всій Мережі, який містить фразу "Універсальне тимчасове виявлення подій"! Яке джерело для цього терміну?
whuber

Вибачте, якщо це було заплутано. Виявлення подій є більш поширеним терміном, а Temporal іноді використовується окремо. Унівариант не використовується зазвичай, оскільки підходи, як правило, багатоваріантні, але це його особливий випадок.
користувач1669710

1
редагував відповідь, щоб включити ваш коментар @whuber
user1669710

@ ser1669710 Дякую Це те, що я шукаю. Здається, що ковзний середній не може вирішити мою проблему. Мені потрібно подивитися на більш складну модель.
користувач2230101

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

1

Ji={0х<хi1ххi
х1<х2<<хмJiJаpriлJгеcембеrхi

J1J2х1х2


1
PS - @ user1669710, і я опублікував відповіді одночасно. Я проголосував за це, тому що це, очевидно, краще досліджено. Але я залишаю це тут, оскільки це альтернатива, яка працює і є простою у виконанні.
Russ Lenth

1
Оскільки він використовує ступінчату регресію і використовує багато кандидатних змінних, ця процедура виглядає підозрілою. Де його вивчали та які властивості він має? Як воно порівнюється з іншими методами зміни точки ?
whuber

@whuber, точно моя думка. Тому я проголосував за іншу відповідь. Він не буде надто вигідним, якщо у вас дуже детальний набір значень точок зміни. І це навіть не може вигідно порівняти це з іншим. Я просто викладаю це як спеціальний метод, і, думаю, я представив його як такий. Але я думаю, такий метод, як цей, обіцяє хороший спосіб отримати вихідні значення для нелінійного методу.
Russ Lenth

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

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

1

Існує пов'язана проблема поділу ряду або послідовності на заклинання з ідеально постійними значеннями. Див. Як я можу групувати числові дані у природно утворюючі "дужки"? (наприклад, дохід)

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

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


1

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

Якщо ви Rкористувач, то я рекомендую changepointпакет для змін середнього рівня, а strucchangeпакет - для зміни регресії. Якщо ви хочете бути баєсами, тоді і bcpпакет хороший.

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


1
ОП визначила два приклади, один з яких я б назвав кроком, а другий - пандусом, хоча завжди є поле для суперечок про слова. Дивіться також мою відповідь тут. Як ці методи справляються з пандусами? Чи є у них мовчазна чи явна модель ступінчастих змін?
Нік Кокс

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

1

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

Ось огляд пакетів змінних точок із плюсами та мінусами та відпрацьованими прикладами. Якщо ви знаєте кількість точок зміни апріорі, ознайомтеся з mcpпакетом. Спочатку давайте змоделюємо дані:

df = data.frame(x = seq(1, 12, by = 0.1))
df$y = c(rnorm(21, 0, 5), rnorm(80, 180, 5), rnorm(10, 20, 5))

Для вашої першої проблеми - це три сегменти, які відповідають лише перехопленню:

model = list(
  y ~ 1,  # Intercept
  ~ 1,  # etc...
  ~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")

Ми можемо побудувати отриману форму:

plot(fit)

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

Тут точки зміни дуже чітко визначені (вузькі). Давайте підведемо підсумки, щоб побачити їхні висновки ( cp_1і cp_2):

summary(fit)

Family: gaussian(link = 'identity')
Iterations: 9000 from 3 chains.
Segments:
  1: y ~ 1
  2: y ~ 1 ~ 1
  3: y ~ 1 ~ 1

Population-level parameters:
    name   mean lower upper Rhat n.eff
    cp_1   3.05   3.0   3.1    1  6445
    cp_2  11.05  11.0  11.1    1  6401
   int_1   0.14  -1.9   2.1    1  5979
   int_2 179.86 178.8 180.9    1  6659
   int_3  22.76  19.8  25.5    1  5906
 sigma_1   4.68   4.1   5.3    1  5282

Ви можете робити набагато складніші моделі mcp, включаючи моделювання авторегресії N-го порядку (корисно для часових рядів) тощо. Відмова: Я розробник mcp.

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