gifts2017

Прогноз продаж (что можно выжать из метода наименьших квадратов)

Опубликовал Михаил (Михаил Козлов) в раздел Отчеты - Управленческие

2 параметрических метода прогнозирования продаж: тренд (по произвольному набору функций) и линейная рекурентная формула (ЛРФ) с возможностью сглаживания фактичеких данных методами: скользящая средняя, экспоненциальное, методом Хольта-Винтерса и фильтра Ходрика-Прескотта.

Прогнозируются объемы продаж по историческим данным.

Вычисляется 2 вида прогноза:

- тренд: Y(i)=SUMM(Ak*Fk(i)), где Fk - произвольная функция, коэффициенты Ak ищутся методом наименьших квадратов (МНК). Стандартно набор функций: полиномы, синусы/косинусы, эспоненты., но можно добавлять и свои. Функция должна иметь параметр x - номер подпериода анализа, может использовать переменные контекста (в частности "константу" Pi);

- ЛРФ: Y(i)=SUMM(Ak*Y(i-k)), коэффициенты Ak ищутся МНК. Порядок ЛРФ (число членов в сумме) определяется по минимуму дисперсии на анализируемом периоде простым перебором.

Для прогноза можно использовать сглаженные данные. Реализованы методы сглаживания: скользящее среднее, экспоненциальное, метод Хольта-Винтерса, фильтр Ходрика-Прескотта.

Графическое представление: аппроксимации, динамики остатков в прогнозном периоде, фактических и сглаженных данных.

В качестве прогнозных значений можно выбирать: прогноз по тренду, прогноз по ЛРФ, прогноз по методу, имеющему меньшую дисперсию, прогноз по произвольной формуле, например, расход.Тренд+2*товар.ДисперсияТренда - прогнозное значение вычисляется как значение тренда плюс 2 его дисперсии.

Вычисляется показатель достаточности текущих запасов: достаточно, маловато, дефицит.

Дефицит: если не хватает на период поставки.

Достаточно: если хватает на период доставки + товарозапас после поставки с учетом неснижаемого остатка.

Маловато - в остальных случаях.

 

Код открыт.

Скачать файлы

Наименование Файл Версия Размер
Обработка вычисления прогноза 709
.epf 62,28Kb
09.04.13
709
.epf 62,28Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Ожерельев (Поручик) 15.09.10 20:27
Мощно. Сейчас пробую и видно не дождусь результата. :D
2. Николай Шилкин (RayCon) 15.09.10 21:00
Молодец! Побольше бы таких концептуальных решений!
3. Сергей Ожерельев (Поручик) 15.09.10 21:28
Я бы добавил обработку прерывания. Так и не дождался результата на группе 1.500 позиций.
Михаил Козлов; +1 Ответить 1
4. VVV (V_V_V) 15.09.10 22:29
Шоб я сдох... Великолепная работа!
Правда ничего не понял... :D
Если б описание методики поподробнее увидеть...
5. Сергей (Che) Коцюра (CheBurator) 15.09.10 23:19
угумс.. и подтверждение гипотезы что анализируемые продажи - случайный процесс (?).
каковы минимальные длины выборок?
как работает на малой статистике?
где описание методики? - сделать качественное - и продавать за деньги!!!
.
вопрос сообществу: вы много знаете своих клиентов/людей которые будут использовать данный продукт осознанно, а не в качестве чернйо коробочки?
6. Сергей Ожерельев (Поручик) 16.09.10 00:51
(4) Присоединяюсь. Честно прогнал по немалой базе, нихрена не понял, хоть и изучал в своё время упомянутые умные буквы.

(5) ответ: знаю по меньшей мере одного.
7. Сергей (Che) Коцюра (CheBurator) 16.09.10 01:04
(6) по (5) - одного из скольки?
8. Сергей Ожерельев (Поручик) 16.09.10 01:13
Примерно десяток. Это те, кто активно работает с торговлей.
9. Юрий Гураль (yurigural) 16.09.10 07:19
{Форма.Форма(501)}: Индекс находится за границами массива
знч = табТМЦ[индексСтроки-индексВеса].Расход;



    ДЛЯ каждого дп ИЗ мДА Цикл
        стр = СтрокаТабТМЦ(табТМЦ, дп);        
        стр.ЛРФ = 0;    
        индексСтроки = табТМЦ.Индекс(стр);
        индексВеса = 0; 
        ДЛЯ каждого вес ИЗ весаФормулы Цикл
            индексВеса = индексВеса+1;
            знч = табТМЦ[индексСтроки-индексВеса].Расход;
            стр.ЛРФ = стр.ЛРФ+вес[0]*знч;    
        КонецЦикла;
