일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 가나다영
- SQLD
- kaggle
- 빅분기
- 한국전자통신연구원 인턴
- 웹크롤링
- 다변량분석
- kt aivle school
- cnn
- 소셜네트워크분석
- ETRI
- arima
- 서평
- KT 에이블스쿨
- 에이블스쿨
- Eda
- 지도학습
- 에이블러
- 빅데이터분석기사
- ggplot2
- 기계학습
- Ai
- 딥러닝
- ML
- 머신러닝
- hadoop
- 시계열
- 프로그래머스
- dx
- r
- KT AIVLE
- SQL
- python
- 한국전자통신연구원
- 하둡
- 에트리 인턴
- httr
- matplot
- 하계인턴
- 시각화
- Today
- Total
소품집
ARIMA model & 정상성 파악 본문
정상성 (stationaruty)
정상성 (stationarity)의 특징을 갖는 시계열은 무엇일까요?
정상성 유무의 판단은 분석마다 다르지만, 가져온 출처에서는 (b), (c), (d), (h)라고 합니다.
++'(b)가 어떻게 정상성을 갖느냐?' 라 생각할 수도 있지만 약간의 튄 값은 융통성으로 무마해준다고 합니다.
정상성을 만족하기 위해선시계열의 확률적인 성질들이 시간의 흐름에 따라 불변해야 하는 조건을 만족해야 하는데요.
- 뚜렷한 추세가 없음. 즉, 시계열의 평균이 시간 축에 평행
- 시계열의 진폭(변동)이 시간의 흐름에 따라 일정
시계열데이터 변환
정상성을 만족하지 못한 시계열 데이터를 어떻게 하여 활용되어질 수 있을까요?
비정상 확률과정 (nonstationary process)을 정상 확률과정(stationary process)으로 변환하는 방법에는 크게 두 가지가 있습니다.
- 차분 (differencing) : 평균의 정상화
- 자연로그 (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)
'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 |