왠지 모르게 공부하면 공부할 수록 더 모르겠는 시계열 분석 재정리
이전에 정리했던 기본 내용:
https://stherhj.tistory.com/160?category=1052148
ARIMA의 input data format? ("정상성 데이터: ARIMA 모형을 적용하기 위한 조건" → 정말 그러한가..?)
[!] ARIMA :
AR(자기상관: 과거 관측값을 통해 예측 모델 생성 *다중 회귀 모형과의 차이: 독립성 가정이 깨짐. p 얼마나 이전의 값이 이후의 값에 영향을 미치고 있는가?)
+
MA(이동평균: 과거 예측 오차를 통해 예측 모델 생성 q 어느 정도 기간의 평균 값이 추세를 보이고 있는가?)
+
I(차분: d 비정상성을 정상성으로 만들기 위해 관측값들의 차이를 계산, 결과값은 비차분화 과정을 거쳐 최종 예측값으로 변환 *보통 1차, 최대 2차 d시점 차이의 값을 빼는 것. 1차 차분 후 한 번 더 차분하는 것이 아니라)
[!] 정상성 데이터 확인 방법
1) ADF(adfuller, Augmented Dickey-Fullter) Test의 p-value 확인(H0: non stationary)
OR
2) ACF(Auto Correlation Function)의 graph trend 확인(특정한 패턴 없이 랜덤하게 그려지는 경우 stationary하다고 파악, otherwise, ACF가 일정하게 천천히 줄어든다. 높낮이 흐름이 있더라도 천천히 줄어든다? 비정상)
→ 비정상성이 확인되면 차분 시도!([R] library(forecast); ndiffs(dataset) 을 통해 정상성 확보를 위한 차분의 횟수를 파악가능)
[?] 차분 이후 데이터를 ARIMA에 적합할지 혹은 차분 이전의 비정상성 데이터를 input으로 활용할지?
→ ARIMA(traing.x, order=(p,d,q), trend= ' ') 차분의 과정을 포함하고 있으므로 raw data 그 자체를 input으로 활용
[?] 차분을 통해서 trend만 제거 가능한데, 시기별로 분산이 달라지는 비정상성은 어떻게 처리하는지? 혹은 계절성이 있는 데이터는?
→ 달라지는 분산에 의한 비정상성은 input으로 활용하기 전에 처리, 계절성을 보이는 데이터는 ARIMA로 분석하기 적절하지 않으며 SARIMA를 활용(-auto.arima를 통해 parameter search 가능).
*log transformation necessity의 통계적 근거를 찾는 방법: Goldfeld-Quandt Test
library(lmtest)
if ((gqtest(x~1)$p.value < 0.10) {
x<-log(x)
}
[?] (additional q) log transformed -> 결과값을 뱉을 때에는 차분은 un차분 해주는데 log 반대 exp?는 어떻게 해주는지, 그리고 앞으로 만날 test set은 어떻게 input으로 활용될지?
[!] Parameter 선택 방법(p,d,q 중 p&q)
*ACF, PACF 그래프는
1) 이전에 raw data의 정상성을 확인을 위해 plot의 trend를 살펴보기도 하고
2) 이후에 적합 모델을 선택하기 위해 그 형태를 파악(기준은 아래 table 확인)
3) 더 나아가 모델에 대한 파라미터 선택을 위해 plot의 0(찐0 대신 신뢰구간 0 안에 들어오는)으로 들어오는 lag를 확인
무우조오건 ARIMA! 가 아니라 '비슷한 성능을 보이는 모형이라면 parameter의 개수가 가장 적은 것을 선택한다.'라는 원칙에 따라 ACF, PACF를 확인하여 AR, MA, ARMA 등 고려 가능
[!] ACF, PACF 그래프 plot 에서 파란색 점선은 각각 자기상관과 편자기상관이 0이라는 주장에 대한 95%신뢰구간을 나타내므로 안쪽에 있는 값들은 통계적으로 0임을 의미.
[!] 모델 적합 후 train에 활용한 동일 데이터셋 예측 후 accuracy(RMSE 등을 보여주는) 확인(train acc.일뿐, but to check residuals)
1) QQplot을 그려 잔차가 정규분포를 따르는지 파악해본다.
2) box.test를 통해 잔차들의 상관관계가 0이라는 귀무가설을 기각하는지 여부 파악해본다.
이후 forecast 진행(현실에선는 요 test set의 label이 없는거)
'쫌쫌따리 통계+데이터+AI' 카테고리의 다른 글
Google Cloud Certified - Professional Machine Learning Engineer (1) | 2022.09.09 |
---|---|
z검정, t검정 정리와 기출문제 (0) | 2022.08.29 |
2. 제 3장 정형 데이터 마이닝 제 3절 군집분석 (1) | 2022.07.25 |
Tensorflow Developer Certificate (1) | 2022.07.08 |
25회 ADP 데이터 분석 전문가 실기 (22/06/18) (0) | 2022.06.19 |
댓글