پرش به محتوا
شروع رایگان

پیش‌بینی تقاضا با انضباط آماری؛ کم‌پختن و بیش‌تولید را هم‌زمان ببینیم

مدل خوب فقط فروش را پیش‌بینی نمی‌کند؛ هزینهٔ دو نوع خطای متفاوت را هم آشکار می‌کند.

دکتر محمد مصطفی‌زاده ۱۴۰۵/۰۸/۰۵ ~14 دقیقه مطالعه
پیش‌بینی تقاضا با انضباط آماری؛ کم‌پختن و بیش‌تولید را هم‌زمان ببینیم

پیش‌بینی بهتر یعنی تصمیم بهتر، نه نمودار صاف‌تر

برای مدیر آشپزخانه دو خطا هزینه دارند: آماده‌کردن کمتر از نیاز که ممکن است به پایان موجودی، لغو یا جایگزینی سفارش بینجامد؛ و آماده‌کردن بیش از فروش که ممکن است به دورریز، افت کیفیت یا خواب سرمایه برسد. پیش‌بینی تقاضا قرار نیست یکی از این دو را صفر کند. هدفش این است که با داده و فرض‌های روشن، مقدار و زمان آماده‌سازی را طوری انتخاب کنی که پیامدهای هر دو خطا قابل‌قبول و قابل‌سنجش باشد.

نقطهٔ شروع این تمایز است: صندوق «فروش تحقق‌یافته» را ثبت می‌کند، اما فروش تحقق‌یافته همیشه تمام تقاضای مشتری نیست. اگر غذای محبوب ساعت ۲۰ تمام شود، مشتری ممکن است گزینهٔ دیگر بگیرد، سفارش را لغو کند یا اصلاً خرید نکند. در دادهٔ صندوق، گزینهٔ اصلی غایب است و جایگزین شاید به‌عنوان فروش غذا ثبت شده باشد. این وضعیت را سانسورشدگی تقاضا می‌نامند: مشاهدهٔ ما تحت تأثیر محدودیت موجودی قرار گرفته است. بدون ثبت زمان اتمام، جایگزینی، لغو یا اعلام عدم موجودی، مدل ممکن است کمبود را به‌عنوان افت واقعی علاقه یاد بگیرد.

برای پیوند پیش‌بینی به گردش واقعی مواد، تعریف آیتم، واحد شمارش و ثبت موجودی را کنار فروش بررسی کن؛ راهنمای مدیریت موجودی و انبار رستوران دربارهٔ آن جریان زمینه می‌دهد. راهنمای کاست کنترل رستوران را نیز برای پیوند دادن مقدار فروش به هزینه و انحراف ببین. الگوریتمی که ورودی بد دارد، فقط همان خطا را منظم‌تر می‌کند.

قبل از مدل، داده و سؤال را ممیزی کن

یک پیش‌بینی را با چهار مشخصه تعریف کن: چه چیزی را پیش‌بینی می‌کنی، برای چه زمانی، در چه سطحی و برای کدام تصمیم. «فروش» می‌تواند تعداد پرس هر آیتم در هر نیم‌ساعت باشد یا مجموع روزانهٔ کل شعبه. اگر سرآشپز ساعت ۱۱ برای آماده‌سازی ناهار تصمیم می‌گیرد، پیش‌بینی روزانهٔ فروش با جزئیات ساعتی لازم را نمی‌دهد. از طرف دیگر، پیش‌بینی برای هر آیتم کم‌فروش در هر ۱۵ دقیقه ممکن است نویز زیادی بسازد. سطح تحلیل را تابع تصمیم و میزان داده انتخاب کن.

