Алгоритм определения интервалов в моих данных - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть данные, которые касаются месяцев производства и относительной частоты. На оси х месяцы производства, а на оси у относительная частота. Теперь вы можете увидеть увеличение и уменьшение этого курса. Моя цель - поставить эти подъемы и спуски в промежутке. Есть несколько процедур, которые связаны с определением этих отклонений. Я уже имел дело с ними и реализовал алгоритм «Скалолазание». Я получаю интервалы, но они не велики. Теперь я хотел расширить этот алгоритм, чтобы получить лучшие интервалы. Я уже пытался использовать некоторые пакеты, такие как strucchange() или breakpoints(), но они всегда дают мне ошибки. Поскольку я не информатик и не математик, было бы здорово получить совет!

Мой код для восхождения на гору:

hillclimbing1 <- function(month,amount)

{
  res <- c()

  val <- amount[1]

  j <- 1

  for (i in 1:length(month))

  {
    if(abs(amount[i] - val) > abs((val*0.3)))

    {
      val <- amount[i]

      res[j] <- i - 0.5

      j <- j +1

    }

  }

  return(res)

}

Мой фрейм данных выглядит так:

   month      amount
 2012-07-01 0.0000000
 2012-08-01 1.1111111
 2012-09-01 0.2985075
 2012-10-01 0.5141388
 2012-11-01 0.0000000
 2012-12-01 0.0000000
 2013-01-01 0.6849315
 2013-02-01 1.9762846
 2013-03-01 1.1799410
 2013-04-01 0.2881844
 2013-05-01 0.2617801
 2013-06-01 1.2285012
 2013-07-01 1.2285012
 2013-08-01 1.3539652
 2013-09-01 1.6694491
 2013-10-01 2.4000000
 2013-11-01 2.5065963
 2013-12-01 2.4869110
 2014-01-01 2.0497804
 2014-02-01 1.4044944
 2014-03-01 3.9443155
 2014-04-01 2.9748284
 2014-05-01 3.0623020
 2014-06-01 2.2044088
 2014-07-01 2.9686175
 2014-08-01 3.1304348
 2014-09-01 3.9028621
 2014-10-01 2.3942538
 2014-11-01 2.9021559
 2014-12-01 4.6280992
 2015-01-01 3.8616251
 2015-02-01 3.0252101
 2015-03-01 3.7565740
 2015-04-01 4.0977714 

enter image description here

EDIT: После использования метода min / max я получаю следующий график:

enter image description here

Есть ли способ избавиться от интервала № 2 и 3?

...