Страховой запас. Зачем и как его рассчитывать?

Страховой запас. Зачем и как его рассчитывать? stanley 14 April, 2020 - 21:24

Проблеме управления страховым запасом я решил посвятить целый раздел. Отчего так много, спросите вы? Все очень просто. Если вспомнить логистическую пилу запасов, становится очевидно, что страховой запас - та часть, которая впрямую не приносит прибыли. Никогда. То есть инвестиции сюда являются как бы "бесполезными". А ведь доля страхового запаса в общем обычно достаточно велика, да еще и нужно в среднем инвестировать половину рабочего запаса. В общем, тема дорогая, и поэтому стоит потратить время и научиться правильно рассчитывать СЗ.

Страховой запас. Формулировка задачи

Страховой запас. Формулировка задачи stanley 19 April, 2020 - 17:17

 

Начнем, пожалуй, с терминов. Если изобразить траекторию запаса, в просторечии именуемую также логистической пилой, можно выделить следующие параметры

 

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

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

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

  • задача определения страхового запаса звучит как «какой страховой запас нужно удерживать в будущем, чтобы…» тут есть варианты, но правильно будет «чтобы поддерживать заданный уровень обслуживания». В любом случае это задача планирования будущего.
  • неснижаемый запас — это мертвые вложения денег. Он не будет продаваться и приносить прибыль, оборот дает только рабочий запас. В реальности траектория запаса не будет как на картинке, в какие-то циклы на момент прихода остатки будут меньше плановых, в какие-то — больше, важно, что в среднем остатки будут соответствовать неснижаемому запасу.

В дальнейших формулах будем использовать обозначения

Q – рабочий запас или расход за один цикл пополнения

SS – страховой запас

 

Добавим еще несколько понятий, уже связанных с временными параметрами.

 

T – длина функционального цикла или интервал между поставками (опять же в будущем!).

V=Q/T – скорость продаж.

LT – суммарное время выполнения заказа, то есть время от момента, когда мы обнаружили, что надо делать поставку до момента, когда продукт можно использовать. Неважно, в производстве или для продажи. Это важный момент, поскольку это именно интегральное время, оно может включать несколько этапов: время для обнаружения потребности, расчет размера заказа, передача заказа поставщику, размещение в план производства и отгрузки, непосредственно доставка, приемка, размещение на складе или на полке.

Но для определения размера страховых еще более важно знать такой параметр, как время реакции системы. Этот термин я заимствовал из физики, поскольку в литературе аналогичного не нашел. Как правило, в англоязычной литературе в этом качестве упоминается LT – Lead Time. Но это совершенно неверно - использовать LT, которое имеет смысл «время упреждения для размещения заказа», для расчета страховых. И этот вопрос мы разберем чуть подробнее ниже.

Мы себе представляем будущее примерно так

 

Точка заказа определяется как обычно — когда запас достигает значения V*LT+SS, нужно разместить заказ, тогда к моменту прихода мы ожидаем, что запас выйдет на неснижаемый. Для простоты не будем вводить поправки, связанные с ограничениями расписаний. Понятно, что не в любой день можно разместить заказ, да и не в любой его можно принять, поговорим об этом в другой раз.

Но мы догадываемся, что реальность будет отличаться от абстракции, и реально запас может оказаться как больше, так и меньше. Нас особенно волнует, как бы он не опустился ниже нуля. Дальше начинается вероятностное рассуждение.

 

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

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

Таким образом, нам нужно, чтобы за время реакции суммарный спрос не сильно превысил значения [Прогноз Спроса + Страховой Запас]. Но спрос — это случайный процесс, поэтому поставленная задача выполнима лишь с определенной вероятностью. К тому же что значит «не сильно»? Это сколько и как это измерить?

 

И тут появляется понятие уровня обслуживания...

 

 

 

 

 

 

Уровень обслуживания. Какие они бывают? Как рассчитать страховой запас для заданного уровня сервиса?

Уровень обслуживания. Какие они бывают? Как рассчитать страховой запас для заданного уровня сервиса? stanley 2 September, 2008 - 14:19

Уровень обслуживания. Уровень сервиса. Service Level.

 

 

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

Теперь нужно определиться с методикой его расчета и в первую очередь разобраться с понятием уровня обслуживания.

Мы уже затрагивали понятие «уровень обслуживания» (см. например) и упоминали о существующей неоднозначности в его понимании. Дело в том, что не существует единого общепринятого определения этого понятия. Напротив, наблюдается несколько вариантов толкований уровня сервиса. Попытаемся хотя бы изложить наиболее канонические варианты. Как и всегда, всячески приветствуются указания на ошибки, комментарии, добавления, уточнения.

 

 

Предварительные замечания.

 

В дальнейшем я буду использовать сокращения:

SL — Service Level, уровень обслуживания
SS — Safety Stock, страховой запас
LT — Lead Time, общее время на исполнение заказа
T — периодичность пополнения
Q — ожидаемая величина спроса за время T
f(z) — плотность вероятности распределения
F(z) — функция вероятности распределения

 

 

