당니의 개발자 스토리

수요 예측 기법 본문

LG Aimers/AI Essential Course

수요 예측 기법

clainy 2025. 7. 23. 22:52

공급망 관리에서 가장 중요한 것은 정보,

정보에서 가장 중요한 것은 수요 예측

 

수요 예측 기법에는 전통적인 통계 기반 기법도 있고, 요즘 주목을 받고 있는 인공지능 기법이 있음.

 

수요 예측은 재고 관리 최적화를 위해서 필요함

수요예측을 실패하면 재고가 너무 과잉돼서 잉여 재고가 발생할 수 있음

또 재고 부족으로 인해서 판매 기회를 잃어버리면서 매출 손실이 발생할 수 있음 

 

전사적 자원 관리 라는 ERP(Enterprise Resource Planning) 시스템의 안정화 없이 바로 적용했기 때문에 결국 수요 예측 결과가 각 매장에 즉시 반영되지 않았고, 피드백 루프도 마련되지 않아서 현지화에 실패한 Target Canada.

 

ERP란?

회사의 모든 자원(사람, 돈, 시간, 재고, 생산 등)을 통합적으로 관리하는 시스템입니다.

즉, 예전에는 부서마다 다른 프로그램을 썼다면,
ERP는 하나의 통합된 시스템 안에서 모든 부서가 같은 정보를 공유하도록 해줍니다.

 

예시로 이해하기

🧱 예시: 건설회사의 상황

  • 인사팀은 직원 정보를 관리
  • 회계팀은 예산을 관리
  • 구매팀은 자재를 주문
  • 창고팀은 재고를 관리
  • 현장팀은 실제 건설 진행

이 각각의 정보가 분리돼 있으면 혼란이 생깁니다.
→ ERP를 도입하면 모든 부서가 하나의 시스템으로 연결돼서:

  • 인사팀이 등록한 직원이 회계팀에서도 바로 보이고
  • 창고 재고가 떨어지면 구매팀이 자동으로 알림 받고
  • 자재가 입고되면 현장에서도 바로 확인 가능

 

전통적 통계 기반 예측 기법

회귀분석

독립 변수는 종속 변수에 영향을 미친다고 가정 하는 요인들 이다.

종속 변수는 예측하고자 하는 값임.

 

예를 들어서 회사에서 마케팅 비용으로 얼마를 투자 하면 매출이 얼마가 되리라고 예측 하고 싶을 때,

광고 비용은 독립 변수가 되고 종속 변수는 매출액이 될 것이다.

이걸 함수 관계로 만든 게 회귀 분석인데, 가장 기본적인 1차 선형 함수도 있고 2차 선형 함수, 3차 선형 함수도 만들 수 있음.

  • 어떤 변수 x가 y에 어떤 영향을 미치는지 직선으로 설명하고 싶은 거예요.
  • 예를 들어, 아이스크림 판매량(y)이 **기온(x)**에 따라 어떻게 변하는지를 설명할 수 있어요.

 

검은 점들이 실제 매출액(y). 그 매출액을 설명하는 직선 x는 광고비용.

그 매출액을 가장 잘 설명하는 직선의 절편과 기울기를 찾겠다는 것.

이 데이터를 가장 잘 반영하려면 어떻게 되야할까?

-> 그 직선이 실제 데이터와 굉장히 가까이 있어야 됨. 얼마나 가까이 있는가를 평가하는, 그것이 바로 오차 또는 잔차라고 함.

오차는 빨간색 선임

직선식이 실제 데이터를 잘 설명 한다는 것은 오차의 제곱합을 최소화 하는 것.

그냥 오차를 더하면 양수와 음수가 상쇄 될 수 있기 때문에 제곱을 해서 합해야 한다 => 최소제곱법

 

독립 변수가 2개 이상일 때 독립 변수 와 종속 변수의 관계를 마찬가지로 1차 선형 함수로 모델링 하는 회귀 분석 기법.

왼쪽처럼 종속 변수 와 독립 변수 간의 선형 관계가 뚜렷한 데이터는 선형 회기 분석을 쓸 수 있지만, 오른쪽처럼 데이터가 비선형, 혹은 모여 있다든지 비선형 관계 일때는 선형 함수로 추정하게 되면 최소 제곱의 오차들이 굉장히 커짐

이럴 때는 선형 회귀 분석을 사용하지 않고 비선형 회귀 분석을 사용할 수 있음.

그러나 비선형 회귀분석은 난이도 high라 이번 강의에서는 다루지X

 

종속 변수의 과거의 형태(패턴)가 미래에도 유사하게 발생할 것이다 라는 것을 가정 하고 하는 분석임.

 

