업로드된 이미지에서 제공된 데이터에 대해 시계열 분석을 진행할 수 있도록 파이썬 코드로 전처리하고, 이후 예측 과정을 진행하겠습니다.
### 1. 데이터 전처리
우선, 이미지를 기반으로 데이터를 다음과 같이 파이썬 데이터프레임 형태로 구성할 수 있습니다.
```python
import pandas as pd
# 데이터 생성
data = {
'date': ['2021-01', '2021-02', '2021-03', '2021-04', '2021-05', '2021-06', '2021-07', '2021-08', '2021-09', '2021-10', '2021-11', '2021-12',
'2022-01', '2022-02', '2022-03', '2022-04', '2022-05', '2022-06', '2022-07', '2022-08', '2022-09', '2022-10', '2022-11', '2022-12'],
'sales': [11301, 9743, 13165, 12985, 13307, 13015, 16055, 14788, 12689, 12686, 11980, 13172,
14496, 9673, 13308, 12407, 13696, 10794, 12494, 14924, 14851, 13140, 11611, 16291],
'category': ['라면, 통조림, 상온즉석'] * 24 # 중분류는 분석에 사용되지 않음
}
# DataFrame 생성
df = pd.DataFrame(data)
# 날짜 형식 변환 (연-월)
df['date'] = pd.to_datetime(df['date'], format='%Y-%m')
# date 컬럼을 인덱스로 설정
df.set_index('date', inplace=True)
# 데이터 확인
print(df.head())
```
### 2. 시계열 데이터 시각화
먼저 데이터를 시각화하여 전체적인 트렌드를 확인합니다.
```python
import matplotlib.pyplot as plt
# 시계열 데이터 시각화
plt.figure(figsize=(10, 6))
plt.plot(df.index, df['sales'], marker='o')
plt.title('Monthly Sales Data (2021-2022)')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.grid(True)
plt.show()
```
### 3. 시계열 분해
시계열 데이터를 추세(trend), 계절성(seasonality), 잔차(residuals)로 분해해 확인합니다.
```python
from statsmodels.tsa.seasonal import seasonal_decompose
# 시계열 분해 (연간 주기)
decomposition = seasonal_decompose(df['sales'], model='additive', period=12)
# 시각화
decomposition.plot()
plt.show()
```
### 4. 모델 생성 및 예측
`ARIMA` 모델을 이용해 2023년도 매출을 예측합니다.
```python
from statsmodels.tsa.arima.model import ARIMA
# ARIMA 모델 생성 (p, d, q 파라미터는 추정 필요)
model = ARIMA(df['sales'], order=(1, 1, 1))
# 모델 학습
model_fit = model.fit()
# 모델 요약 출력
print(model_fit.summary())
```
### 5. 2023년도 매출 예측
2023년도 1월부터 12월까지의 매출량을 예측합니다.
```python
# 12개월 예측 (2023년 1월 ~ 12월)
forecast = model_fit.forecast(steps=12)
# 예측 결과 출력
forecast_index = pd.date_range(start='2023-01-01', periods=12, freq='M')
forecast_series = pd.Series(forecast, index=forecast_index)
print(forecast_series)
```
### 6. 예측 시각화
기존 데이터와 예측된 데이터를 함께 시각화합니다.
```python
# 기존 데이터와 예측 데이터 함께 시각화
plt.figure(figsize=(10, 6))
plt.plot(df.index, df['sales'], label='Observed', marker='o')
plt.plot(forecast_series.index, forecast_series, label='Forecast', marker='o', color='red')
plt.title('Sales Forecast for 2023')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.grid(True)
plt.show()
```
이 과정으로 제공된 데이터를 바탕으로 2023년도 매출량을 예측할 수 있습니다. 추가적인 조정이나 파라미터 최적화가 필요하다면, `ARIMA` 모델의 `p`, `d`, `q` 파라미터를 튜닝하거나 다른 모델을 고려할 수 있습니다.