Постановка задачи.

 

 

Виды рисков, от которых мы хотим страховаться

  • - суммарный спрос за время реакции может оказаться больше, чем мы предполагали
  • - поставка может опоздать

Необходимо ввести метрики — способы объективного измерения потерь от таких рисков при разной толщине «подушки безопасности». В качестве таких метрик выступают разные виды уровней обслуживания.

Уровень сервиса.

Type 1. (я поимел наглость именно этот вариант обозвать уровнем обслуживания 1го рода)

Cycle Service Level.

Данный вариант определяет SL как вероятность того, что к моменту поставки остаток будет неотрицательным. Физический смысл данного показателя прозрачен: если мы при неизменных параметрах пополнения выполним достаточно много циклов, то именно такая доля циклов закончится с положительными остатками. Данный тип SL почти соответствует принятому в розничной торговле показателю OSA (On Shelf Availability).

 

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

 

Попробуем прикинуть, что у нас с математикой. В общем виде мне лично известно лишь решение для нормального и логнормального распределения спроса. Здесь мы рассмотрим только первй вариант. Вероятность попадания в зону риска в этом случае определяется функцией Лапласа Φ(z):

Обратная задача, которую мы решаем — нахождение уровня страхового запаса при заданном уровне обслуживания. «Переворачиваем» предыдущую формулу и получаем


где z определяется из уравнения

Уравнение решается, используя таблицы значений функции Лапласа. К примеру, для уровня в 95% ищем значение 2*0.95-1=0.9. Находим в таблице ближайшее значение. В нашем случае одинаково близко находятся два варианта:

0.8990 ⇒ z=1.64
0.9011 ⇒ z=1.65

Впринципе, можно взять посередине z=1.645.

В случае, если спрос распределен по логнормальному закону, последовательность действий следующая:

Аналогично предыдущему случаю находим z, используя таблицы.

Затем пересчитываем его в новое значение, используя формулу

где

Уровень сервиса.

Type 2. (я поимел наглость именно этот вариант обозвать уровнем обслуживания 2го рода)

Unit Fill.

В отличие от первого варианта, данный способ измерения оценивает не просто вероятность возникновения события OOS (Out Of Stock), но оценивает ожидаемое количество спроса, неудовлетворенного в момент обращения из-за отсутствия на стоке. То есть клиент пришел, но продать нечего. И неважно, будет ли этот спрос потерян навсегда или лишь отложен до появления товара.

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

 

Попробуем прикинуть, что у нас с математикой. Во-первых, матожидание всего спроса нам по условиям задачи уже известно — это как раз величина Q, мы исходили из этого значения, когда планировали график пополнения. Осталось лишь определиться с матожиданием упущенного/отложенного спроса.

 

В учебнике по теорверу матожидание случайной величины z с плотностью распределения f(z) вычисляется как

 

В нашем случае неудовлетворенный спрос равен 0, пока спрос не превысил Q+SS, поэтому интегрировать нужно только по зоне риска

 

В общем виде мне лично известно лишь решение для нормального распределения спроса. Доля потерь в этом случае определяется


Функция L известна как «функция потерь», часто встречается «partial expectation of back orders», «partial expectation function», «partial loss function». Аналитического выражения для этой функции не существует, как правило пользуются таблицей ее значений.

 

Самостоятельно получить таблицу значений можно по формуле

Обратная задача, которую мы решаем — нахождение уровня страхового запаса при заданном уровне обслуживания. «Переворачиваем» предыдущую формулу и получаем

где z определяется из уравнения

Существует также приближенный метод нахождения z. Он основан на аппроксимации функции потерь следующего вида:

коэффициенты выбираются в зависимости от значения L:

L(z) α β γ δ
≤0.0561025 1.94519891 -0.06100591 -2.70426890 0.50840810
0.1428794 ≥ L > 0.0561025 1.83513389 -0.06567952 -2.6970236 0.54505649
> 0.1428794 1.82268153 -0.06609373 -2.65829265 0.56235517

Я лично никогда этим методом не пользовался и его корректность не проверял.

Интересный факт: всегда выполняется

 

Уровень сервиса.

Order Fill.

Другая разновидность уровня обслуживания состоит в том, что принимается во внимание тот факт, что требование на поставку приходит не на один товар независимо, а в рамках целого списка — клиентского заказа. Для некоторых видов бизнеса критичным считается удовлетворение всего такого заказа полностью. Считается, что если хотя бы одна строка заказа не может быть удовлетворена из наличного запаса, следует весь заказ считать неудовлетворенным. Очевидно, это гораздо более жесткий критерий, известный под названием «order fill».

Если считать, что товары в заказе статистически независимы, вероятность удовлетворения заказа равна произведению вероятностей удовлетворения всех его строк, поэтому можно привести данный тип уровня обслуживания к типу cycle service:

и далее по уже показанной методике.

Если спрос распределен по Пуассону, мне встречалась следующая методика:

