농산물 시세 예측 ARIMA 모델 개발
팀 프로젝트 (통계 학술 동아리 정독실)
제1회 전남대학교 통계학과 빅데이터 경진대회
발표자료 & 코드 [GitHub]
2019.12 ~ 2020.01
ARIMA 모델은 시계열 분석 기법의 한 종류로, 과거의 관측값과 오차를 사용해서 현재의 시계열 값을 설명하는 ARMA 모델을 일반화한 것이다. 이는 ARMA 모델이 안정적 시계열에만 적용 가능한 것에 비해, 분석 대상이 약간은 비안정적 시계열의 특징을 보여도 적용이 가능하다는 의미이다. 안정적 시계열이란 시간의 추이와 관계없이 평균, 분산이 불변하고, 두 시점 간의 공분산이 기준시점과 무관한 특징을 가진 시계열을 말한다. 시계열이 안정된 시계열인지 여부가 중요한 이유는 일반적인 시계열 분석에서는 시계열이 안정적 시계열이어야 하기 때문이다. 시계열이 안정적이지 않을 때는 로그를 이용하거나 차분을 통해 시계열을 안정적으로 변환한 뒤에 분석을 진행해야 한다.
안정적 시계열이란 시간의 추이와 관계없이 평균, 분산이 불변하고, 두 시점 간의 공분산이 기준시점과 무관한 특징을 가진 시계열을 말한다.
시간에 따른 양파 가격 그래프와 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보다 크므로 평균이 비정상적인 것으로 판단하여 안정적인 시계열이 아니라고 판단하였다.
주어진 시계열 데이터를 안정적 시계열로 바꾸는 방법에는 차분(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보다 작으므로 데이터가 안정적 시계열로 변환되었음을 확인할 수 있다.
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를 사용해서 구한 파라미터가 모델의 가정을 만족하지 않는다고 할 수 있는데 뚜렷한 패턴이 없는 것으로 보아 대체로 가정을 만족한다고 볼 수 있다.
auto.arima를 이용하여 구한 모델인 (0,1,0)(1,1,0)[12]를 포함하고, 이와 유사한 2개의 모델을 후보로 선정하였다.

파란색이 실제 Test 데이터이고, 빨간색이 ARIMA 모델이 예측한 데이터이다.
3개의 모델 중 Test 데이터를 가장 잘 나타내는 모델3을 선택했다.
양파의 출하시기인 5~7월에 최저 가격을 형성하고, 그 이후 저장비용의 영향으로 가격이 계속 증가하여 이듬해 4월경에 최고 가격에 이르는 계절적인 패턴을 발견하였다. 이를 기반으로 하여 대략적인 가격을 예측할 수 있었다.
하지만 예측값이 평균에 회귀하는 특징이 있어 매년 비슷한 패턴이 반복되어 변동이 매우 심한 양파의 가격을 시간에 따른 가격의 변화만을 가지고 예측하는 데에는 한계가 있었다.
우수상 (2위)
양파가격 시계열분석을 하는 동안 ARIMA모델의 최적화된 파라미터를 찾는 데에 어려움이 있었다. 앞서 사용한 auto.arima 함수를 사용하는 방법 외에 ACF, PACF 그래프를 분석하여 최적화된 파라미터를 찾는 방법도 활용하고 싶었지만 아직 시계열 수업을 듣지 못해서 그래프에 대한 이해도가 낮아 실패하였다. 추후에 시계열 수업을 들은 후에는 더욱 좋은 결과를 도출할 수 있을 것으로 기대된다.
ARIMA 모델으로 예측한 양파 시세는 평균에 회귀하는 특징이 있어 매년 비슷한 패턴을 보여주었고, 양파 시세를 예측하는 데에 한계가 있었다. 이는 날씨, 수확량, 경제 상황 등에 큰 영향을 받는 양파 가격을 예측하는 데에 단일 변수의 시계열 분석으로는 부족하기 때문으로 판단된다. 여러 변수들을 활용할 수 있는 머신러닝 기법을 통해 양파 시세를 예측한다면 더 좋은 결과를 도출할 수 있을 것으로 기대된다.
양파 출하시기 도매가격 예측모형 연구 [Paper]
신뢰성 해석기법을 이용한 배추 가격 예측 모형의 개발 [Paper]
https://stat-and-news-by-daragon9.tistory.com/58?category=701756
https://otexts.com/fppkr/seasonal-arima.html#fig:euretail3