У меня есть следующие данные, представляющие значения за 12-месячный период:
1. 0
2. 253
3. 168
4. 323
5. 556
6. 470
7. 225
8. 445
9. 98
10. 114
11. 381
12. 187
Как я могу сгладить эту линию вперед?
Мне нужно, чтобы при последовательном просмотре списка любое значение, превышающее среднее (268), было равномерно распределено между оставшимися месяцами, но таким образом, чтобы получалась как можно более гладкая линия. Мне нужно пройти с января по декабрь по порядку. Заглядывая вперед, я хочу сместить любые излишки (пики) в предстоящие месяцы, чтобы распределение было как можно более равномерным (таким, чтобы сначала заполнялись впадины). Таким образом, проблема состоит в том, чтобы в каждой точке определить, каков «избыток» для этого месяца, и, во-вторых, как распределить его между еще предстоящими месяцами.
я использовал
p = find(Diff>0);
n = find(Diff<=0);
POS = Diff(p,1);
NEG = Diff(n,1)
чтобы увидеть, где существует дефицит / превышение по сравнению со средним значением, но не знаете, как построить код, который будет перераспределять вперед, сначала выделяя «впадины» распределения. Аналогия в том, что эти числа представляют количество урожая, и я должен раздать урожай населению. Как мне перераспределить поступающий урожай в течение года, чтобы свести к минимуму избыточное/недостаточное предложение? Я, очевидно, не могу отдать что-либо, что я не получил в конкретном месяце, если я не сохранил какой-то урожай за предыдущие месяцы. например Я начинаю в январе и вижу, что не могу ничего дать месяцам с февраля по декабрь, поэтому значение для января равно 0. В феврале у меня 253 — мне скорректировать 253 вниз или выдать все? Если да, то насколько? и куда мне перераспределить излишки, которые я обрезаю с марта по декабрь? И т.д. и т.п. Как мне это сделать, чтобы получить как можно более гладкое (равномерное) распределение? Для любого месяца новое значение, присвоенное этому месяцу, не может превышать текущее значение. Сумма за 12 месяцев должна быть равна до и после сглаживания. В качестве первой позиции январь всегда будет равен 0.
smooth
. - person Rody Oldenhuis   schedule 21.02.2014