фактор страхового запаса z определяется из таблицы

SL z
≤ 0.5 0
0.75 0.7
0.80 0.8
0.85 1.0
0.90 1.3
0.95 1.7
0.98 2.1
0.99 2.3
0.999 3.1

Промежуточные значения определяются при помощи линейной интерполяции. Размер страхового запаса далее вычисляется по формуле

где

In reply to by inkerman

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

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

Общая вариативность запаса при неопределенностях спроса и срока поставки

Общая вариативность запаса при неопределенностях спроса и срока поставки stanley 25 April, 2020 - 18:37

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

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

 

Еще раз обращаю внимание: наша задача — понять, каков будет суммарный расход к этому моменту. Поскольку это величина случайная, мы не можем знать точно, нужно определить распределение вероятностей.

Расход за время реакции есть сумма расходов за каждый день

 

Причем и дневной расход X, и время реакции RT являются случайными величинами каждая со своим распределением.

Будем считать, что

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

Будем считать, что нам известны

  • md - средний расход (спрос) в день
  • mRT – среднее время реакции в днях
  • σd - среднеквадратическое отклонение дневного расхода
  • σRT - среднеквадратическое отклонение времени реакции (грубо говоря — срока поставки)

Тогда из теории вероятностей известно, что
матожидание спроса за время реакции

среднеквадратическое отклонение спроса

 

(!) для тех, кто интересуется выводом этой формулы, наш коллега Юрий все показал здесь

 

При этом теорвер ничего не говорит о виде этого распределения, оно зависит от исходных распределений. Но имеет смысл отметить два частных случая

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

Так что при расчете планового страхового запаса нужно  в формулах брать это комбинированное СКО, если мы хотим страховаться от неопределенностей обоих типов.

 

 

Время реакции системы пополнения. Что за зверь?

Время реакции системы пополнения. Что за зверь? stanley 14 May, 2020 - 18:42

 

Так что же это за зверь "Время Реакции"?

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

Пришло время разобраться с тем термином, который я ввел для описания характеристики системы пополнения — Время Реакции или Response Time (RT). Термин взят из физики, там подобная характеристика системы или процесса существует повсеместно. Это крайне важно — понять, что это такое, ибо в литературе сплошь и рядом используется заимствованное Lead Time, что по факту есть время процессинга заказа на пополнение. А это на самом деле две совершенно разные характеристики, хоть и связанные между собой.

Время реакции – это то время, через которое может быть скорректирован запас, если «что-то пошло не так».

В чем же суть и откуда исторически взялась эта путаница?

Дело в том, что когда излагают проблему в учебниках, описывают простейшую схему пополнения «по точке перезаказа», известную также как «reorder point» (ROP).

Излагая простым языком, заказ может быть размещен в любой момент времени, как только достигнута точка перезаказа. И выполнен он будет (то есть товар окажется на полке) через время LT. Размещаем заказ, получаем его через LT, и потом ждем, когда запас опустится до точки перезаказа, после чего все повторяется. И все прекрасно, в этом случае RT = LT, поскольку если «случилось страшное», мы хоть завтра сможем разместить новый заказ и скорректировать проблему.

Но это в реальном бизнесе сродни сферическому коню в вакууме. Первое, что сразу приходит на ум — поставки по жесткому графику, когда мы не можем получить товар в произвольный момент времени.

Как видим, во втором цикле при отклонении спроса от спрогнозированного при достижении точки перезаказа мы не можем запустить цикл пополнения, поскольку не попадем в график.  Более того, по факту данная схема вообще не является управлением по точке перезаказа. Заказ мы размещаем не в момент достижения критического уровня, а также строго по графику.

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

Функция потерь. Как величина страхового запаса влияет на уровень обслуживания

Функция потерь. Как величина страхового запаса влияет на уровень обслуживания inkerman 15 July, 2008 - 11:39

автор: Юрий aka INKERMAN

 

Высылаю краткую заметку, в которой попытался изложить суть расчета Страхового Запаса по методике, описанной в книге Бауэрсокса. В частности, показать «откуда растут ноги» у функции потерь, которая в книге Бауэрсокса дана как табличная функция.

Давайте дочитаем досюда и немного остановимся:

 

Уровень обслуживания SL — это вероятность того, что спрос не превысит наличные запасы в период исполнения заказа. Так, если уровень обслуживания равен 85%, то это означает, что оставшихся после заказа запасов будет достаточно для нормальной работы предприятия с вероятностью 85% и риск исчерпания запасов составит 15%.

 

Здесь говорится об одном из методов оценки уровня обслуживания, точнее, об одном из методов уровня доступности ТЗ. Грубо говоря, если мы пройдем 100 циклов поставок, лишь в 15 мы исчерпаем запас до прихода следующей поставки. Вероятность такого события определяется площадью под кривой плотности распределения вправо от значения z.


 

Естественно, чем больше z (размер нашего страхового запаса), тем меньше площадь и меньше вероятность наступления такого события. Чтобы нам дальше не путаться, назовем это уровнем доступности 1го рода.

 

