[Project] Arima Model을 이용한 주가 예측 분석
- 분석 동기
코로나 19 이후로 주식투자에 대한 열풍이 일어났다. 그러나, 작년(2020년) 주가 상승에 비해 횡보하는 시기가 길어지고, 미국 연방준비은행의 금리 인상과 테이퍼링 이슈로 향후 주가의 방향성에 대해 다양한 논의가 이루어지고 있다. 주가 데이터는 대표적인 시계열 자료라는 점과 ARIMA 모델로 실험하여 주식 가격을 예측한 논문을 착안하여 분석을 진행하였다.
- 분석 대상
논문은 Stock Price Prediction Using Arima Model(Supriti Khandelwal, Debasis Mohanty, International Journal of Marketing & Human Resource Research, 2021 April)을 참고하였다. 분석을 위해 2018년 06월 01일부터 2021년 5월 31일까지 3년간의 데이터를 INVESTING.COM에서 취합하였다. 우리나라의 대표산업으로 반도체 지수 지표인KOSDAQ Semiconductor, 경기에 민감한 소비재를 포함한 지수인 KOSDAQ Food Beverage & Tobacco, 금리 인상에 영향을 받으며 안정적인 주가 지수를 대표하는 금융 지수인 KOSDAQ Financials을 선정하여 3가지 대표 분야의 주가를 ARIMA 모델을 적용하여 분석할 것이다. 분석한 데이터를 토대로 2021년 6월부터 2021년 12월까지 7개월 간의 미래 주가를 예측하고자 한다. 데이터는 각각 Date(날짜), Price(종가), Open(시가), High(고점), Low(저점), Vol.(거래량), Change(변동률)로 구성되어있으며, 분석에서는 Price(종가) 데이터를 이용하여 진행한다.
- 데이터 분석
1. 시도포(Time)를 통한 시계열 데이터 시각화
참고 논문에서는 비정상 시계열 데이터를 정상 시계열 데이터로 변환하기 위해 로그 변환을 해주었다. 데이터가 일정한 추세를 보이지 않거나 정상 시계열이 아닐 경우, 로그 변환은 ARIMA 모델을 사용하기 위해 준비하는데 중요한 단계가 될 수 있다. 그러나, 기간이 짧고 로그 변환 후 결과 값과 차이가 미비하며, 세 분야의 시도표가 어느 정도의 추세와 순환의 방향을 갖는 것으로 판단하여 로그 변환 없이 분석을 진행했다.
2. 자기 상관 함수(Autocorrelation Function)와 편자기 상관 함수(Partial Autocorrelation Function)
자기 상관은 일반적으로 시계열이 과거의 값과 관련이 있다는 것을 의미하지만, ACF는 lag의 단위와 점 사이의 상관관계를 볼 수 있다. X축에 상관계수가 있는 반면 시차의 수는 y축 내에 있다.
편자기 상관은 AR 모형의 차수를 추정하기 위한 방법 중의 하나로, Yt와 Yt−k사이에 있는Yt−1,⋯,Yt−(k−1)의 영향을 제거하고 Yt와 Yt−k 둘 사이의 관계를 파악하는 방법이다. 따라서, 짧은 시차로 인해서 발생할 수 있는 상관관계의 영향을 제거한 후에 발생할 수 있는 상관관계를 파악하기 위해 활용한다.
3. 1차 차분
시계열 도표에서 2개 이상의 연속되는 기간에 랜덤 점프가 존재하기 때문에 1차 차분을 한다. 랜덤 점프는 ARIMA 모델에서 오류를 발생시킬 수 있으며, MA 모형에 지연이 발생할 수 있다. 따라서, 지수 평활과 같이 랜덤 점프를 매끄럽게 하기 위해 차분을 진행한다.
- 섹터별 해석 및 예측
1. KOSDAQ Semiconductor 데이터 해석
Call:
arima(x = kd_sc.ts, order = c(0, 1, 0))
sigma^2 estimated as 9129: log likelihood = -209.25, aic = 420.5
위의 결과에 따르면, ARIMA 모델은 (0, 1, 0)으로 비정상 시계열일 때, 가장 기본인 랜덤워크 모델이라는 것을 알 수 있다.
Box-Ljung test
data: kd_sc.arima$residuals
X-squared = 0.0022066, df = 1, p-value = 0.9625
모형의 타당성을 판단하기 위해 모형의 잔차를 이용하여 카이제곱 검정방법으로 시계열 모형이 적절한지 검정하는 방법으로 Box-Ljung Test를 시행했다. p-value가 0.9625로 0.05이상이므로 위의 ARIMA 모델이 통계적으로 적절하다고 볼 수 있다.
Forecast <dbl> |
Lo 80 <dbl> |
Hi 80 <dbl> |
Lo 95 <dbl> |
Hi 95 <dbl> |
|
Jun 2021 | 1797.62 | 1675.176 | 1920.064 | 1610.358 | 1984.882 |
Jul 2021 | 1797.62 | 1624.458 | 1970.782 | 1532.791 | 2062.449 |
Aug 2021 | 1797.62 | 1585.540 | 2009.700 | 1473.272 | 2121.968 |
Sep 2021 | 1797.62 | 1552.731 | 2042.509 | 1423.095 | 2172.145 |
Oct 2021 | 1797.62 | 1523.826 | 2071.414 | 1378.889 | 2216.351 |
Nov 2021 | 1797.62 | 1497.694 | 2097.546 | 1338.923 | 2256.317 |
Dec 2021 | 1797.62 | 1473.663 | 2121.577 | 1302.170 | 2293.070 |
위의 표와 그래프는 2021년 06월부터 2021년 12월까지의 반도체 지수를 예측한 것이다. 6월부터 12월까지 비슷한 지수를 유지하는 추세로 예상되며, 신뢰 구간 사이에서 연말로 갈수록 변화의 폭이 있을 것으로 예측된다.
2. KOSDAQ Food Beverage & Tobacco 데이터 해석
Call:
arima(x = kd_fbt.ts, order = c(1, 0, 0))
Coefficients:
ar1 intercept
0.7308 9896.7228
s.e. 0.1199 400.7584
sigma^2 estimated as 451827: log likelihood = -285.84, aic = 577.69
위의 결과에 따르면 ARIMA 모델은 (1, 0, 0)이다.
Box-Ljung test
data: kd_fbt.arima$residuals
X-squared = 0.10426, df = 1, p-value = 0.7468
모형의 타당성을 판단하기 위해 Box-Ljung Test를 시행했을 때, p-value가 0.7468로 0.05이상이므로 위의 ARIMA 모델이 통계적으로 적절하다고 볼 수 있다.
Forecast <dbl> |
Lo 80 <dbl> |
Hi 80 <dbl> |
Lo 95 <dbl> |
Hi 95 <dbl> |
|
Jun 2021 | 10827.34 | 9965.909 | 11688.78 | 9509.893 | 12144.79 |
Jul 2021 | 10576.79 | 9509.857 | 11643.73 | 8945.055 | 12208.53 |
Aug 2021 | 10393.70 | 9231.812 | 11555.58 | 8616.747 | 12170.65 |
Sep 2021 | 10259.90 | 9050.356 | 11469.44 | 8410.063 | 12109.73 |
Oct 2021 | 10162.12 | 8927.882 | 11396.36 | 8274.516 | 12049.73 |
Nov 2021 | 10090.67 | 8843.441 | 11337.89 | 8183.199 | 11998.14 |
Dec 2021 | 10038.45 | 8784.344 | 11292.56 | 8120.460 | 11956.44 |
위의 표와 그래프로 볼 때, 식음료와 담배 같은 소비재의 경우 2021년 6월부터 하락하는 추세로 2021년 12월까지 점진적으로 하락 추세가 이어질 것으로 보인다.
3. KOSDAQ Financials 데이터 해석
Call:
arima(x = kd_fin.ts, order = c(0, 2, 1))
Coefficients:
ma1
-0.8178
s.e. 0.0947
sigma^2 estimated as 3812: log likelihood = -188.98, aic = 381.96
위의 결과로 볼 때, 금융 지수 ARIMA 모델은 (0, 2, 1)이다.
Box-Ljung test
data: kd_fin.arima$residuals
X-squared = 0.59019, df = 1, p-value = 0.4423
모형의 타당성을 판단하기 위해 Box-Ljung Test를 시행했을 때, p-value가 0.4423으로 0.05이상이므로 위의 ARIMA 모델이 통계적으로 적절하다고 볼 수 있다.
Forecast <dbl> |
Lo 80 <dbl> |
Hi 80 <dbl> |
Lo 95 <dbl> |
Hi 95 <dbl> |
|
Jun 2021 | 1312.128 | 1232.998 | 1391.257 | 1191.109 | 1433.146 |
Jul 2021 | 1375.735 | 1253.209 | 1498.262 | 1188.347 | 1563.124 |
Aug 2021 | 1439.343 | 1276.035 | 1602.651 | 1189.585 | 1689.102 |
Sep 2021 | 1502.951 | 1298.873 | 1707.029 | 1190.841 | 1815.061 |
Oct 2021 | 1566.559 | 1320.869 | 1812.248 | 1190.809 | 1942.308 |
Nov 2021 | 1630.166 | 1341.668 | 1918.665 | 1188.946 | 2071.387 |
Dec 2021 | 1693.774 | 1361.105 | 2026.443 | 1185.001 | 2202.547 |
위의 표와 그래프에 따르면, 금융 지수는 2021년 6월부터 2021년 12월까지 추세적으로 상승할 것으로 예측된다. 위의 소비재 지수 예측과는 반대로 점진적으로 상승하는 추세의 그래프를 볼 수 있다.
- 결론
분석에서 3개의 분야에서 3년간의 데이터를 추출하여 ARIMA 모델을 활용하여 주가 예측을 했다. 분석도구는 R 프로그래밍을 사용하였으며, 2021년 6월부터 2021년 12월까지 월간 주가 데이터를 예측했다. 분석에 따르면, 반도체 주가 지수는 2021년 6월부터 비슷한 수준으로 횡보할 것으로 보인다. 반면, 소비재와 금융 주가는 상반된 추세를 보이며, 소비재 지수는 2021년 12월까지 추세적 하락을 하고 금융 지수는 2021년 12월까지 추세적 상승을 이룰 것으로 예측된다.
분석 후 6월 7월 두 달간의 주가와 예측 주가 간의 비교를 해보았다. 주가는 각각 반도체(6월: 1,903.75/ 7월: 1,896.47), 소비재(6월: 11,593.94/ 7월: 11,539.59 ), 금융(6월: 1,186.03/ 7월: 1,189.60)으로 예상 값과 정확히 일치하지는 않지만 신뢰구간 안에 들어오며, 비슷한 추세를 보이고 있다. 주가 데이터는 경제, 정치 등 다양한 상황에 영향을 받는다는 점을 고려해야 한다. 따라서, 과거의 주가를 기준으로 예측한 본 분석의 결과 값이 신뢰 구간 안에서의 방향성을 따른다는 것과 ARIMA 모형을 사용하여 주가 데이터를 예측했다는 점에 의의를 둔다.
주가를 분석하기 위해 회귀 방법론, 지수 평활, GARCH 등을 모델을 적용 할 수 있으므로 더 높은 예측을 위해 향후 모델 간 정확도를 상세히 연구해 볼 만한 가치가 있다.
분석한 R코드는 아래 github에 저장되어 있습니다 :)
https://github.com/LydiaRyu/Finance-Data/blob/main/KOSDAQ_prediction_ARIMA.R
LydiaRyu/Finance-Data
Contribute to LydiaRyu/Finance-Data development by creating an account on GitHub.
github.com