У меня есть данные, касающиеся месяцев производства и относительной частоты. По оси абсцисс - месяцы производства, а по оси ординат - относительная частота. Теперь вы можете видеть увеличение и уменьшение этого курса. Моя цель - сделать эти подъемы и спуски интервалом. Есть несколько процедур, которые связаны с определением этих отклонений. Я уже разобрался с ними и реализовал алгоритм «Восхождение на холм». У меня есть интервалы, но они не очень хорошие. Теперь я хотел расширить этот алгоритм, чтобы получить лучшие интервалы. Я уже пробовал использовать некоторые пакеты, такие как 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
Обновлено: После использования метода min / max я получаю следующий график:
Есть ли способ избавиться от интервала нет. 2 и 3?
Я думаю, вы ищете локальные максимумы и минимумы. В этом случае может помочь этот вопрос SO + ответ: stackoverflow.com/questions/6836409/…
См. Также: stackoverflow.com/questions/34205515/…
@krads нахождение min / max пока идет неплохо, но как мне избавиться от интервалов 2 и 3? Есть ли способ? Пожалуйста, посмотрите мое редактирование с минимальным максимальным графиком
опубликованные вами данные не очень похожи на ваш первый сюжет; может быть, другие методы делают неожиданные вещи, потому что им говорят работать с «неправильным» фреймом данных?
Возможный дубликат Нахождение локальных максимумов и минимумов