[프로젝트] 농산물 시세 예측

JaeGwon-Lee·2024년 8월 27일

프로젝트

목록 보기
2/17

개요

농산물 시세 예측 ARIMA 모델 개발

  • 양파 시세에 대한 시계열 데이터를 전처리하였다.
  • R 프로그램을 활용하여 ARIMA 모델을 개발하고, 양파 시세를 예측하였다.

팀 프로젝트 (통계 학술 동아리 정독실)
제1회 전남대학교 통계학과 빅데이터 경진대회
발표자료 & 코드   [GitHub]


기간

2019.12 ~ 2020.01


역할

  • 양파 시세 데이터 전처리
  • ARIMA 모델링

양파 시세 데이터 전처리

  • 농업관측 통계정보시스템(OASIS)에서 광주 서부도매시장 내 양파의 경락가격 원 데이터를 다운받아 이용하였다.
  • 2010년 1월부터 2019년 12월까지 10년간의 자료 18896개를 1kg당 평균가격을 기준으로 통일하고, 이상치 제거를 위해 하위 0.5%와 상위 0.5%를 제거하였다.
  • 원 데이터의 평균가격을 월별로 분류하여 평균한 월별가격을 계산하였다.
  • 전월 대비 평균가격의 변화를 그래프로 나타내어 가격변화가 심한 시기가 언제인지 알아보았다.
  • 2010년부터 2016년까지의 데이터는 train 데이터로 2017년부터 2019년까지의 데이터는 test 데이터로 나누었다.

ARIMA (Auto-regressive Integrated Moving Average)

ARIMA 모델은 시계열 분석 기법의 한 종류로, 과거의 관측값과 오차를 사용해서 현재의 시계열 값을 설명하는 ARMA 모델을 일반화한 것이다. 이는 ARMA 모델이 안정적 시계열에만 적용 가능한 것에 비해, 분석 대상이 약간은 비안정적 시계열의 특징을 보여도 적용이 가능하다는 의미이다. 안정적 시계열이란 시간의 추이와 관계없이 평균, 분산이 불변하고, 두 시점 간의 공분산이 기준시점과 무관한 특징을 가진 시계열을 말한다. 시계열이 안정된 시계열인지 여부가 중요한 이유는 일반적인 시계열 분석에서는 시계열이 안정적 시계열이어야 하기 때문이다. 시계열이 안정적이지 않을 때는 로그를 이용하거나 차분을 통해 시계열을 안정적으로 변환한 뒤에 분석을 진행해야 한다.


ARIMA 분석 절차

  1. 자료가 안정적 시계열인지를 확인한다.
  2. 안정적이지 않다면 시계열 자료를 안정적 시계열로 변환한다.
  3. ACF/PACF 차트와 auto.arima 함수를 사용하여 최적화된 파라미터를 찾는다.
  4. ARIMA 모델을 만든다.
  5. 미래 추세를 예측한다.

ARIMA 분석

1. 시계열의 안정성 확인

안정적 시계열이란 시간의 추이와 관계없이 평균, 분산이 불변하고, 두 시점 간의 공분산이 기준시점과 무관한 특징을 가진 시계열을 말한다.

시간에 따른 양파 가격 그래프와 Seasonality, Trend, Random 요소로 분해한 그래프를 그려보았다.

시간의 추이에 따라 평균과 분산이 변하므로 안정적인 시계열이 아닌 것으로 판단되며 계절성이 존재한다는 것을 알 수 있다.

더 정확한 분석을 위해 Dickey-Fuller 단위근 검정을 시행하여 시계열이 안정적 시계열인지 여부를 확인하였다.

Augmented Dickey-Fuller Test

data : data
Dickey-Fuller = -2.3659, Lag order = 0, p-value = 0.4258
alternative hypothesis : stationary

p-value가 0.4258으로 0.05보다 크므로 평균이 비정상적인 것으로 판단하여 안정적인 시계열이 아니라고 판단하였다.

2. 안정적인 시계열로 변환

주어진 시계열 데이터를 안정적 시계열로 바꾸는 방법에는 차분(diff)과 로그함수(log)가 있다.

안정적 시계열로 바꾸기 위해 차분과 로그함수를 적용하였고, 데이터에 계절성이 존재하므로 계절성 차분을 실행하였다.

Augmented Dickey-Fuller Test

data : diff(diff(log(data)), 12)
Dickey-Fuller = -5.6584, Lag order = 0, p-value = 0.01
alternative hypothesis : stationary

Dickey-Fuller 단위근 검정 결과, p-value가 0.01보다 작으므로 데이터가 안정적 시계열로 변환되었음을 확인할 수 있다.