Но нам недостаточно знать, что в 15 циклах из 100 мы выйдем с нулевым запасом. Мы хотим знать, к каким это потерям приведет в конкретных штуках, литрах, рублях, в конце концов. Для этого мы должны рассчитать матожидание величины потерь. То есть при тех же условиях в 15 случаях из 100 произойдет исчерпание запаса, и в этих 15 случаях мы не сможем продать 90 единиц при прогнозе в 1000 штук. Вот эти (1-90/1000)=91% мы будем называть уровнем доступности 2го рода. Матожидание величины (x-z) рассчитывается как

К слову сказать, я намеренно не употребляю термин «уровень обслуживания» из-за большого количества разночтений в его определении. Существует несколько вариантов, что это означает и как рассчитывается. Практически все они опираются на теоретически верные и логически обоснованные рассуждения, однако применение их в реальной жизни сплошь и рядом невозможно из-за элементарной невозможности корректно их измерить. Поэтому соблазн использовать один из вариантов для мотивации персонала так и остается соблазном. А вот уровень доступности 1го рода при всей его ущербности как раз легко измерим и скорее всего сильно связан с уровнем обслуживания в любой его ипостаси. Так что применение его как одного из показателей в какой-нибудь системе balanced scorecard — то, что надо.

 

А теперь попытаемся немного разобраться с путаницей, возникшей в этой теме. Цитата:

 

В книге Бауэрсокса считают уровень «недообслуживания», т.е. 1-SL, как матожидание дефицита (руб), деленное на матожидание продаж(руб).

 

Как видно из вышеприведенных рассуждений, 1-SL - это уровень «недоступности» 1-го рода, а матожидание дефицита, деленное на матожидание продаж — 2-го рода. То есть имеется некоторая путаница.

 

Приведенная у Юрия математика безусловно описывает 2й вариант. К слову сказать, в эту ловушку попали очень многие. Начиная с того, что в самой книге русским по белому написано

Функция f(k) – функция потерь, определяющая площадь, ограниченную правой «ветвью кривой нормального распределения». В табл.1 приведены значения k и f(k).

Уж не знаю, как там в оригинальном варианте, но приведенная таблица описывает именно функцию потерь, тогда как «площадь, ограниченную правой «ветвью кривой нормального распределения» описывает вообще-то функция Лапласа с совсем другими значениями.


Забавно и то, что эту ошибку тянут и писатели учебников — например,

Логистика: современное состояние и перспективы

Лукинский В.С.,

Цвиринько И.А.

(СпбГИЭУ)

 

Ну и в заключение на той же странице у Бауэрсокса/Клосса:

В обеих частях рисунка присутствуют страховые запасы, равные одному среднеквадратическому отклонению... Вероятность дефицита в обоих случаях составляет 31.73%.

 

Почему в данном случае эту цифру на самом деле надо бы «упополамить» - разберетесь сами, не маленькие.

Моделирование запаса при фиксированном уровне обслуживания

Моделирование запаса при фиксированном уровне обслуживания stanley 5 August, 2008 - 17:38

Как мы будем моделировать величину страхового и полного запаса:

 

 

Перепишем формулу общей дисперсии

V — среднедневная реализация

 

учитывая, что

,

TL - время, требуемое для обнаружения потребности, составления заявки, отправки, согласования, доставки и приходования. Для краткости будем называть это временем процессинга.

T0 — периодичность заказа,


(коэффициент вариации дневных продаж)

в виде

отсюда видно, что при условии T0>>TL интегральная вариация падает пропорционально корню из T0, а при условии T0<<TL — пропорционально T0. Формула для функции потреь выглядит как

Величина страхового запаса

Величина рабочего запаса

Как видим, интенсивность потребления V задает только масштаб этих значений, не меняя качественной картины, поэтому при расчетах будем принимать V=1, и тогда полный запас

Таким образом, мы будем исследовать зависимость TS от T0.

 

Методика:

 

В качестве входных параметров будем подавать на вход коэффициент вариации дневных продаж, среднее время процессинга и его СКО, диапазон уровней сервиса и шаг.

 

Поскольку очень важное значение имеет соотношение величин T0 и TL, диапазон изменения T0 будет выбираться автоматически как [TL/10;TL*10], точки измерения будут расставлены более часто в начале диапазона (размещение точек сделано по логарифмической шкале).

 

На последнем графике строится зависимость интегральной вариации от T0 при разных значениях вариации дневных продаж — это просто для информации.

 

Первый график содержит зависимость SS от T0 для всех уровней сервиса из заданного диапазона с заданным шагом. Зависимость

получена путем линейной интерполяции табличной функции потерь.

 

Как пользоваться

 

Скачиваем здесь, разворачиваем архив куда удобно, запускаем SL.cmd, выставляем интересующие параметры, нажимаем кнопку. Если нужно увеличить какой-то участок графика, ставим мышь в левый верхний угол участка, нажимаем кнопочку, протягиваем по диагонали, отпускаем кнопку. Обратная операция — протянуть влево вверх.

 