...
...Показать Скрыть


индексСтроки = 0
индексВеса = 1

не доработка однако.
10. Михаил (Mikeware) 16.09.10 07:23
Интересно. Делал аналогичное, но "не взлетело" из-за вариативности поставок (т.е. много аналогов, при поставках заменяется товар другим товаром в пределах одной группы. Причем группы явно не формализованы )
11. AdApter (adapter) 16.09.10 09:25
(6) Думаю что тому одному из многих хватит и стандартной надстройки в Ексель ;)
12. Михаил (Михаил Козлов) 16.09.10 10:45
(3) 1500 много, конечно. Обработку прерывания поставить можно.
(9) Было такое при периодичности Декада, вроде исправил (в Вашем случае может и не в этом дело).
По поводу практической пользы. Я тоже сильно сомневаюсь, что есть реальный интерес. К тому же, можно выгрузить данные и пользоваться пакетами технического анализа. Хотя, по-моему, и от них будет не много прока.
Мне понравился метод "гусеница" (SSA) (http://www.gistatgroup.com/gus/), хотел сделать его, скачал демку, погонял на реальных данных (несколько десятков рядов). Совпадения на анализируемом периоде можно добиться изумительного, а вот в части прогноза - 50/50.
Цель публикации не столько предложение пользоваться этими методами, сколько дать готовый "инструмент" для выяснения: есть ли смысл ими пользоваться.
13. VVV (V_V_V) 16.09.10 11:53
(12) Просто дать "инструмент" мало - нужно еще уметь им пользоваться или хотя бы понимать принцип его действия. Вот с этим будет проблема у многих...
Совпадения на анализируемом периоде можно добиться изумительного
Имеется ввиду, что метод восстанавливает с большой точностью пропущенные значения? И при этом слаб на прогноз?
14. Михаил (Михаил Козлов) 16.09.10 12:33
(13) Имеется в виду совпадение фактических данных и данных аппроксимации.
В части прогноза по просчитанным примерам совпадение прогноза с фактическими данными было не очень. Да Вы скачайте демку. Идея метода: анализ матрицы автокорреляции и выделение в ней "главных" компонент (закономерностей). Фактические данные можно грузить из Экселя.
15. Сергей (ildarovich) 16.09.10 15:58
Поставил плюс, хотя считаю, что прогнозирование продаж по историческим данным - не результативный способ. Дело в том, что продажи прошлых периодов - не такие уж значимые факторы по сравнению с известными (и, возможно, имеющимися в БД) параметрами воронки продаж: затратами на рекламу, рекламным покрытием, числом "интересов", числом принятых заказов и т.п. Потом есть цена, день недели, сезон, объем запасов покупателей и другие факторы. Ради интереса попробуйте спрогнозировать тем же методом погоду, курс доллара или акций. Думаю, точность прогноза по тем же причинам будет похожей (низкой).
Без знания "физики", то есть без достоверной модели зависимостей, определение коэффициентов этих зависимостей не имеет смысла.
Арчибальд; Stoly; Поручик; +3 Ответить 1
16. Александр Рытов (Арчибальд) 17.09.10 09:48
(15) Согласен, что прогноз "от истории" будет слабо коррелировать с последующим фактом. Тем не менее, заслуживает всяческого внимания и развития принципиальное осознание необходимости математических методов в бизнесе. Когда-то на этом поприще мы были "впререди планеты всей" - имеется в виду Василий Леонтьев. Теперь не то уж...
mikmaster; +1 Ответить
17. Илья Аверьянов (Sun_AIG) 18.09.10 21:31
Круто, у меня от прочтения описания уже мозг вскипел :) попробую на базе. Однознчано ПЛЮС
18. Игорь Войнов (igyo) 27.09.10 14:56
Тут надо еще книжку приложить, чтоб понять как этим делом пользоваться! Очень умно! +
19. Андрей (Arven) 10.11.10 15:27
Глючит однако, еще глюк не выкупил попробую подправить и без бутылки с функционалом тут не разобраться, хотелось бы хелпа. :)
20. Александр Шишкин (Шёпот теней) 10.11.10 15:48
... прогнозирование на основании статистических данных ... делается не для расчёта "будущих продаж" а для расчёта вероятности такого события и для дополнительных расчётов ...

... сезонность ... эластичность ... к тому же не совпадение расчетной величины с реальной - говорит нам о прохождении экстремума ... изменении рынка и т.д. и т.п. ...