دادهٔ فروش را با تقویم بازبودن، ساعت، روز هفته، تعطیلات، رویدادهای محلی، رزرو، تغییر قیمت، تخفیف، تغییر منو و وضعیت موجودی هم‌تراز کن. ساعت بسته را به‌صورت فروش صفر جا نزن، مگر آنکه مدل صریحاً با «تعطیلی» آشنا باشد. صفر فروش در ساعت باز ممکن است یعنی تقاضا واقعاً صفر بوده؛ یا ممکن است فروش ثبت نشده، آیتم ناموجود بوده یا اتصال صندوق قطع شده باشد. رویدادهای مهم را به شکل ستون توضیحی نگه دار، اما اطلاعاتی را که در زمان صدور پیش‌بینی هنوز معلوم نیست وارد ویژگی‌های گذشته نکن.

قیمت و ترکیب سفارش را هم جدا ببین. تخفیف یا پیشنهاد ویژه ممکن است تعداد آیتم را جابه‌جا کند، و کمبود یک آیتم می‌تواند فروش جایگزین را بالا ببرد. اگر امکان ثبت رویداد کمبود نداری، دست‌کم مواردی را که مدیر می‌داند علامت بزن تا ارزیابی آن روز را با احتیاط تفسیر کنی. فروش ثبت‌شده، سفارش رزرو، مراجعهٔ بدون خرید و لغو یک مفهوم واحد نیستند؛ فقط داده‌هایی را ترکیب کن که تعریف و زمان‌شان روشن است.

خط مبنای ساده را پیش از الگوریتم پیچیده بساز

برای شروع، پیش‌بینی ساده‌ای بساز که همه بتوانند آن را توضیح دهند. «فروش روز مشابه هفتهٔ گذشته» می‌تواند خط مبنا باشد؛ برای روندهای هفتگی، میانگین یا میانهٔ چند هفتهٔ مشابه را امتحان کن. اگر تعطیلات یا فصل برای منوی تو مهم است، مقایسهٔ روزهای قابل‌قیاس را جدا تعریف کن. این خط مبنا نه بهترین مدل همهٔ رستوران‌هاست، نه الزاماً مناسب فروش‌های فصلی شدید؛ ارزشش این است که معیار مقایسهٔ هر روش پیچیده‌تر شود.

پژوهشی در پیش‌بینی فروش غذا و نوشیدنی برای سلف و رستوران رویکرد بیزی را در کاربرد مشخص بررسی کرده است [157-1]. این مقاله نشان می‌دهد مسئله در فضای خدمات غذا قابل‌مدل‌سازی است، اما یک روش پژوهشی را به نسخهٔ ثابت برای تمام منوها تبدیل نمی‌کند. راهنمای نظریه و عمل پیش‌بینی نیز بر انتخاب متناسب با مسئله، داده، افق و ارزیابی تأکید دارد [157-2]. پیش از انتخاب الگوریتم، باید معلوم باشد آیا تصمیم روزانه واقعاً با دقت بیشتر تغییر می‌کند یا نه.

مدل ساده معمولاً نگهداری و توضیح‌پذیری بهتری دارد. اگر افزودن آب‌وهوا، رویداد، رزرو یا قیمت، عملکرد را بهتر نمی‌کند یا فقط در چند روز استثنایی کمک می‌کند، پیچیدگی اضافه را توجیه کن. آزمون باید روی بازه‌ای باشد که مدل قبلاً ندیده است؛ در غیر این صورت، ممکن است صرفاً گذشته را حفظ کرده باشد. معیارها را هم پیش از دیدن نتایج انتخاب کن تا بعداً فقط عدد مطلوب را نشان ندهی.

آزمون زمانی منصفانه بساز

دادهٔ زمان‌مند را به‌طور تصادفی بین آموزش و آزمون پخش نکن. مدل برای آینده است؛ پس شبیه‌سازی کن که در هر تاریخ فقط اطلاعات تا همان روز در دسترس بوده است. روش «مبدأ غلتان» چند بار برش زمانی را جلو می‌برد: مثلاً مدل را با ماه‌های گذشته تنظیم می‌کنی، هفتهٔ بعد را می‌سنجی، بعد پنجره را جلو می‌بری و دوباره آزمون می‌کنی. این کار نشان می‌دهد نتیجه فقط به یک هفتهٔ اتفاقی وابسته نبوده است. ادبیات آزمون خارج از نمونه بر اهمیت طرح ارزیابی و افق‌های مختلف تأکید می‌کند [157-3].

