Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах.
Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.
Сразу поясню.... вышку я неизучал, так уж сложилось... алгоритм будет реализован на языке SQL , т.к. искомое количество необходимо просчитывать для каждого товара в магазине.
Заранее благодарен.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re: Определить вероятное количество продаж в наступающем пер
Скорее не вычислить, а оценить (ибо если бы будущее можно было бы вычислить, то жить стало бы неинтересно ).
Может, имеет смысл замутить регрессию с сезонной составляющей...
Re[2]: Определить вероятное количество продаж в наступающем
Здравствуйте, Grey2002, Вы писали:
G>Скорее не вычислить, а оценить (ибо если бы будущее можно было бы вычислить, то жить стало бы неинтересно ). G>Может, имеет смысл замутить регрессию с сезонной составляющей...
Необходимо как раз вычислить.... и именно на основании указанных данных, если это в принципе возможно. А сезонные составляющие, популярность товара, расположение магазина и прочие факторы в данном случае неучитываются.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[3]: Определить вероятное количество продаж в наступающем
Я надеюсь, мы говорим все-таки о вероятностях и вычисляем наиболее вероятное количество продаж. На продажи влиет много факторов, причем их количество всегда разное — тогда для этого существует номальный закон распределения вероятности, от которого необходимо брать матожидание (как раз наиболее вероятное количество продаж) и дисперсию — чем она больше, тем больше вероятность ошибки. Все же рекомендую попытаться воспользоваться статистикой, а показатели считать по соответствующим формулам для несмещенных оценок. Другой вариант предложить трудно — в принципе, можно хорошо натренированную (на большом хронометраже данных о продажах) нейросеть на ваши данные натравить.
Re[4]: Определить вероятное количество продаж в наступающем
Здравствуйте, Grey2002, Вы писали:
G>Здравствуйте, mvg_first, Вы писали.
G>Я надеюсь, мы говорим все-таки о вероятностях и вычисляем наиболее вероятное количество продаж. На продажи влиет много факторов, причем их количество всегда разное — тогда для этого существует номальный закон распределения вероятности, от которого необходимо брать матожидание (как раз наиболее вероятное количество продаж) и дисперсию — чем она больше, тем больше вероятность ошибки. Все же рекомендую попытаться воспользоваться статистикой, а показатели считать по соответствующим формулам для несмещенных оценок. Другой вариант предложить трудно — в принципе, можно хорошо натренированную (на большом хронометраже данных о продажах) нейросеть на ваши данные натравить.
Вот! Это уже ближе к телу.... на данном этапе предсказывать с максимально возможной точностью необходимости нет (ввиду сложности реализации конечно).
Теперь бы мне малообразованному в теории вероятностей (всего-лишь среднетехническое, к сожалению не изучал эту теорию вообще).... да и в статистике... разобраться во всем вышеперечисленном. Если не сложно можно указать на ресурсы где это расписано подробно или набросать хотя бы примерную формулу которую можно использовать в данной ситуации...
Еще раз сасибо за помощь уже оказанную и грядующую!!!
Надеюсь на дальнейшие рекомендации по теме.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[5]: Определить вероятное количество продаж в наступающем
Итак, допустим, есть некоторый хронометраж событий, которые можно выразить числом, которое обозначим t(i) (i — пусть будет номером интервала), тогда если величина t(i) распределена нормально, то в этом случае несмещенная (по сути — наиболее точная) оценка математического ожидания равна простому среднему по тому хронометражу событий, который имеется на данный момент, то есть:
M[t] = (t(1) + t(2) + t(3) + ... + t(n)) / n
В вашем случае для того, чтобы не считать всегда все заново, можно поступить так:
Пусть сумма (t(1) + t(2) + t(3) + ... + t(n)) и число n хранится где-нибудь в БД, пусть наступает событие t(n+1), тогда
М[t] = (t(1) + t(2) + t(3) + ... + t(n) + t(n+1)) / (n + 1) = ((t(1) + t(2) + t(3) + ... + t(n)) + t(n+1)) / (n+1).
Так как (t(1) + t(2) + t(3) + ... + t(n)) уже посчитано, то в каждом случае скорость расчетов будет одинаковой и не будет зависеть от того, какое количество продаж уже было совершено, на место
(t(1) + t(2) + t(3) + ... + t(n)) переписываем t(1) + t(2) + t(3) + ... + t(n) + t(n+1), на место n пишем n+1 и все.
Дисперсия считается сложнее: D[t] = 1/(n-1) * ((t(1) — M[t])^2 + (t(2) — M[t])^2 + ... + (t(n) — M[t])^2) в принципе, ее можно и не считать.
Математическое ожидание можно считать не по всему хронометражу, а по n последним измерениям, как вы и предлагали в начале этой ветки. Тогда расчетные формулы не меняются, а поскольку n не увеличивается, то каждый раз можно считать все впрямую.
Для вашего случая при простой оценке в качестве события разумно было бы взять средние продажи в день.
Пусть есть 5 периодов, продажи будем обозначать П1, П2, П3, П4, П5. Длину периодов (в днях, например) — T1, T2, T3, T4, Т5.
Здравствуйте, Grey2002, Вы писали:
G>Для вашего случая при простой оценке в качестве события разумно было бы взять средние продажи в день. G>Пусть есть 5 периодов, продажи будем обозначать П1, П2, П3, П4, П5. Длину периодов (в днях, например) — T1, T2, T3, T4, Т5. G>Тогда: G>Оценка(П5) = ((П1/Т1 + П2/Т2 + П3/Т3 + П4/Т4) / 4) * Т5
Если расчет идет по пяти предыдущим значениям, то гораздо лучше по-моему будет аппроксимировать величину полиномом, хотя бы второй степени, чтобы учесть тренд.
Re: Определить вероятное количество продаж в наступающем пер
Здравствуйте, mvg_first, Вы писали:
_>Доброго времени суток, уважаемые.
_>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах. _>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.
А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический.
Re[2]: Определить вероятное количество продаж в наступающем
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, mvg_first, Вы писали:
_>>Доброго времени суток, уважаемые.
_>>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах. _>>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.
S>А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический.
Я всего лишь пишу отетик для менеджера по закупкам который будет использовать посчитанные мной данные как дополнительную информацию.... и понятно что небудет тупо руководствоваться только этими данными.... поэтому задача стоит достаточно таки просто вычислить наиболее вероятное количество продаж в следующем периоде. И ничего больше....
Ну если побочным эффектом реализации данных вычислений окажется качественная оценка этого прогноза — это будет только приветствоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[6]: Определить вероятное количество продаж в наступающем
Здравствуйте, Grey2002, Вы писали:
G>Здравствуйте, mvg_first, Вы писали.
G>Итак, допустим, есть некоторый хронометраж событий, которые можно выразить числом, которое обозначим t(i) (i — пусть будет номером интервала), тогда если величина t(i) распределена нормально, то в этом случае несмещенная (по сути — наиболее точная) оценка математического ожидания равна простому среднему по тому хронометражу событий, который имеется на данный момент, то есть:
G>M[t] = (t(1) + t(2) + t(3) + ... + t(n)) / n
Как определить нормально ли распределена величина t(i) (я так понял в моем случае это как раз количество продаж товара в один период времени)
G>В вашем случае для того, чтобы не считать всегда все заново, можно поступить так: G>Пусть сумма (t(1) + t(2) + t(3) + ... + t(n)) и число n хранится где-нибудь в БД, пусть наступает событие t(n+1), тогда
G>М[t] = (t(1) + t(2) + t(3) + ... + t(n) + t(n+1)) / (n + 1) = ((t(1) + t(2) + t(3) + ... + t(n)) + t(n+1)) / (n+1). G>Так как (t(1) + t(2) + t(3) + ... + t(n)) уже посчитано, то в каждом случае скорость расчетов будет одинаковой и не будет зависеть от того, какое количество продаж уже было совершено, на место G>(t(1) + t(2) + t(3) + ... + t(n)) переписываем t(1) + t(2) + t(3) + ... + t(n) + t(n+1), на место n пишем n+1 и все.
Вот тут я запутался совсем
G>Дисперсия считается сложнее: D[t] = 1/(n-1) * ((t(1) — M[t])^2 + (t(2) — M[t])^2 + ... + (t(n) — M[t])^2) в принципе, ее можно и не считать.
А тут еще больше.... нужно что нибудь читать.... особенно наверно литературу способную объянсить почему это все может помочь. G>Математическое ожидание можно считать не по всему хронометражу, а по n последним измерениям, как вы и предлагали в начале этой ветки. Тогда расчетные формулы не меняются, а поскольку n не увеличивается, то каждый раз можно считать все впрямую.
G>Для вашего случая при простой оценке в качестве события разумно было бы взять средние продажи в день. G>Пусть есть 5 периодов, продажи будем обозначать П1, П2, П3, П4, П5. Длину периодов (в днях, например) — T1, T2, T3, T4, Т5.
G>Тогда:
G>Оценка(П5) = ((П1/Т1 + П2/Т2 + П3/Т3 + П4/Т4) / 4) * Т5
Т.е. в моем случае все Т будут одинакавыми (я принял что все периоды равной длинны или неделя или месяц или день или декада — но все они будут равны). Правильно я понял?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[7]: Определить вероятное количество продаж в наступающем
Здравствуйте, mvg_first, Вы писали:
_>Как определить нормально ли распределена величина t(i) (я так понял в моем случае это как раз количество продаж товара в один период времени)
Существуют определенные правила, в частности, если на событие действует случайное количество случайных факторов, то считается, что такая величина подчиняется нормальному закону распределения.
_>Вот тут я запутался совсем
_>А тут еще больше.... нужно что нибудь читать.... особенно наверно литературу способную объянсить почему это все может помочь.
Да, почитать не помешало бы. Найдите в инете любой учебник по теории вероятностей и мат. статистике и почитайте его. Я, например, когда мне надо посмотреть что-то хватаюсь за старые лекции, но поскольку у вас их нет, это можно компенсировать инетом (ссылок не даю, ибо ни разу такими источниками не пользовался — но их просто не может не быть, для того, чтобы их найти, достаточно погуглить минуту-другую)
G>>Оценка(П5) = ((П1/Т1 + П2/Т2 + П3/Т3 + П4/Т4) / 4) * Т5 _>Т.е. в моем случае все Т будут одинакавыми (я принял что все периоды равной длинны или неделя или месяц или день или декада — но все они будут равны). Правильно я понял?
Величина периода может быть разной, важно, чтобы размерность совпадала (то есть если период измеряется в днях, то пусть тогда все периоды измеряются в днях, если в неделях — то — все в неделях).
Разберем на примере:
Пусть
T1 = 1 день
T2 = 3 дня
Т3 = 1 неделя
Т4 = 1 месяц
Здравствуйте, mvg_first, Вы писали:
_>>>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах. _>>>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.
S>>А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический. _>Я всего лишь пишу отетик для менеджера по закупкам который будет использовать посчитанные мной данные как дополнительную информацию.... и понятно что небудет тупо руководствоваться только этими данными.... поэтому задача стоит достаточно таки просто вычислить наиболее вероятное количество продаж в следующем периоде. И ничего больше.... _>Ну если побочным эффектом реализации данных вычислений окажется качественная оценка этого прогноза — это будет только приветствоваться.
Находишь среднюю кривую за период и от нее отталкиваешься.
Re[4]: Определить вероятное количество продаж в наступающем
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, mvg_first, Вы писали:
_>>>>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах. _>>>>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.
S>>>А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический. _>>Я всего лишь пишу отетик для менеджера по закупкам который будет использовать посчитанные мной данные как дополнительную информацию.... и понятно что небудет тупо руководствоваться только этими данными.... поэтому задача стоит достаточно таки просто вычислить наиболее вероятное количество продаж в следующем периоде. И ничего больше.... _>>Ну если побочным эффектом реализации данных вычислений окажется качественная оценка этого прогноза — это будет только приветствоваться.
S>Находишь среднюю кривую за период и от нее отталкиваешься.
Ну то что надо найти что-то среднее я знал еще до того как задать вопрос. Но форум называется "Аглоритмы" и предполагает что обсуждаются конкретные алгоритмы или производится их поиск.... а как трактовать выражения "находишь среднюю кривую" или "от нее отталкиваешся" я непонимаю к сожалению.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[8]: Определить вероятное количество продаж в наступающем
Здравствуйте, Grey2002, Вы писали:
G>Здравствуйте, mvg_first, Вы писали:
_>>Как определить нормально ли распределена величина t(i) (я так понял в моем случае это как раз количество продаж товара в один период времени)
G>Существуют определенные правила, в частности, если на событие действует случайное количество случайных факторов, то считается, что такая величина подчиняется нормальному закону распределения.
_>>Вот тут я запутался совсем
_>>А тут еще больше.... нужно что нибудь читать.... особенно наверно литературу способную объянсить почему это все может помочь.
G>Да, почитать не помешало бы. Найдите в инете любой учебник по теории вероятностей и мат. статистике и почитайте его. Я, например, когда мне надо посмотреть что-то хватаюсь за старые лекции, но поскольку у вас их нет, это можно компенсировать инетом (ссылок не даю, ибо ни разу такими источниками не пользовался — но их просто не может не быть, для того, чтобы их найти, достаточно погуглить минуту-другую)
Постараюсь.... сомневаюсь конечно что получится что либо вычитать. Однажды у знакомого увидел двухтомник по теор. вер. начал было читать.... ну больше 20 стр. неполучилось.... отвекли насущными проблемами...
G>Итого: G>Оценка(П5) = ((10 + 11.6 + 10.5 + 10.6) / 4) * Т5 (= 31 день) = 331 единица товара (в следующем месяце).
G>Примерно так.
Спасибо... приблизительно понял как это работает.
Правда я вот в своих изысканиях на эту же тему предполагал что еще как-то может влиять на результат порядок периода, вернее отдаленность периода от прогнозируемого. Т.е. если в самый ранний из анализируемых периодов продалось 200 шт. товара а в самый ближний т.е. последний период продалось всего 2 шт. то вероятность что в следующем периоде продастся хотя бы 101 шт. невысока. Или это все таки неимеет значения?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[5]: Определить вероятное количество продаж в наступающем
Здравствуйте, mvg_first, Вы писали:
S>>Находишь среднюю кривую за период и от нее отталкиваешься. _>Ну то что надо найти что-то среднее я знал еще до того как задать вопрос. Но форум называется "Аглоритмы" и предполагает что обсуждаются конкретные алгоритмы или производится их поиск.... а как трактовать выражения "находишь среднюю кривую" или "от нее отталкиваешся" я непонимаю к сожалению.
Не что-то среднее. Если у тебя период неделя, то нужно отдельно вычислить среднее арифметическое по каждому дню недели. Тогда у тебя получится кривая зависимости объема продаж от дня недели. Если ее вычесть из данных количества продаж, то ты исключишь периодическую составляющую. А дальше смотришь, на что похоже. Если просто белый шум, то за предсказание берешь значение этой кривой в нужный день недели. Если закон линейный, то любым методом (например, методом наименьших квадратов) вычисляешь параметры этой прямой и добавляешь к средней функции. Ну и т.д.
Re[9]: Определить вероятное количество продаж в наступающем
Здравствуйте, mvg_first, Вы писали:
_>Правда я вот в своих изысканиях на эту же тему предполагал что еще как-то может влиять на результат порядок периода, вернее отдаленность периода от прогнозируемого. Т.е. если в самый ранний из анализируемых периодов продалось 200 шт. товара а в самый ближний т.е. последний период продалось всего 2 шт. то вероятность что в следующем периоде продастся хотя бы 101 шт. невысока. Или это все таки неимеет значения?
Конечно, имеет, но учитывается это не так. В соседней ветке предлагали строить средние продажи за период, аппроксимировать полиномом и предсказывать по нему — что будет дальше (в смысле продаж). Это делается на основе такого раздела сттистики, как регрессионный анализ. Есть такое понятие — доверительный интервал. Если мы имеем непрерывную величину продаж, то доверительный интервал задает рамки, в которых и будет истинное значение продажи с наперед заданной вероятностью (чаще всего используют 95%). Если мы будем строить доверительный интервал для полученного полинома, то чем дальше по времени мы будем уходить от известных значений продаж — тем этот интервал будет больше (при той же вероятности). Поэтому построение модели явяется более сложным, но и более правдоподобным методом, чем предложенный ранее. То, что было в моем последнем посте лучше всего использовать в случае, если интервалы идут друг за другом и искомый интервал — это ближайшее будущее. В противном случае — надо стороить модель.