Обнаружение нескольких точек изменения в среднем и дисперсии с использованием пакета точек изменения R - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь определить точки изменения в дневных временных рядах цен на акции, используя пакет "точка изменения".Пакет содержит различные методы для определения точек изменения, такие как «Двоичная сегментация», «Сегментация окрестностей» и «Сокращенное точное линейное время (PELT)», что хорошо для проверки надежности.

Данные, которые я имеюИспользование имеет 4170 записей и начинается с 2000-01-03

Prices.d <- ts(EM_indices[, 2], start = c(2000,01,03), freq = 365)

Сначала я попытался использовать метод PELT для определения точек изменения в среднем с помощью следующего кода:

> cpt.mean(Prices.d, pen.value = c(4,1500),penalty = "CROPS",method = "PELT")

Результаты должны указывать расположение точек изменения, но об этом не сообщалось, вот что я получил в ответах:

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

Вы можете увидеть, какрасположение точек изменения пусто, поэтому откорректируйте код, добавив аргументы класса и оценки параметров:

 Change <- cpt.mean(Prices.d, pen.value = c(4,1500),penalty = "CROPS",method = "PELT", class=TRUE, param.estimates=TRUE)

Тем не менее, местоположения точек изменения пока не сообщаются в результатах, что я должен сделать, чтобы решить эту проблемупроблема?

1 Ответ

0 голосов
/ 14 февраля 2019

Когда для штрафов установлено значение 'pun = "CROPS"', тогда cpt.mean () возвращает диапазон сегментаций. Вот почему вы не видите местоположения точек изменения на прикрепленном вами изображении. Чтобы получить к ним доступ, вы можете вызвать атрибуты (Изменить) $ cpts.full. Это вернет матрицу местоположений точек изменения.

В качестве альтернативы, если вы установите 'class = F', вы можете получить сегментации, используя Change $ changepoints.

...