Результаты

 

Для меня лично весьма неожиданные.

Юрий, добрый день!

В прошлый раз, в ICQ-переписке, я достаточно пассивно выступал в качестве аппонента по твоей формуле отсюда: /node/18 - а вот теперь, применительно к запасу, я начал основательно разбираться со всем этим, и нашёл несколько моментов, которые мне кажутся не правильными, возможно, я просто не могу их понять. Аппелировать буду к этой странице, так как физический смысл - он как-то вносит ясность в математические формулы... Итак, я не смог понять:
1) размерность искомой величины дельта в первой формуле (которая, по уму, должна получаться в результате подставления размерностей всех присутствующих в формуле величин и проведения всех необходимых сокращений);
2) поведение последнего графика в начальных значениях, а именно его уменьшение (по уму, он никогда не может себя так вести: чем больше период поставки, тем больше и нужный общий запас).

Готов общаться как здесь, так и по ICQ (69752200) - может, мы совместо поправим что-то и получим нужный нам обоим результат?.. Хотя, возможно, что после твоих несложных объяснений мне придётся посыпать голову пеплом и идти пересдавать ТерВер. ;)

In reply to by RazVal

я хоть и не Юрий, но попытаюсь :)

1. безразмерная, естественно. это коэффициент вариации объема продаж за период.

2. была очень длинная дискуссия на закуп.ру, по результатам которой, а точнее по итоговым непоняткам и была написана эта статья. в частности (что для меня самого первоначально было неожидаемым), требуемый запас на первом участке действительно падает для обеспечения фиксированного уровня обслуживания 2-го рода. те графики, что в статье - просто численное моделирование задачи

Формула общей дисперсии при случайном спросе с учетом неопределенности функционального цикла

Формула общей дисперсии при случайном спросе с учетом неопределенности функционального цикла inkerman 1 August, 2008 - 12:52

статья с описанием откуда взялась формула для общей дисперсии (используется при расчёте страхового запаса).

Еще раз о суммарной дисперсии

Еще раз о суммарной дисперсии stanley 10 March, 2010 - 13:30

Итак, еще раз попытаемся разобраться, что же означает формула общей дисперсии не математически, а "по жизни". Нисколько не претендую на оригинальность, но вопрос всплывает часто, надо с ним разобраться и выводы зафиксировать.

Будем рассматривать нашу любимую картинку:

На самом деле, в этой классической пиле мы нарисовали лишь то, как может "уплыть" спрос за время реакции системы поставок (в данном случае, LT+T). Проблема же состоит в том, что у нас имеется еще один источник неопределенности - само время исполнения заказа LT (а значит и общее время реакции) является неопределенным и определяется дисциплиной поставщика. Тогда наша картинка должна выглядеть немного сложнее:

Заштрихованный параллелограмм показывает область, где может оказаться запас в конце цикла с определенной вероятностью. Наша задача - математически описать эту ситуацию. Подход в данном случае очень простой. Для определеннсти будем оперировать дневным расходом товара, тогда суммарный расход за время реакции есть сумма дневных:
Qsum = Q1 + Q2 + ... + QL, но само количество дней L - величина случайная.
То есть мы имеем случайную сумму случайных величин Qi.

  1. Если все Qi независимы и имеют одинаковое распределение с параметрами mq и sq
  2. Если L не зависит от Q и имеет распределение с параметрами mL и sL

то теория вероятностей нам сообщает, что распределение Q будет иметь параметры

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

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

  1. Несмотря на то, что параметры распределения определяются математически строго, вид итогового распределения остается неизвестным. Переходя в практическую плоскость, это означает, что на основании этих цифр вообще говоря рассчитать страховой запас нельзя, почти все общеизвестные методы предусматривают нормальное распределение. К счастью, в большинстве случаев суммарное распределение спроса за время реакции достаточно часто оказывается нормальным. В частности, если Q распределены нормально, то и любая сумма будет нормальной. Более того, если даже в распределении Q не наблюдается нормальности, но L достаточно велико, можно считать суммарное распределение приблизительно нормальным.
  2. Прямо из описания задачи следует, что существует жесткая связь между точностью определения L и Q. Поясню. Из нашего рассуждения следует, что L - это не промежуток времени, это всегда натуральное число. В том случае, если оно имеет смысл количества дней, значит как отклонения в сроке поставки мы должны измерять в днях, так и дисперсию спроса мы должны знать для дневных отгрузок. Если вам известна дисперсия только понедельного спроса (которая, естественно, сильно меньше), значит сроки поставок и их дисперсии вы тоже обязаны выражать в неделях и никак иначе. В этом случае учесть отклонение в два-три дня нельзя, лишь в целом числе недель.

Ограничения формулы общей дисперсии

Ограничения формулы общей дисперсии stanley 14 April, 2010 - 10:29

