У меня есть данные, которые касаются месяцев производства и относительной частоты. На оси х месяцы производства, а на оси у относительная частота. Теперь вы можете увидеть увеличение и уменьшение этого курса. Моя цель - поставить эти подъемы и спуски в промежутке. Есть несколько процедур, которые связаны с определением этих отклонений. Я уже имел дело с ними и реализовал алгоритм «Скалолазание». Я получаю интервалы, но они не велики. Теперь я хотел расширить этот алгоритм, чтобы получить лучшие интервалы. Я уже пытался использовать некоторые пакеты, такие как 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
EDIT:
После использования метода min / max я получаю следующий график:
Есть ли способ избавиться от интервала № 2 и 3?