هر بار، پیش‌بینی‌ای را ذخیره کن که واقعاً در لحظهٔ تصمیم قابل‌مشاهده بوده است. اگر گزارش POS روز بعد اصلاح شده یا رزروهای پس از زمان تولید وارد داده می‌شود، نسخهٔ نهایی را بی‌احتیاط در ورودی پیش‌بینی گذشته نگذار. هدف آزمون این است که تصمیم پیش از دانستن نتیجه را بازسازی کند، نه اینکه بهترین توضیح برای نتیجهٔ معلوم بسازد.

خطا را این‌طور تعریف کن: «خطا = مقدار واقعی مشاهده‌شده − پیش‌بینی». اگر مقدار واقعی از پیش‌بینی بیشتر است، خطا مثبت و مدل کم‌برآورد کرده؛ اگر کمتر است، خطا منفی و پیش‌بینی بیش از فروش بوده است. تعریف را کنار گزارش چاپ کن؛ بعضی سیستم‌ها علامت خطا را برعکس می‌گیرند. برای برنامه‌ریز ممکن است میانگین خطا جهت کلی کم‌برآورد یا بیش‌برآورد را نشان دهد، اما مثبت و منفی همدیگر را خنثی می‌کنند؛ بنابراین یک سنجهٔ قدرمطلق نیز لازم است.

سنجه‌ای انتخاب کن که به تصمیم جواب دهد

میانگین قدرمطلق خطا (MAE) برابر میانگین فاصلهٔ مطلق پیش‌بینی از مقدار واقعی است و در واحد شمارش آیتم می‌ماند؛ برای مدیر ساده است که بگوید «معمولاً چند پرس خطا داشتیم». خطای مطلق درصدیِ وزنی (WAPE) را می‌توان به شکل مجموع قدرمطلق خطاها تقسیم بر مجموع مقدار واقعی تعریف کرد؛ این سنجه فقط وقتی مخرج غیرصفر است قابل محاسبه است و در سبدی با آیتم‌های متفاوت، اقلام پرفروش وزن بیشتری می‌گیرند. آن را با دقت کلی همهٔ آیتم‌ها اشتباه نگیر.

میانگین درصد خطای مطلق (MAPE) وقتی فروش واقعی صفر یا نزدیک صفر است می‌تواند نامعین یا بسیار بزرگ شود؛ برای آیتم‌های کم‌فروش و روزهای بدون فروش، آن را بی‌توضیح معیار اصلی نگذار. پژوهش سنجه‌های دقت، محدودیت معیارهای درصدی و گزینه‌هایی مانند MASE را مرور می‌کند [157-4]. MASE خطا را نسبت به یک پیش‌بینی سادهٔ مبنا مقیاس می‌کند و برای مقایسهٔ چند سری گاهی مناسب‌تر است، اما همچنان جای تحلیل قیمت، کمبود و هزینهٔ تصمیم را نمی‌گیرد.

گزارش واحد فقط یک عدد نداشته باشد: خطای مطلق، جهت سوگیری، پراکندگی خطا، چند نمونهٔ کمبود و چند نمونهٔ مازاد را کنار هم ببین. نتیجه را به تفکیک ساعت، روز، گروه منو و دورهٔ رویداد نگاه کن. اگر میانگین خوب است اما مدل در عصرهای شلوغ مرتب کم می‌آورد، شاید برای آماده‌سازی ناهار مناسب باشد و برای شام نه. اگر کل خطا به‌علت چند رویداد خاص است، علت رویداد را بررسی کن پیش از اینکه وزن آن را در مدل چند برابر کنی.

پیش‌بینی را به هزینهٔ نامتقارن تبدیل کن