Итак, мне хочется продолжить разговор о вычислении степени вариации спроса. Ну свербит у меня, что тут поделаешь... А если серьезно, то ведь вопрос до неприличия важный. Давайте прикинем "на пальцах". Есть известная экспертная рекомендация: "если не можете честно расчитать страховой запас, держите его приблизительно равным половине расхода за время реакции". Что это означает? Мы планируем, что если все пойдет, как мы предполагаем, ПОЛОВИНА денег, вложенных в запас, будет лежать мертвым грузом и не приносить прибыли. И все равно по факту получим и дефицит, и сверхнормативные запасы, такова наша планида.

Если смотреть на проблему с такой точки зрения, становится понятным, отчего не жалко тратить усилия на более точное решение задачи - слишком высока "цена вопроса".

В прошлой статье мы остановились на том, что вывели матожидание и дисперсию спроса
Qsum = Q1 + Q2 + ... + QL при выполнении двух условий:

  1. Если все Qi независимы и имеют одинаковое распределение с параметрами m и s
  2. Если L не зависит от Q и имеет распределение с параметрами mL и sL

Если со вторым условием все нормально, то первое условие мне очень сильно не нравится. Переводя на нормальный язык, полученная формула работает только в случае отсутствия и тренда, и сезонности, когда спрос практически стационарен.

И что со всем этим делать, если "ровный" спрос бывает только в сказке?
Видимо, придется обложиться математическими справочниками и попытаться решить задачу в более общем виде.

Как написано в учебнике, для всякого L распределение Qsum будет вычисляться как свертка распределений всех QL.

а общее распределение спроса соответственно

Допущение 1. Будем считать, что все Qi распределены нормально со своими параметрами

тогда из свойства нормальности распределение суммы спроса за L периодов будет также нормальным с параметрами

Для начала попробуем посчитать матожидание суммарного спроса. По определению это

подставим сюда g(Q) и получим

так как интеграл есть не что иное, как матожидание распределения fL. Из этой формулы видно, что если все µ одинаковы, как предполагается в классической задаче, то и формула упрощается до уже известного нам произведения матожиданий дневного спроса и количества дней.

С дисперсией все несколько сложнее. По определению


Для вычисления интеграла распишем аналогично дисперсию распределения fL

тогда

Не мешало бы проверить результат в случае стационарного спроса. Пусть все Qi имеют одинаковые параметры распределения (m,s2). Тогда

 

Получили знакомую уже формулу, так что будем надеяться, нигде не проврались. Еще никого не тошнит от всего этого безобразия? Мне лично от таких многоэтажек становится грустно. А главное, непонятно, какую практическую пользу можно из этого извлечь...

И, кстати, во всех формулах ошибка. В индексах суммирования везде вместо i=0 следует читать i=1. Ну, вы же понимаете...

In reply to by kiselevanastia8

[quote=kiselevanastia8]А смысл поста? о_0[/quote]

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

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

In reply to by stanley

[quote=stanley]

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

[/quote]

добрый день!

Я думал, что порядок должен быть таким:

1. Определить тренд и сезонность и ошибку (факт - тренд с сезонностью)

2. Именно эта ошибка должна быть близка к нормальному распределению и именно к ней и применять диспресию и суммарную дисперсию

Я сильно не прав?

In reply to by Дмитрий_Л

[quote=Дмитрий_Л]

[quote=stanley]

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

[/quote]

добрый день!

Я думал, что порядок должен быть таким:

1. Определить тренд и сезонность и ошибку (факт - тренд с сезонностью)

2. Именно эта ошибка должна быть близка к нормальному распределению и именно к ней и применять диспресию и суммарную дисперсию

Я сильно не прав?

[/quote]

не сильно :)
проблема в том, что мы получаем ошибку со средним, близким к нулевому, а потом еще и предполагаем, что дисперсия со временем не меняется, что скорее всего неверно для нестационарного процесса.

не мысленный эксперимент

не мысленный эксперимент RazVal 11 March, 2010 - 16:58

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

если я правильно понял, вопрос в том, почему они не сошлись?

тогда ответ в том, что мы имеем дело с выборкой, а не с генеральной совокупностью. проверить очень просто: в ячейку R73C3 вставить формулу =RC[-1]*SQRT(7). если бы была генеральная совокупность, именно такое значение отклонения мы бы получили :)

In reply to by stanley

если посчитать отклонение по дням по формуле стандартного отклонения по генеральной совокупности получается 28,21.  28,27 * корень(7) = 74,63  Что больше чем отклонение по неделям, посчитанное по формуле стандартного отклонения по генеральной совокупности (73,35).

Если в суммарное отклонение недель подставить 74,63,  то результат будет такой же, как если считать по дням 366,62

Может это связано с тем, что данные по неделям имеет меньший разброс данных? Ведь 73,35<74,63

А ещё интересно, как играет это "-1 в знаменателе" в формуле стандартного отклонения по выборке, ведь вывод формулы суммарного отклонение сделан именно по СКО генеральной совокупности. Может и в расчётах тогда ей пользоваться?