после экстремумов - можно рассчитывать длинну и пропорции трендов, например ... а их изменения, в свою очередь, говорят о динамике ожиданий ... равновесности рынка ... и куче ещё чего ...

один параметр - ничего не значит ... только совокупность ... изменения нескольких парметров - уже говорит о многом ... уже диагноз ... !

... вот ...

п.с. тенденции важнее абсолютных значений ... ! ... ОДНОЗНАЧНО ... !

...
21. Александр Кирилюк (ArtfulCrom) 15.11.10 23:52
(20) да уж... видеть сквозь цифры тенденции - это и есть тот инструмент который позволяет сколотить состояния. Обычно те кто умеют - инструменты используют самые простые. А ТЕ КТО НЕ УМЕЮТ - ИМ даже такие мега-перфораторы не помогают...

но мы уже как то об этом говорили :)
22. Александр Шишкин (Шёпот теней) 17.11.10 08:10
(21) ... ))) ...

... хм ... к сожалению есть ещё понятие "конкуренция" и "конкурентная среда" ... отсутствие таких полей в области "экономическоая деятельность" приводит к тому , что устраняется и сам механизм принятие "экономических решений" и сама - "экономическая деятельность" ...

... поэтому на поговорку: "если такой умный, то почему такой бедный" есть ответ - "сам дурак" ...

... вот ...
23. Александр Кирилюк (ArtfulCrom) 17.11.10 10:55
(22) ну не хочется поднимать вопрос о курице и яйце, но все таки. Что первично в успешном бизнесе? Мозг или инструмент принятия решений? Вот в моей личной практике - я обычно приходил к людям которые и так на "чутье" всегда принимали более/менее точные решение. И когда ты им рассказывал про эффективность, оборачиваемость и прочий АВСХУЗ и они это понимали, давал инструмент.... - вот тогда бизнес взлетал.

А бывает придешь... втираешь-втираешь про оптимизацию... на тебя смотрят... типа ... ты чё? учить нас вздумал? кхе... и катятся по накатанной схеме уже лет 10 ничего не меняя и тоже ведь не дохнут гады.. хотя внутри нифига такого нет :)
24. Александр Шишкин (Шёпот теней) 17.11.10 11:41
(22) ... ))) ...

... ммм ... хм ... ? ... Вы спросили или Вы ответили ... ? ...!

... вот ...
25. Александр Шишкин (Шёпот теней) 17.11.10 11:50
(22) ... принимать "на чутье" ... это профессионализмь выше среднего ...

... но любая автоматизация - бЬёт любую попытку "массового" профессионалиЬма ...
... "кадры" решают ВСЁ ...
... излишняя автоматизация "убивает" передовые технологии ...
... излишняя "стандартизация" есть Погибель ...

... вопрос "золотой середины" ... в исскустве существует "золотое сечение" кто сказал что исскуство не повторяет жизнь ... ? ... ! ...

... если НЕТ течения - то получается болото ...

... уффф ...

п.с. так или иначе "сегодня" выгоднее банально-воровать чем индуктивно-производить ... следовательно система состоит из уравнений с одним неизвестным - т.е. имеет ... однозначные ур"о/а"внения ... т.е., по факту не является системой уравнений а является набором "простых" уравнений ...

... такГДЕжеКОНКУРЕНЦИЯвот ...

п.с.2. глубина и ширина "ВЫ"ставляемых обществом или производством задачЪ - требуют соотвествущих инструментов и методов а так же требуют определённую категорию выполняющих ... выводы соответствующие ...

п.с.3 ... от военных пришло (или наоборот ... ) - чем больше ложных целей выдал противнику - тем эффективнее и эффектнее победа ... манёвр - самое эффективное оружие ... гыыы ... кажется НИоЧЁМ - но на самом деле экономика - есть оружие и в ней манёвр как и централизация - сверхВажное оружие

... вотМИКРОскопВОТ ...

...
26. Vera CH (Vanillavera) 17.02.11 14:35
Мхм...Михаил, разве метод Холта-Винтерса не предполагает сглаживание с тремя параметрами?
Еще должны учитываться сезонные колебания?
27. Антон Богатырев (anreko) 27.10.11 17:38
Да, математика это сила.
Вещь стоящая, но для склада сложность не нужна.
Нужно учитывать стоимость хранения, сезонную зависимость покупки.
А так МНК - это конечно тема.
Очень надеюсь на развитие со складским уклоном, там статистику ABC прикрутить и взлетит.
Также сглаживания в складском учете не очень интересно, лучше как раз скачки анализировать, а то далеко от реальности получится.