소매점에서는 매일 대규모의 재고를 처리하기 때문에 재고 모니터링 및 관리가 더욱 번거롭습니다. 전통적인 소매점 재고 관리는 모니터링, 추적 및 관리가 비효율적이어서 번거로운 방법입니다. 따라서 소매점 재고 분석을 원활하게 수행하여 더 적은 수작업으로 보유 재고를 줄이고 판매 재고를 늘리는 강력한 디지털 재고 관리 시스템이 필요합니다.
이 기사에서는 시계열 기계 학습 모델인 SARIMA를 사용하여 소매점 재고 분석을 효율적으로 수행하고 시간이 지남에 따라 고객의 요구를 충족하는 데 필요한 재고 매개변수를 계산하여 소매점에 최대 이익을 제공하는 방법을 보여줍니다.
데이터세트
먼저 데이터 세트를 다운로드하세요. 이 데이터 세트에는 날짜, 제품 수요 및 현재 재고 수준에 대한 정보가 포함된 특정 제품의 기록 기록이 있습니다.
암호
수요예측과 재고관리를 수행하는 Python 코드는 아래와 같습니다.
import pandas as pd import numpy as np import plotly.express as px from statsmodels.graphics.tsaplots import plot_acf, plot_pacf import matplotlib.pyplot as plt from statsmodels.tsa.statespace.sarimax import SARIMAX data = pd.read_csv("demand_inventory.csv") print(data.head()) data = data.drop(columns=['Unnamed: 0']) fig_demand = px.line(data, x='Date', y='Demand', title='Demand Over Time') fig_demand.show() fig_inventory = px.line(data, x='Date', y='Inventory', title='Inventory Over Time') fig_inventory.show() data['Date'] = pd.to_datetime(data['Date'], format='%Y/%m/%d') time_series = data.set_index('Date')['Demand'] differenced_series = time_series.diff().dropna() # Plot ACF and PACF of differenced time series fig, axes = plt.subplots(1, 2, figsize=(12, 4)) plot_acf(differenced_series, ax=axes[0]) plot_pacf(differenced_series, ax=axes[1]) plt.show() order = (1, 1, 1) seasonal_order = (1, 1, 1, 2) model = SARIMAX(time_series, order=order, seasonal_order=seasonal_order) model_fit = model.fit(disp=False) future_steps = 10 predictions = model_fit.predict(len(time_series), len(time_series) + future_steps - 1) predictions = predictions.astype(int) print(predictions) # Create date indices for the future predictions future_dates = pd.date_range(start=time_series.index[-1] + pd.DateOffset(days=1), periods=future_steps, freq='D') # Create a pandas Series with the predicted values and date indices forecasted_demand = pd.Series(predictions, index=future_dates) # Initial inventory level initial_inventory = 5500 # Lead time (number of days it takes to replenish inventory) lead_time = 1 # Service level (probability of not stocking out) service_level = 0.95 # Calculate the optimal order quantity using the Newsvendor formula z = np.abs(np.percentile(forecasted_demand, 100 * (1 - service_level))) order_quantity = np.ceil(forecasted_demand.mean() + z).astype(int) # Calculate the reorder point reorder_point = forecasted_demand.mean() * lead_time + z # Calculate the optimal safety stock safety_stock = reorder_point - forecasted_demand.mean() * lead_time # Calculate the total cost (holding cost + stockout cost) holding_cost = 0.1 # it's different for every business, 0.1 is an example stockout_cost = 10 # # it's different for every business, 10 is an example total_holding_cost = holding_cost * (initial_inventory + 0.5 * order_quantity) total_stockout_cost = stockout_cost * np.maximum(0, forecasted_demand.mean() * lead_time - initial_inventory) # Calculate the total cost total_cost = total_holding_cost + total_stockout_cost print("Optimal Order Quantity:", order_quantity) print("Reorder Point:", reorder_point) print("Safety Stock:", safety_stock) print("Total Cost:", total_cost)
코드 이해
계절적 패턴을 관찰할 수 있는 '시간에 따른 수요'와 '시간에 따른 재고'를 시각화하는 것부터 시작합니다. 그래서 수요를 예측하기 위해 SARIMA(계절 자기회귀 이동 평균)를 사용합니다.
SARIMA를 사용하려면 p(자동 회귀 순서), d(차이 정도), q(이동 평균 순서), P(계절 AR 순서), D(계절 차분) 및 Q(계절 MA 순서)가 필요합니다. . ACF — 자기상관 함수와 PACF — 편자기상관 함수를 플롯하여 매개변수 값을 찾습니다.
이제 예측을 위해 몇 가지 값을 초기화합니다. 미래 단계(예: 예측 일수)를 10으로, 리드 타임(예: 재고 보충 일수)을 1로 설정하고 기타 소매점 종속 값을 설정합니다.
마지막으로 인벤토리 최적 결과를 계산하기 위해 NewsVendor 공식을 사용합니다. NewsVendor 공식은 최적의 재고 수준을 결정하는 데 사용되는 수학적 모델인 NewsVendor 모델에서 파생됩니다. 이 기사에서 NewsVendor 공식에 대해 자세히 알아볼 수 있습니다.
최종 평가 결과는
- 최적 주문 수량 — 재고 수준이 특정 지점에 도달했을 때 공급업체로부터 주문해야 하는 제품의 수량을 말합니다.
- 재주문 지점 — 재고가 소진되기 전에 보충하기 위해 새로운 주문을 해야 하는 재고 수준입니다.
- 안전 재고 — 수요와 공급의 불확실성을 고려하여 추가 재고를 보유하고 있습니다. 이는 수요 또는 리드 타임의 예상치 못한 변동에 대한 완충 장치 역할을 합니다.
- 총 비용 — 재고 관리와 관련된 총 비용을 나타냅니다.
제안된 SARIMA 모델은 Newsvendor 공식을 사용하여 소매점 재고 재고 관리를 효율적인 방식으로 디지털화하여 고객을 만족시키는 데 필요한 최적의 재고를 계산하는 동시에 소매업체에 최대 이익을 제공합니다.
이 기사가 귀하가 찾고 있던 내용에 도움이 되기를 바랍니다. 기사에 대한 개선이나 제안을 환영합니다. 건배 :)
여기에서 내 소셜을 확인하고 자유롭게 연결하세요 ^_^
위 내용은 소매점의 수요 예측 및 재고 관리 - SARIMA 모델의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...

정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까? HTML 또는 기타 마크 업 언어를 다룰 때는 정규 표현식이 종종 필요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