3. 최적화된 파라미터 탐색

ARIMA 모델은 AR 모델, MA 모델을 결합(I)한 것이므로 세 가지 모델을 위한 세 개의 파리미터(p, d, q)가 필요하다. 파라미터를 구하기 위해서는 AR 모델의 p 차수 MA 의 q 차수 그리고 트랜드를 제거하여 안정시계열로 만들기 위한 I 의 차분 차수 d를 결정해야 한다. 이는 KPSS test4, ACF, PACF 그래프를 그려보거나 프로그램을 통해 확인할 수 있다.

R 언어의 auto.arima 함수를 사용하면 ARIMA 모델의 차수인 p, d, q, 계절성 파라미터인 P, D, Q가 자동으로 결정되고, AICc값이 가장 작은 모델을 골라준다. 차분과 계절성차분을 각각 한번씩 했으므로 d=1, D=1로 지정해준다.

cf) AICc (Akaike Information Criterion correction) : 수정된 Akaike 정보 기준

Series: diff(diff(log(data)), 12) 
ARIMA(0,1,0)(1,1,0)[12] 

Coefficients:
         sar1
      -0.6620
s.e.   0.1027

sigma^2 estimated as 0.2136:  log likelihood=-40.48
AIC=84.96   AICc=85.18   BIC=89.09

차분계수와 계절성 차분계수를 1로 설정한 auto.arima의 결과, AICc 값이 가장 작은 (0,1,0)(1,1,0)[12]가 최적화된 파라미터이다.

이 그래프들은 auto.arima 함수를 사용해서 구한 파라미터가 모델의 가정을 만족하는지 보여준다.

세가지 그래프가 모두 점점 증가하거나, 감소하거나 하는 뚜렷한 패턴이 있으면 auto.arima를 사용해서 구한 파라미터가 모델의 가정을 만족하지 않는다고 할 수 있는데 뚜렷한 패턴이 없는 것으로 보아 대체로 가정을 만족한다고 볼 수 있다.

4. ARIMA 모델 선정

auto.arima를 이용하여 구한 모델인 (0,1,0)(1,1,0)[12]를 포함하고, 이와 유사한 2개의 모델을 후보로 선정하였다.

파란색이 실제 Test 데이터이고, 빨간색이 ARIMA 모델이 예측한 데이터이다.
3개의 모델 중 Test 데이터를 가장 잘 나타내는 모델3을 선택했다.

5. 미래 추세 예측

양파의 출하시기인 5~7월에 최저 가격을 형성하고, 그 이후 저장비용의 영향으로 가격이 계속 증가하여 이듬해 4월경에 최고 가격에 이르는 계절적인 패턴을 발견하였다. 이를 기반으로 하여 대략적인 가격을 예측할 수 있었다.

하지만 예측값이 평균에 회귀하는 특징이 있어 매년 비슷한 패턴이 반복되어 변동이 매우 심한 양파의 가격을 시간에 따른 가격의 변화만을 가지고 예측하는 데에는 한계가 있었다.


성과 및 배운점

우수상 (2위)

양파가격 시계열분석을 하는 동안 ARIMA모델의 최적화된 파라미터를 찾는 데에 어려움이 있었다. 앞서 사용한 auto.arima 함수를 사용하는 방법 외에 ACF, PACF 그래프를 분석하여 최적화된 파라미터를 찾는 방법도 활용하고 싶었지만 아직 시계열 수업을 듣지 못해서 그래프에 대한 이해도가 낮아 실패하였다. 추후에 시계열 수업을 들은 후에는 더욱 좋은 결과를 도출할 수 있을 것으로 기대된다.

ARIMA 모델으로 예측한 양파 시세는 평균에 회귀하는 특징이 있어 매년 비슷한 패턴을 보여주었고, 양파 시세를 예측하는 데에 한계가 있었다. 이는 날씨, 수확량, 경제 상황 등에 큰 영향을 받는 양파 가격을 예측하는 데에 단일 변수의 시계열 분석으로는 부족하기 때문으로 판단된다. 여러 변수들을 활용할 수 있는 머신러닝 기법을 통해 양파 시세를 예측한다면 더 좋은 결과를 도출할 수 있을 것으로 기대된다.



Reference

양파 출하시기 도매가격 예측모형 연구   [Paper]
신뢰성 해석기법을 이용한 배추 가격 예측 모형의 개발   [Paper]
https://stat-and-news-by-daragon9.tistory.com/58?category=701756
https://otexts.com/fppkr/seasonal-arima.html#fig:euretail3

0개의 댓글