시계열 분석 중에서 가장 기본적인 방법은 이동평균

과거 n개의 데이터가 있을 때, n개의 데이터의 평균을 내는 가장 기본적인 방법

 

최근 데이터에 조금 더 가중치를 주는 방법

가중치의 합은 1이 돼야함.

 

뚜렷한 추세 혹은 계절성이 존재하는 경우에는 다른 방법을 써야 하는데 그것은 나중에 설명.

지수 평활법도 가중 이동평균과 유사함. 그러나 과거 데이터로 갈수록 지수적으로 급감 하는 가중치를 적용해서 예측함.

 

추세가 있는 시계열 데이터에 사용할 수 있는 가장 대표적인 방법. 지수 평활법과 유사하지만 추세가 있는 경우에 쓰는 방법임.

데이터를 그래프로 찍어보고 장기적으로 증가하는 추세가 있든지, 감소하는 추세가 있다면 이런 방법을 씀.

여기서는 기준인 '수준' 이라고 하는데, 이거를 예측하고 추세를 예측하는 두가지 방정식을 사용함.

 

 

주기가 7이라는 건 7일 이라는 뜻. 그리고 수요일에 가장 수요가 많기 때문에, 그걸 반영하기 위해서 계절지수를 구함.

1.21 이라는 건 다른 요일의 수요 평균이 1인데 수요일에 1.21배가 발생할 것이라는 뜻이다.

 

특정 요일에 유난히 많이 팔리면 그 요일은 ‘계절지수 > 1’,
적게 팔리면 ‘계절지수 < 1’입니다.

만약 이번 주 전체 평균이 100이라면,
수요일은 100×1.21=121100 \times 1.21 = 121개 정도 팔릴 거라고 예측할 수 있어요.

 

 

이제 추세와 계절성이 있는 경우에 사용할 수 있는 지수 평활법으로 '홀트-윈터스 평활법' 이라는 것이 있음.

가법형임.

 

승법형은 수준과 추세를 구한 다음에 t 시점에 계절성, 계절지수를 곱해 주는 방법으로 구함.

 

1이 평균이고, 1.5 라는 것은 다른 계절에 비해서 150%의 수요가 발생한다는 뜻임

 

왜 ARIMA가 필요한가요?

시계열 데이터를 예측할 때는 이런 특성들이 중요합니다:

  1. 과거 데이터가 현재에 영향을 준다 → AR
  2. 데이터에 추세(증가·감소 경향)가 있다 → I
  3. 잡음(오차)이 일정하지 않다 → MA

ARIMA는 이 세 가지를 동시에 고려해서 예측합니다.

 

차분은 쪼갠다는 뜻.

 

📦 예시로 보기: ARIMA(1,1,1)

  • AR(1): 바로 전 시점 데이터 반영
  • I(1): 1번 차분해서 추세 제거
  • MA(1): 직전 예측 오차도 함께 고려

예시:
어떤 회사의 하루 매출 데이터가 있을 때,
ARIMA(1,1,1)은

  • 어제 매출,
  • 매출이 얼마나 증가했는지,
  • 어제 예측이 얼마나 틀렸는지를 모두 보고 내일 매출을 예측합니다.

 

코드들이 다 있기 때문에 코드를 잘 사용하고 이해하면 ARIMA를 사용해서 수요예측을 하는데 활용할 수 있음.

실습에서 다시 설명할 것임.

 

수요를 예측하는데 활발하게 사용되는 머신러닝 예측 기법 = 인공지능 예측 기법

 

의사결정나무, Decision Tree, 산업공학의 경제성 공학에서 많이 사용되는 기법. 그 기반에 머신러닝 기법이 있음.

이것은 뭐냐하면 스무고개처럼 질문을 반복해서 수요를 예측하는 방법임.

그래서 컴퓨팅 자원을 활용하여 더 복잡한 의사 결정 나무를 만들고 나무끼리 융합을 시킬 수 있음.

 

전통적 회귀 모형은 종속 변수가 하나라고 가정하고 추정 한다.

데이터를 보면 금요일의 수요가 다른 요일에 비해서 적음. 그러면 우리가 요일 변수라는 것을 하나 추가 할 수 있음.

금요일이면 1이라는 독립 변수를 주고, 다른 요일이면 0으로 주는 독립 변수를 추가해서 요일 변수를 추가한 예측을 수행 하면

전통적 회귀 모형과는 달리 독립 변수 2개가 되는 선형 회귀 분석을 예측할 수 있음.

 