مدل معمولاً یک عدد می‌دهد؛ تصمیم آماده‌سازی باید هزینهٔ دو سوی آن عدد را لحاظ کند. فرض کن هر پرس اضافه، اگر تا پایان بازه فروخته نشود، ارزش مواد و بسته‌بندی مشخصی را مصرف می‌کند؛ اما کمبود یک پرس می‌تواند فروش ازدست‌رفته، نارضایتی یا جایگزینی بسازد. این هزینه‌ها برابر نیستند و حتی بین آیتم‌ها فرق دارند. قیمت فروش کامل را هم نمی‌توان خودکار برابر زیان کمبود گرفت، چون مشتری ممکن است گزینهٔ دیگری سفارش دهد.

برای یک بازهٔ آزمایشی، برآورد کن «هزینهٔ کمبود» و «هزینهٔ اضافه» از چه اجزایی تشکیل شده‌اند. برای کمبود، میزان لغو ثبت‌شده، جایگزینی و سهم حاشیهٔ مشارکت را با فرض‌های شفاف بسنج. برای اضافه، هزینهٔ ماده، بسته‌بندی و دفع قابل‌شناسایی را لحاظ کن. اگر بخشی از محصول مانده ایمن و قابل‌فروش در بازهٔ بعد است، ارزش آن را فقط در صورت داشتن فرایند و ثبت واقعی به‌عنوان بازیابی بیاور. برآورد تقریبی را با برچسب «سناریو» گزارش کن، نه به‌عنوان هزینهٔ قطعی.

وقتی هزینهٔ کمبود بیش از اضافه باشد، ممکن است سطح آماده‌سازی بالاتری از میانگین پیش‌بینی انتخاب کنی؛ اگر مازاد پرهزینه است، ممکن است آن را پایین‌تر بگذاری. این همان منطق سناریو و صدک تصمیم است، اما انتخاب دقیق به قیمت‌ها، رفتار جایگزین مشتری و محدودیت تولید وابسته است. یک عدد میانگین لزوماً بهترین مقدار آماده‌سازی نیست. خطای گذشته به‌تنهایی هزینهٔ آینده را تعیین نمی‌کند؛ هزینه‌ها و موجودی قابل استفاده نیز باید معلوم باشند.

در صورت استفاده از پیش‌بینی تقاضای متناوب، تعداد زیادی صفر و فروش گاه‌به‌گاه را به‌عنوان سری عادی روزانه تلقی نکن. پژوهش برآورد تقاضای متناوب دربارهٔ خواص روش‌ها در زمینهٔ قطعات یدکی است، نه غذا [157-5]؛ آن را فقط برای آگاهی از مسئلهٔ صفرهای پرتکرار به‌کار ببر و ادعای اثربخشی مدل در رستوران نساز. در عمل شاید تجمیع هفتگی یا گروه‌بندی اقلام هم‌رفتار از مدل‌سازی روزانهٔ هر محصول کم‌فروش معقول‌تر باشد.

مثال فرضی: انتخاب بچ و آزمون همزمان دو سوی خطا

نمونهٔ زیر کاملاً فرضی است. فرض کن یک ساندویچ در بازهٔ ناهار، در روزهای معمولی بین ۱۸ تا ۳۰ سفارش دارد. خط مبنای «همان روز هفتهٔ قبل» در ۱۰ روز آزمون، برای هر روز خطای مطلق متوسط ۵ پرس نشان داده و میانگین خطایش ۲ پرس کم‌برآورد بوده است. یک روش میانگین چند هفته‌ای خطای مطلق متوسط ۳٫۵ پرس دارد، اما در چهار روز رویدادمحور دادهٔ آن ناقص است. هنوز نمی‌توان گفت روش دوم بهتر است؛ روزهای آزمون، پوشش رویداد و وضعیت کمبود باید شفاف شود.

