Rosie's Tech Blog오늘을 새롭게, 내일을 이롭게

이케아 스마트 물류 데이터를 활용한 주차별 수요 예측

🏭 들어가며: 스마트 물류와 데이터 분석

이케아(IKEA)의 스마트 물류 시스템은 효율적인 창고 운영과 재고 관리를 위해 다양한 데이터를 수집합니다. 이 데이터를 분석하면 주차별로 수요를 예측하거나 작업 일정을 최적화할 수 있습니다. 이 글에서는 주차별 출고량 데이터를 바탕으로 시계열 분석을 수행해 보고, 간단한 예측 모델을 만드는 과정을 소개합니다.


📊 데이터 준비 및 전처리

먼저 Excel 파일(SPI.xlsx)에 저장된 주차별 물류 데이터를 불러옵니다.

import pandas as pd

df = pd.read_excel("SPI.xlsx")
df.columns = df.iloc[0]
df = df.iloc[1:].reset_index(drop=True)

df.columns = ['index', 'week', 'spi_order', 'mtf', 'warehouse']
df = df.drop('index', axis=1)

그 다음, 수치형 데이터를 올바른 타입으로 변환하고 결측치를 처리합니다.

for col in ['spi_order', 'mtf', 'warehouse']:
    df[col] = pd.to_numeric(df[col], errors='coerce')

전처리를 마치면 아래와 같은 컬럼들이 준비됩니다:

  • week: 주차 정보 (예: 2023-W01)

  • spi_order: 출고량

  • mtf: 제조 정보 (optional)

  • warehouse: 창고 출고량

🧭 시계열 분해 (Decomposition)

이제 spi_order 데이터를 시계열 분해하여 추세(Trend), 계절성(Seasonality), 불규칙성(Residual) 요소를 분리합니다. 이를 통해 출고량의 구조를 더 명확히 이해할 수 있습니다.

from statsmodels.tsa.seasonal import seasonal_decompose
import matplotlib.pyplot as plt

df['spi_order'] = df['spi_order'].astype(float)
result = seasonal_decompose(df['spi_order'], model='additive', period=4)

result.plot()
plt.show()

결과는 다음과 같은 시각화로 표현됩니다:

  • Trend: 전반적인 출고량의 증가/감소 방향
  • Seasonal: 주기적인 출고 패턴
  • Residual: 그 외 불규칙한 요인

✅ 이 단계는 모델링 전 데이터 패턴을 이해하는 데 매우 중요합니다.

🔮 다음 단계: 예측 모델링 (예정)

시계열 분해 후에는 ARIMA, Prophet 등 다양한 시계열 예측 모델을 활용해 향후 몇 주간의 출고량을 예측할 수 있습니다. 이를 통해 다음과 같은 의사결정에 활용할 수 있죠:

  • 출고량 급증 시 인력 배치 조정

  • 특정 시즌 전 재고 확보 전략 수립

  • 물류 차량 및 창고 운영 스케줄 최적화

(이 부분은 다음 포스트에서 구체적으로 다룰 예정입니다.)

🧠 마무리하며

이번 글에서는 이케아 스마트 물류 데이터를 바탕으로 시계열 분석의 기초를 다뤄보았습니다. 초보 데이터 분석가라면, 이런 실생활 기반 데이터를 직접 다뤄보며 분석 감각을 익히는 것이 큰 도움이 됩니다.

앞으로는 이 데이터를 기반으로 한 예측 모델링, 그리고 실제 업무 적용 사례도 공유할 예정이니 기대해 주세요!