106.82를 보면 머신러닝 기법을 사용해서 금요일이라는 요일을 반영하여보다 정확한 에측을 할 수 있음.

 

그래서 머신러닝 기법에서는 설명력을 높이는 변수를 자동으로 찾아 준다는 특징이 있음.

시계열(시간(Time)에 따라 순서대로 수집된 데이터) 데이터 예측 머신러닝 모델 Prophet 

밑에 링크를 통해서 다운로드 받을 수 있음. 시계열 데이터 예측의 탁월한 성과를 보여주고 있음.

 

그렇지만 그 수요예측 코드를 파이썬이나, R과 같은 프로그래밍 언어로 불러와서 변형을 시켜야 됨.

중요한 점은

학습을 위해 충분한 데이터 양(1년치 이상)이 있어야 한다는 점.

-> 머신러닝 기법의 필요성 이자 단점.

 

밑에 홈페이지를 참조해서 실습 진행하기.

데이터는 사이트에서 제시하는 샘플 데이터를 사용 했음. 데이터를 불러오는 방법을 보고 가지고 있는 데이터를 불러올 수 있다.

 

그리고 학습을 시키는 방법은 피팅(Fitting)이다.

마지막으로 향후 1년 간을 예측해라 -> "Future" 라는 것은 예측하라는 의미.

이런 식으로 간단하게 수요예측을 할 수 있음. 여러분들이 수요예측 경진대회 같은 곳에서 사용할 수 있는 방법이지만

수요예측 같은 경우는 데이터의 특성에 따라서 어떤 방법이 좋은지는 고민해봐야할 문제.

 

앞에서 주어진 데이터를 가지고 검은색이 실제 데이터 이고,

파란색이 Prophet 모델을 사용해서 수요 예측한 결과.

하늘색으로 보이는 것은 그 예측의 95% 신뢰 구간을 보여주고 있음.

 

나름대로 예측을 잘 하고 있지만 터무니 없이 예측한 값도 있음.

가운데에 이렇게 수요가 높은 것은 예측을 따라 잡지 못 하는 경우가 있음. 

 

오른쪽 표를 보면, 이 예측에서는 추세와 요일, 계절성이 반영된 수요 예측을 수행했음.

 

질문을 반복해서 수요를 예측 하는 방식. 문제는 이런 질문들을 데이터를 보고 자동으로 프로그램이 생성 해준다.

 

 

랜덤 포레스트 라는 방법은 트리의 집단지성 이다.

즉, 의사결정나무를 수행 할 때 이 트리는 100을 예측 했고, 이 트리는 110을 예측 했고 다른 트리는 150을 예측 했다고 하면

이 3개의 트리의 평균치를 사용할 수 있는 방법.

 

한 명이 예측하는 것보다 세 명이 예측 하는 게 더 잘 맞다고 생각하는 것이다.

 

하이브리드 예측 기법은 종속 변수를 통계 모델로 1차 예측 하고, 오차를 머신러닝 모델로 보정 하는 것.

앞에서 말했던 전통적 기법의 예측과 인공지능 모델을 혼합 해서 사용하는 모델.

그래서 시계열 데이터를 통계 모델로 예측 하는 것이다.

 

 

지난 과거 3개월 동안의 실제 아이스크림의 수요를 보고 8월에 아이스크림 수요를 예측 하겠다는 것.

 

추세와 계절성을 반영하는 홀트-윈터스 모형을 사용해볼 것이다.

 

이 변수들을 이용해서 랜던 포레스트 모델을 학습시킬 것임.

 

성능이 홀터-윈터스가 더 좋음.

홀트-윈터스 방법과 랜덤 포레스트 방법을 같이 융합해서 학습한 하이브리드 모델을 쓰면

홀트-윈터스가 학습 하지 못한 오차를 랜덤 포레스트로 학습시킴. 그래서 이전보다 모델의 예측력이 훨씬 좋아졌음.

검은색 선이 실제 발생한 매출, 빨간색이 예측한 값임.

 

평가 지표로는 MSE (Mean Squared Error), MAE,  MAPE 가 있음. 이 값들은 작으면 작을수록 좋다. 아까 말했던 최소 제곱이 이거다.

하이브리드 모델을 쓰면, 홀트-윈터스나, 랜덤 포레스트 방법보다 MSE가 훨씬 작다는 걸 알 수 있음.

나머지 데이터(MAE, MAPE)에 대해서도 최고 제곱합이 작은 값을 나타내고 있음으로써 하이브리드 모델이 예측을 잘 하고 있다는 걸 설명해 주고 있음

 

수요예측 경진대회를 나간다면 하이브리드 모델을 사용하는 것을 권장 함.