In reply to by Дмитрий_Л

[quote=Дмитрий_Л]

если посчитать отклонение по дням по формуле стандартного отклонения по генеральной совокупности получается 28,21.  28,27 * корень(7) = 74,63  Что больше чем отклонение по неделям, посчитанное по формуле стандартного отклонения по генеральной совокупности (73,35).

[/quote]

так 28.21 или 28.27?

[quote]

Если в суммарное отклонение недель подставить 74,63,  то результат будет такой же, как если считать по дням 366,62

Может это связано с тем, что данные по неделям имеет меньший разброс данных? Ведь 73,35<74,63

А ещё интересно, как играет это "-1 в знаменателе" в формуле стандартного отклонения по выборке, ведь вывод формулы суммарного отклонение сделан именно по СКО генеральной совокупности. Может и в расчётах тогда ей пользоваться?

[/quote]

мало что понял.
там и так -1, stddev именно так считает, насколько я помню.

в таблице использована генеральная совокупность с равномерным распределением в диапазоне [0;100]. как написано в справочнике, среднее значение в этом случае 50, отклонение ~28.87.
в данном примере берется случайная выборка из 70 значений, реально получаемые значения можно наблюдать. не забудь, при любом изменении листа исходный ряд генерируется заново. можно поставить указатель на пустую ячейку и нажимать del, наблюдая великое чудо непредсказуемости Вселенной :)

In reply to by stanley

[quote=stanley]

так 28.21 или 28.27?

[/quote]

оказалось именно то самое  великое чудо непредсказуемости Вселенной :)

Но все же - суммарное отклонение расчитанное через ско по дням всё время больше, через ско по неделям. 

[quote=stanley]

мало что понял.
там и так -1, stddev именно так считает, насколько я помню.
 

[/quote]

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

в ячейку R73C3 вставить формулу =RC[-1]*SQRT(7)  -  втавил и получил СКО большее, чем по неделям. Не понял, как это связано с генеральной совокупностью? Если посчитать СКО по дням и по неделям по формуле генеральной совокупности и дневную умножить на корень(7), то опять получим значение больше, чем СКО по неделям.

 

In reply to by Дмитрий_Л

[quote=Дмитрий_Л]

Но все же - суммарное отклонение расчитанное через ско по дням всё время больше, через ско по неделям. 

[/quote]
относительное? так и должно быть, чем больше период агрегирования, тем больше сглаживаются флуктуации. если это стационарный процесс, во всяком случае.

[quote]
в ячейку R73C3 вставить формулу =RC[-1]*SQRT(7)  -  втавил и получил СКО большее, чем по неделям. Не понял, как это связано с генеральной совокупностью? Если посчитать СКО по дням и по неделям по формуле генеральной совокупности и дневную умножить на корень(7), то опять получим значение больше, чем СКО по неделям.

[/quote]

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

In reply to by RazVal

[quote=RazVal]

Нет, я не понял, почему нельзя использовать данную формулу для дробных (не натуральных ;0) значений недель? Расхождения итогов от этого не происходит.

[/quote]

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

по жизни - если продажи за неделю составили 10 шт, мы ничего не можем сказать про продажи за полнедели, это любое число [0;10].

Расчет страхового запаса по эмпирическому распределению ошибки прогноза спроса

Расчет страхового запаса по эмпирическому распределению ошибки прогноза спроса Vit_Al 4 January, 2009 - 20:02

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

Пусть в результате обработки файла ошибок прогноза была получена таблица частот, приведенная в таблице 1.8. Количество наблюдений равно 103.

Таблица 1.8 – Эмпирическое распределение ошибки прогноза оптового спроса на растворимый кофе в килограммах

Интер-
валы значе-
ний ошибки прогноза
спроса
-17 –
-12
-12 –
-7
-7 –
-2
-2 –
3
3 –
8
8 –
13
13 –
18
18 –
23
23 –
28
28 –
33
Часто-
ты
11
19
22
23
11
8
5
2
1
1
Отно-
ситель-
ные частоты
0,107
0,184
0,214
0,223
0,107
0,078
0,049
0,019
0,01
0,01

Соответствующая этим данным гистограмма распределения ошибки приведена на рисунке 1.13. По оси абсцисс отложены интервалы значений ошибки прогноза. По оси ординат – число попаданий в каждый интервал.

Среднее квадратическое отклонение ошибки прогноза, рассчитанное по этим данным, составило 9,5. Среднее значение ошибки оказалось равным –0,97, но для упрощения рассуждений мы будем считать его равным нулю.

Как уже было описано в предыдущем пункте, точка заказа может быть представлена как сумма среднего спроса за время пополнения и страхового запаса:

где R – точка заказа,

– прогноз спроса за время пополнения;
SS – страховой запас.

От величины страхового запаса зависит средний (ожидаемый) дефицит в каждом цикле пополнения; чем больше страховой запас, тем меньше дефицит. Величина дефицита является случайной, зависящей от спроса за время пополнения: 

 где SL – величина дефицита;

