소품집

ARIMA model & 정상성 파악 본문

Time series

ARIMA model & 정상성 파악

sodayeong 2020. 6. 5. 22:06

정상성 (stationaruty)


정상성 (stationarity)의 특징을 갖는 시계열은 무엇일까요?

정상성 유무의 판단은 분석마다 다르지만, 가져온 출처에서는 (b), (c), (d), (h)라고 합니다.

++'(b)가 어떻게 정상성을 갖느냐?' 라 생각할 수도 있지만 약간의 튄 값은 융통성으로 무마해준다고 합니다.

정상성을 만족하기 위해선시계열의 확률적인 성질들이 시간의 흐름에 따라 불변해야 하는 조건을 만족해야 하는데요.

  • 뚜렷한 추세가 없음. 즉, 시계열의 평균이 시간 축에 평행
  • 시계열의 진폭(변동)이 시간의 흐름에 따라 일정

시계열데이터 변환


정상성을 만족하지 못한 시계열 데이터를 어떻게 하여 활용되어질 수 있을까요?

비정상 확률과정 (nonstationary process)을 정상 확률과정(stationary process)으로 변환하는 방법에는 크게 두 가지가 있습니다.

  1. 차분 (differencing) : 평균의 정상화
  2. 자연로그 (logrithm)변환 제곱 또는 제곱근 변환 : 분산 안정화

 

 

ex) Data - Airpassengers (fpp2 packages data)

AirPassenger

par(mfrow=c(2,2))

plot(AirPassengers)
plot(diff(AirPassengers))
plot(log(AirPassengers))
plot(diff(log(AirPassengers)))

 

Random Walk model (랜덤워크 모델)


비정상 데이터의 대표적인 예시

  • 장기간의 상승 또는 하락의 추세를 가짐

  • 예상하지 못한 방향 전환

  • 절편(추세)가 있는 경우

  • 예측 방법
    • naive forecasts (비정상성을 만족하는 시계열은 naive forecasts로 예측하는 경우가 많다)

 

원계열과 차분데이터의 ACF 함수


                     원계열 (차분 전 ) ACF                                                    원계열 + diff(차분후) PACF

 

# Random walk model

library(fpp2)
library(ggplot2)

set.seed(123)
x <- rnorm(300)
x <- w

for(t in 2:300) {
  x[t] = x[t-1] +w[t]
}

x.ts <- ts(x) # 시계열 데이터로 변환

ggAcf(x.ts) # 원계열
ggAcf(diff(x.ts)) # 원계열 차분 

 

 

추세가 없는 계열 - 예측방법 (naive forecasts)

  • naive 방법을 통해 원계열과 적합된 계열 차트로 그리기
  • 잔차 평가해보기 : checkresiduals(naive(data)) 활용
  • set.seed(123), 400개의 rnorm data 생성

set.seed(123)
x <- rnorm(400)
w <- x

for(t in 2:400 ){
  x[t] = x[t-1] + w[t]
}
ts_rw <-ts(x)

# 잔차 평가
checkresiduals(naive(ts_rw))

# 원데이터 + 적합 된 데이터 
plot(ts_rw)
lines(fitted(naive(ts_rw)), col='red',lwd=1)

 

추세가 있는 계열 - 예측방법 (naive forecasts)

  • naive 방법을 통해 원계열과 적합된 계열로 차트 생성
  • 잔차 평가해보기 : checkresiduals(naive(data)) 활용
  • set.seed(123), 400개의 rnorm data 생성 (0.3 절편)

set.seed(123)
x <- rnorm(400)
w <- x

for(t in 2:400 ){
  x[t] = x[t-1] + w[t] +0.3
}
ts_rw <-ts(x)

# 원계열 데이터 + 적합 된 데이터 
plot(ts_rw)
lines(fitted(naive(ts_rw)), col='red',lwd=1)
# 잔차 평가 
checkresiduals(naive(ts_rw))

 

 

정상성(stationarity)의 확률적 구조


(약한) 정상성 (stationaryti)

  • 평균값은 시간 t에 관계없이 일정하다.

  • 분산값은 시간 t에 관계없이 일정하다.

  • 공분산은 시간 t에 의존하지 않고 오직 시차(k)에만 의존한다.

     

  • 만일 세 가지 요건 중 하나라도 성립되지 않는 경우? → 비정상성 시계열 데이터!

  • 백색잡음은 대표적인 (강한) 정상시계열

    • meanf 예측 or naive 예측 중 어떤 방법이 더 우수하게 측정될까?
    • 정상성을 만족하기 때문에, meanf 방법을 이용할 때 우수하게 나올 수 있다.

 

 

정상시계열을 판단하는 방법


ACF 함수를 이용하는 방법

  • 원계열
  • 잔차에도 활용

시계열이 정상시계열임을 판정하는 방법 (통계적 검정)

  • Ljung-Box 검정 (원계열, 잔차검정에도 활용)
  • KPSS 검정 (Kwiatkowski-Phillips-Schmidt-shin test)
    • 단위근 검정 (unit root tests)

시계열의 단위근 존재 여부를 판정하는 방법 (통계적 검정)

  • ADF 검정 (Augmented Dickey-Fuller test)
  • Phillips-Peron 검정 (PP test)
728x90

'Time series' 카테고리의 다른 글

자기회귀모형 (Autoregressive models : AR) 식별법  (0) 2020.06.12
KPSS 검정  (0) 2020.06.08
시계열의 변동요인과 모형  (0) 2020.04.20
주가 시계열 자료 분석  (2) 2020.04.07
시계열 분석 - AirPassenger Data 등  (0) 2020.04.03
Comments