فرض کن در سه روز، موجودی قبل از پایان بازه تمام شده است. فروش صندوق به‌ترتیب ۲۱، ۲۳ و ۲۰ پرس ثبت کرده؛ در یکی از روزها دو سفارش جایگزین ثبت شده و در دو روز دیگر کارکنان فقط می‌دانند که آیتم زود تمام شده، نه تعداد مشتریان از دست‌رفته. فروش ۲۰ پرس را در دو روز، تقاضای دقیق فرض نکن. می‌توان آن روزها را از ارزیابی سادهٔ فروش واقعی جدا کرد یا با برچسب «کمبود، مقدار تقاضای پنهان نامعلوم» نشان داد.

برای هفتهٔ بعد، تیم به‌جای تغییر همهٔ اقلام، همان ساندویچ را در یک بازهٔ مشخص آزمایش می‌کند. پیش‌بینی روزانه، زمان پخت بچ، مقدار شروع، مقدار تکمیل و ماندهٔ پایان ثبت می‌شوند. «پرس تأمین‌نشده» به‌عنوان شمار قطعی ثبت می‌شود فقط اگر واقعاً قابل مشاهده باشد؛ تخمین کارکنان جدا و با عدم‌قطعیت ثبت می‌شود. سپس خطای پیش‌بینی، دورریز، تأخیر و تغییر سفارش جایگزین را بررسی می‌کنند. اگر کمبود کمتر و غذای مانده بیشتر شود، باید هزینهٔ هر دو را مقایسه کرد؛ بهبود یک سنجه، به‌تنهایی، موفقیت عملیاتی را ثابت نمی‌کند.

اجرای مرحله‌ای و بازبینی

  1. یک گروه منو و افق تصمیم را انتخاب کن. ۲. ساعت کاری، فروش، موجودی و رویدادها را هم‌تعریف کن. ۳. خط مبنای ساده را ذخیره کن. ۴. آزمون زمانی را روی چند بازه اجرا کن. ۵. دست‌کم MAE و سوگیری را همراه نمونه‌های کمبود/مازاد گزارش بده. ۶. هزینهٔ خطای کمبود و اضافه را با فرض آشکار بساز. ۷. تغییر آماده‌سازی را در یک بازهٔ محدود و با شاخص محافظ اجرا کن. این ترتیب جلوی آن را می‌گیرد که ابزار خریداری‌شده را با تصمیم عملیاتی اشتباه بگیری.

برای ثبت مقایسهٔ منظم می‌توان از قالب اکسل کاست کنترل استفاده کرد؛ ستون تاریخ صدور پیش‌بینی، افق، روش، مقدار پیش‌بینی، مقدار واقعی مشاهده‌شده، وضعیت کمبود و نسخهٔ داده را جا ننداز. اگر داده و اتصال انبار توسعه پیدا کرده، راهنمای انتخاب نرم‌افزار انبارداری را بخوان و پیش از اتوماسیون، صحت تعریف آیتم و واحد را بیازمای.

مدل را پس از تغییر اساسی منو، قیمت، ساعت کار، شعبه یا رفتار مشتری دوباره ارزیابی کن؛ عملکرد گذشته تضمین آینده نیست. همزمان تغییرات خرید و موجودی را در فرمول فودکاست هر آیتم با فروش و هزینه بررسی کن. برای زنجیره، تعریف و زمان‌بندی را میان شعبه‌ها هماهنگ ساز و ناهمگنی فروش را پنهان نکن؛ تجربهٔ کاست کنترل در زنجیره زمینهٔ بحث عملی است، نه مدرک تجربیِ قابل تعمیم.

پیش‌بینی، حکم قطعی نیست

پیش‌بینی یک برآورد شرطی است: اگر داده، تعریف فروش، دسترس‌پذیری، زمان و فرض‌های مدل این‌ها باشند، مقدار مورد انتظار چنین می‌شود. رویداد، آب‌وهوا، تغییر نیروی انسانی، بسته‌شدن مسیر یا سفارش گروهی می‌تواند مسیر واقعی را عوض کند. بنابراین برای موارد پرریسک، بازهٔ عدم‌قطعیت یا دست‌کم دامنهٔ خطای اخیر را کنار عدد نشان بده و اختیار مداخلهٔ سرآشپز را حفظ کن. هر اصلاح دستی هم دلیل و زمان ثبت داشته باشد تا پیش‌بینی اصلاح‌شده را با خود مدل قاطی نکنی.