d – спрос за время пополнения, случайная величина.

Подставим сюда выражение для точки заказа R и получим:

где разность между фактическим спросом d и его прогнозом  – это и есть ошибка прогноза Δd, эмпирическое распределение которой приведено в таблице 1.8. Перепишем это выражения, используя для ошибки прогноза ее обозначение:

Чтобы получить ожидаемое значение дефицита, то есть математическое ожидание, надо воспользоваться формулой для математического ожидания дискретной случайной величины:

 

где  – математическое ожидание дефицита (средний дефицит) при значении точки заказа, равном R;
Δd – ошибка прогноза спроса за время пополнения;
 – величина дефицита при значении ошибки прогноза, равном Δd;
 – вероятность (относительная частота) появления значения Δd.
Наша непрерывная случайная величина – ошибка прогноза – стала дискретной по той причине, что при построении эмпирического распределения мы группируем значения непрерывной случайной величины по интервалам (см. таблицу 1.8) и всем наблюдениям, попавшим в определенный интервал, присваивается значение, равное середине этого интервала.

Подставим в (1.14) выражение для дефицита (1.13) и получим:

 

 

В качестве значений ошибки прогноза Δd следует брать середины интервалов на оси абсцисс гистограммы распределения ошибки прогноза. В таблице 1.8 этими серединами будут –14,5; –9,5; –4,5; 0,5; 5,5; 9,5; 10,5; 15,5; 20,5; 25,5; 30,5. Вычисление дефицита  будем проводить для значений SS, равных левой (нижней) границе каждого интервала гистограммы, то есть для SS = –17, –12, –8 и т. д. Результаты вычислений приведены в таблице 1.9. Обозначения в таблице:
, эмпир. – средний дефицит, вычисленный с использованием эмпирического распределения ;
, норм. – средний дефицит, вычисленный с использованием нормального распределения ошибки прогноза, он равен σE(Z);
 – страховой запас, отнесенный к среднеквадратическому отклонению ошибки прогноза (используется для расчета ожидаемого дефицита при нормальном распределении ошибки прогноза);
Pд, эмпир. – вероятность дефицита, вычисленная с использованием эмпирического распределения ;
Рд, норм. – вероятность дефицита, вычисленная с использованием нормального распределения ;
SL %, эмпир. – уровень обслуживания, вычисленный с использованием эмпирического распределения ;
SL, %, норм. – уровень обслуживания, вычисленный с использованием нормального распределения.
Таблица 1.9 – сравнение вероятностей дефицита и уровней обслуживания, вычисленных с использованием нормального и эмпирического распределений
SS
-17
-12
-7
-2
3
8
13
18
23
28
15,95
11,21
7,21
4,20
2,28
1,19
0,56
0,24
0,10
0,02
Z
-1,79
-1,26
-0,74
-0,21
0,32
0,84
1,37
1,89
2,42
2,95
σE(Z)
17,23
12,36
8,37
4,81
2,54
1,05
0,39
0,10
0,03
0,00
Pд, эмпир.
1,00
0,894
0,710
0,496
0,273
0,166
0,088
0,039
0,020
0,010
Рд, норм.
0,963
0,896
0,770
0,583
0,377
0,200
0,085
0,029
0,007
0,002
SL %, эмпир.
81,2
86,8
91,5
95,0
97,3
98,6
99,3
99,7
99,90
99,98
SL, %, норм.
79,7
85,4
90,1
94,3
97,0
98,8
99,5
99,90
99,96
99,99
Объем заказа Q = 85, среднеквадратическое отклонение ошибки прогноза равно 9,5.
Распределение ошибки прогноза весьма заметно отличается от нормального. Тем не менее сравнение вычисленных вероятностей дефицита для эмпирического распределения и для нормального распределения показывает, что с практической точки зрения эти вероятности мало отличаются. В самом деле, между вероятностями отсутствия дефицита (это 1 – Pд) нет заметной разницы при всех значениях страхового запаса SS, начиная с 13 и выше. Так, для SS = 13 эти вероятности равны 0,912 и 0,915. Это значит, что дефицита не будет наблюдаться в среднем в 912 циклах пополнения из 1000 или в 915. Столь же незначительно отличаются и уровни обслуживания, вычисленные с использованием эмпирического и нормального распределений. Конечно, при меньших размерах заказа различие в уровнях обслуживания может оказаться существенным. Но в нашем примере размер заказа Q равен 85, среднеквадратическая ошибка прогноза равна 9,5, а их отношение равно 8,94. Очевидно, что при больших значениях этого отношения совпадение будет еще лучше.
 

Приведенный пример позволяет сделать вывод о том, что даже при значительных отклонениях распределения ошибки прогнозирования от нормального можно использовать значения страхового запаса, рассчитанные с использованием нормального распределения. Тем не менее, желательно всегда проверять степень расхождения значений ожидаемого уровня обслуживания, вычисленных с использованием эмпирического и нормального распределений, подобно тому, как это сделано в таблице 1.9.