Определить вероятное количество продаж в наступающем периоде
От: mvg_first Россия  
Дата: 17.12.05 15:54
Оценка:
Доброго времени суток, уважаемые.

Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах.
Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.

Сразу поясню.... вышку я неизучал, так уж сложилось... алгоритм будет реализован на языке SQL , т.к. искомое количество необходимо просчитывать для каждого товара в магазине.

Заранее благодарен.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re: Определить вероятное количество продаж в наступающем пер
От: Grey2002  
Дата: 18.12.05 08:39
Оценка:
Здравствуйте, mvg_first.

Скорее не вычислить, а оценить (ибо если бы будущее можно было бы вычислить, то жить стало бы неинтересно ).
Может, имеет смысл замутить регрессию с сезонной составляющей...
Re[2]: Определить вероятное количество продаж в наступающем
От: mvg_first Россия  
Дата: 19.12.05 07:40
Оценка:
Здравствуйте, Grey2002, Вы писали:

G>Скорее не вычислить, а оценить (ибо если бы будущее можно было бы вычислить, то жить стало бы неинтересно ).

G>Может, имеет смысл замутить регрессию с сезонной составляющей...

Необходимо как раз вычислить.... и именно на основании указанных данных, если это в принципе возможно. А сезонные составляющие, популярность товара, расположение магазина и прочие факторы в данном случае неучитываются.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[3]: Определить вероятное количество продаж в наступающем
От: Grey2002  
Дата: 19.12.05 10:50
Оценка:
Здравствуйте, mvg_first, Вы писали.

Я надеюсь, мы говорим все-таки о вероятностях и вычисляем наиболее вероятное количество продаж. На продажи влиет много факторов, причем их количество всегда разное — тогда для этого существует номальный закон распределения вероятности, от которого необходимо брать матожидание (как раз наиболее вероятное количество продаж) и дисперсию — чем она больше, тем больше вероятность ошибки. Все же рекомендую попытаться воспользоваться статистикой, а показатели считать по соответствующим формулам для несмещенных оценок. Другой вариант предложить трудно — в принципе, можно хорошо натренированную (на большом хронометраже данных о продажах) нейросеть на ваши данные натравить.
Re[4]: Определить вероятное количество продаж в наступающем
От: mvg_first Россия  
Дата: 19.12.05 11:49
Оценка:
Здравствуйте, Grey2002, Вы писали:

G>Здравствуйте, mvg_first, Вы писали.


G>Я надеюсь, мы говорим все-таки о вероятностях и вычисляем наиболее вероятное количество продаж. На продажи влиет много факторов, причем их количество всегда разное — тогда для этого существует номальный закон распределения вероятности, от которого необходимо брать матожидание (как раз наиболее вероятное количество продаж) и дисперсию — чем она больше, тем больше вероятность ошибки. Все же рекомендую попытаться воспользоваться статистикой, а показатели считать по соответствующим формулам для несмещенных оценок. Другой вариант предложить трудно — в принципе, можно хорошо натренированную (на большом хронометраже данных о продажах) нейросеть на ваши данные натравить.


Вот! Это уже ближе к телу.... на данном этапе предсказывать с максимально возможной точностью необходимости нет (ввиду сложности реализации конечно).

Теперь бы мне малообразованному в теории вероятностей (всего-лишь среднетехническое, к сожалению не изучал эту теорию вообще).... да и в статистике... разобраться во всем вышеперечисленном. Если не сложно можно указать на ресурсы где это расписано подробно или набросать хотя бы примерную формулу которую можно использовать в данной ситуации...

Еще раз сасибо за помощь уже оказанную и грядующую!!!
Надеюсь на дальнейшие рекомендации по теме.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[5]: Определить вероятное количество продаж в наступающем
От: Grey2002  
Дата: 19.12.05 14:52
Оценка: 2 (1)
Здравствуйте, mvg_first, Вы писали.

Итак, допустим, есть некоторый хронометраж событий, которые можно выразить числом, которое обозначим 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.

Тогда:

Оценка(П5) = ((П1/Т1 + П2/Т2 + П3/Т3 + П4/Т4) / 4) * Т5
Re[6]: Определить вероятное количество продаж в наступающем
От: wildwind Россия  
Дата: 19.12.05 15:16
Оценка:
Здравствуйте, 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: Определить вероятное количество продаж в наступающем пер
От: Socrat Россия  
Дата: 19.12.05 15:36
Оценка:
Здравствуйте, mvg_first, Вы писали:

_>Доброго времени суток, уважаемые.


_>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах.

_>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.

А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический.
Re[2]: Определить вероятное количество продаж в наступающем
От: mvg_first Россия  
Дата: 19.12.05 16:02
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Здравствуйте, mvg_first, Вы писали:


_>>Доброго времени суток, уважаемые.


_>>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах.

_>>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.

S>А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический.

Я всего лишь пишу отетик для менеджера по закупкам который будет использовать посчитанные мной данные как дополнительную информацию.... и понятно что небудет тупо руководствоваться только этими данными.... поэтому задача стоит достаточно таки просто вычислить наиболее вероятное количество продаж в следующем периоде. И ничего больше....
Ну если побочным эффектом реализации данных вычислений окажется качественная оценка этого прогноза — это будет только приветствоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[6]: Определить вероятное количество продаж в наступающем
От: mvg_first Россия  
Дата: 19.12.05 17:01
Оценка:
Здравствуйте, 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]: Определить вероятное количество продаж в наступающем
От: Grey2002  
Дата: 19.12.05 18:10
Оценка: 3 (1)
Здравствуйте, mvg_first, Вы писали:

_>Как определить нормально ли распределена величина t(i) (я так понял в моем случае это как раз количество продаж товара в один период времени)


Существуют определенные правила, в частности, если на событие действует случайное количество случайных факторов, то считается, что такая величина подчиняется нормальному закону распределения.

_>Вот тут я запутался совсем


_>А тут еще больше.... нужно что нибудь читать.... особенно наверно литературу способную объянсить почему это все может помочь.


Да, почитать не помешало бы. Найдите в инете любой учебник по теории вероятностей и мат. статистике и почитайте его. Я, например, когда мне надо посмотреть что-то хватаюсь за старые лекции, но поскольку у вас их нет, это можно компенсировать инетом (ссылок не даю, ибо ни разу такими источниками не пользовался — но их просто не может не быть, для того, чтобы их найти, достаточно погуглить минуту-другую)


G>>Оценка(П5) = ((П1/Т1 + П2/Т2 + П3/Т3 + П4/Т4) / 4) * Т5

_>Т.е. в моем случае все Т будут одинакавыми (я принял что все периоды равной длинны или неделя или месяц или день или декада — но все они будут равны). Правильно я понял?

Величина периода может быть разной, важно, чтобы размерность совпадала (то есть если период измеряется в днях, то пусть тогда все периоды измеряются в днях, если в неделях — то — все в неделях).

Разберем на примере:

Пусть
T1 = 1 день
T2 = 3 дня
Т3 = 1 неделя
Т4 = 1 месяц

П1 = 10
П2 = 35
П3 = 80
П4 = 320

Надо оценить П5, на период в месяц (Т5 = 1 месяц)

Тогда
П1 / Т1 = 10 / 1 = 10
П2 / Т2 = 35 / 4 = 11.6
П3 / Т3 (= 7 дней) = 80 / 7 = 10.5
П4 / Т4 (= 30 дней) = 320 / 30 = 10.6

Итого:
Оценка(П5) = ((10 + 11.6 + 10.5 + 10.6) / 4) * Т5 (= 31 день) = 331 единица товара (в следующем месяце).

Примерно так.
Re[3]: Определить вероятное количество продаж в наступающем
От: Socrat Россия  
Дата: 20.12.05 07:06
Оценка: -1
Здравствуйте, mvg_first, Вы писали:

_>>>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах.

_>>>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.

S>>А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический.

_>Я всего лишь пишу отетик для менеджера по закупкам который будет использовать посчитанные мной данные как дополнительную информацию.... и понятно что небудет тупо руководствоваться только этими данными.... поэтому задача стоит достаточно таки просто вычислить наиболее вероятное количество продаж в следующем периоде. И ничего больше....
_>Ну если побочным эффектом реализации данных вычислений окажется качественная оценка этого прогноза — это будет только приветствоваться.

Находишь среднюю кривую за период и от нее отталкиваешься.
Re[4]: Определить вероятное количество продаж в наступающем
От: mvg_first Россия  
Дата: 20.12.05 07:54
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Здравствуйте, mvg_first, Вы писали:


_>>>>Необходимо вычислить сколько товара реализуется в следующем периоде, на основании даных о количестве продаж в предыдуших периодах.

_>>>>Другими словами: Есть количество периодов (например 5) следующих друг за другом есть длительность периода в днях (например неделя), есть информация о количестве продаж товара в каждую из 5-ти недель. Необходимо вычислить сколько товара будет продано в следующую неделю.

S>>>А потом неожиданно придет Новый год... Надо сначала изучить закон изменения объема продаж. Одно дело, когда он идет по нарастающей, а другое — когда периодический.

_>>Я всего лишь пишу отетик для менеджера по закупкам который будет использовать посчитанные мной данные как дополнительную информацию.... и понятно что небудет тупо руководствоваться только этими данными.... поэтому задача стоит достаточно таки просто вычислить наиболее вероятное количество продаж в следующем периоде. И ничего больше....
_>>Ну если побочным эффектом реализации данных вычислений окажется качественная оценка этого прогноза — это будет только приветствоваться.

S>Находишь среднюю кривую за период и от нее отталкиваешься.

Ну то что надо найти что-то среднее я знал еще до того как задать вопрос. Но форум называется "Аглоритмы" и предполагает что обсуждаются конкретные алгоритмы или производится их поиск.... а как трактовать выражения "находишь среднюю кривую" или "от нее отталкиваешся" я непонимаю к сожалению.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
В борьбе бобра с ослом — всегда побеждает бобро!
Re[8]: Определить вероятное количество продаж в наступающем
От: mvg_first Россия  
Дата: 20.12.05 07:58
Оценка:
Здравствуйте, 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]: Определить вероятное количество продаж в наступающем
От: Socrat Россия  
Дата: 20.12.05 08:19
Оценка:
Здравствуйте, mvg_first, Вы писали:

S>>Находишь среднюю кривую за период и от нее отталкиваешься.

_>Ну то что надо найти что-то среднее я знал еще до того как задать вопрос. Но форум называется "Аглоритмы" и предполагает что обсуждаются конкретные алгоритмы или производится их поиск.... а как трактовать выражения "находишь среднюю кривую" или "от нее отталкиваешся" я непонимаю к сожалению.

Не что-то среднее. Если у тебя период неделя, то нужно отдельно вычислить среднее арифметическое по каждому дню недели. Тогда у тебя получится кривая зависимости объема продаж от дня недели. Если ее вычесть из данных количества продаж, то ты исключишь периодическую составляющую. А дальше смотришь, на что похоже. Если просто белый шум, то за предсказание берешь значение этой кривой в нужный день недели. Если закон линейный, то любым методом (например, методом наименьших квадратов) вычисляешь параметры этой прямой и добавляешь к средней функции. Ну и т.д.
Re[9]: Определить вероятное количество продаж в наступающем
От: Grey2002  
Дата: 20.12.05 11:23
Оценка:
Здравствуйте, mvg_first, Вы писали:

_>Правда я вот в своих изысканиях на эту же тему предполагал что еще как-то может влиять на результат порядок периода, вернее отдаленность периода от прогнозируемого. Т.е. если в самый ранний из анализируемых периодов продалось 200 шт. товара а в самый ближний т.е. последний период продалось всего 2 шт. то вероятность что в следующем периоде продастся хотя бы 101 шт. невысока. Или это все таки неимеет значения?


Конечно, имеет, но учитывается это не так. В соседней ветке предлагали строить средние продажи за период, аппроксимировать полиномом и предсказывать по нему — что будет дальше (в смысле продаж). Это делается на основе такого раздела сттистики, как регрессионный анализ. Есть такое понятие — доверительный интервал. Если мы имеем непрерывную величину продаж, то доверительный интервал задает рамки, в которых и будет истинное значение продажи с наперед заданной вероятностью (чаще всего используют 95%). Если мы будем строить доверительный интервал для полученного полинома, то чем дальше по времени мы будем уходить от известных значений продаж — тем этот интервал будет больше (при той же вероятности). Поэтому построение модели явяется более сложным, но и более правдоподобным методом, чем предложенный ранее. То, что было в моем последнем посте лучше всего использовать в случае, если интервалы идут друг за другом и искомый интервал — это ближайшее будущее. В противном случае — надо стороить модель.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.