شواهد پژوهشی در پیش‌بینی عموماً به داده و طرح آزمون وابسته است؛ مطالعهٔ سلف و رستوران برای اثبات برتری یک روش در منوی دیگر کافی نیست، و مقالات عمومی سنجه‌ها جای دادهٔ محلی را نمی‌گیرند [157-1][157-2][157-4]. پیشرفت واقعی زمانی است که تصمیم بهتری بسازی و بتوانی توضیح دهی کمبود، اضافه‌تولید و عدم‌قطعیت چگونه سنجیده شدند. اگر پیش‌بینی بهتر شد اما رفتار خرید یا انبار خراب ماند، تصمیم هنوز به اصلاح نیاز دارد.

منابع و مطالعهٔ بیشتر

    • [157-1] K. Posch, C. Truden, P. Hungerländer, J. Pilz (2022), “A Bayesian approach for predicting food and beverage sales in staff canteens and restaurants,” International Journal of Forecasting, 38(1), 321–338. DOI: https://doi.org/10.1016/j.ijforecast.2021.06.001 ؛ صفحهٔ ناشر: https://www.sciencedirect.com/science/article/pii/S0169207021001011 . کاربرد مشخص سلف و رستوران؛ روش را نسخهٔ عمومی همهٔ کسب‌وکارها نمی‌کند.
    • [157-2] Fotios Petropoulos et al. (2022), “Forecasting: theory and practice,” International Journal of Forecasting, 38(3), 705–871. DOI: https://doi.org/10.1016/j.ijforecast.2021.11.001 ؛ صفحهٔ ناشر: https://www.sciencedirect.com/science/article/pii/S0169207021001758 . مرور گستردهٔ روش‌ها و ارزیابی پیش‌بینی؛ کاربرد محلی به آزمون نیاز دارد.
    • [157-3] Leonard J. Tashman (2000), “Out-of-sample tests of forecasting accuracy: an analysis and review,” International Journal of Forecasting, 16(4), 437–450. DOI: https://doi.org/10.1016/S0169-2070(00)00065-0 ؛ صفحهٔ ناشر: https://www.sciencedirect.com/science/article/pii/S0169207000000650 . مرور آزمون خارج از نمونه؛ مطالعهٔ رستوران نیست.
    • [157-4] Rob J. Hyndman, Anne B. Koehler (2006), “Another look at measures of forecast accuracy,” International Journal of Forecasting, 22(4), 679–688. DOI: https://doi.org/10.1016/j.ijforecast.2006.03.001 ؛ صفحهٔ ناشر: https://www.sciencedirect.com/science/article/pii/S0169207006000239 ؛ صفحهٔ نویسنده: https://talks.robjhyndman.com/publications/another-look-at-measures-of-forecast-accuracy/ . پشتوانهٔ سنجه‌ها و محدودیت برخی معیارهای خطا؛ توصیهٔ سنجه باید به هدف وابسته بماند.
    • [157-5] Aris A. Syntetos, John E. Boylan (2005), “The accuracy of intermittent demand estimates,” International Journal of Forecasting, 21(2), 303–314. DOI: https://doi.org/10.1016/j.ijforecast.2004.10.001 ؛ مخزن دانشگاه سالفورد: https://salford-repository.worktribe.com/output/1474808/the-accuracy-of-intermittent-demand-estimates . پژوهش تقاضای متناوب در زمینهٔ قطعات یدکی؛ این مقاله از آن برای ادعای اثر مدل بر رستوران استفاده نمی‌کند.

نقشهٔ هزینهٔ ضایعات؛ از آماده‌سازی تا باقی‌ماندهٔ بشقاب

ابرک را کامل و رایگان به‌کار بگیرید

۱۴ روز رایگان