오늘은 시계열분석에 대해 알아보도록 하겠습니다요.
시계열자료는, 시간의 흐름에 따라 관찰된 데이터를 시계열 데이터 또는 시계열 자료라고 합니다.
이러한 시계열 자료에는 주식가격 데이터, 실업률, 기후데이터 등
우리 주위에서 많이 찾아볼 수 있습니다.
이런 시계열 데이터의 분석 목적은, 미래의 값을 예측하거나(향후 주가, 다음달 매출액 예측 등),
시계열 데이터의 특성 파악(경향, 주기, 계절성, 불규칙성 등)을 위함입니다.
1. 시계열자료
1) 역사
-17세기 태양의 흑점 자료나 밀 가격지수 변동을 나타내는 함수로 sin, cos곡선 활용
-Yule(1926) - ARMA 개념 제시, Walker(1937) - ARMA 모형 제시
-Durbin(1960), Box&Jenkins(1970) - ARMA 모형에 대한 추정
-Holt(1957) - 지수평활법(exponential smoothing) 제시
-Winter(1960) - 계절성(seasonal) 지수평활법 제시
#이렇게 보면 우리는 아직도 어렵다고 느껴지는 분석들이 옛~날부터 누군가는 저렇게..해왔다는게 신기할 따름입니다..ㅎㅎ;;
2) 시계열 자료
-시간의 흐름에 따라 관찰된 값들을 시계열 자료라 한다.
-일변량시계열분석 : Box-Jenkins(ARMA), 지수 평활법, 시계열 분해법, 시간(t)을 설명변수로 한 회귀모형 추가, 소매물가지수 등 하나의 변수에
관심을 갖는 경우의 시계열 분석이다.
일변량시계열분석 :
-다중시계열분석 : 계량경제모형, 전이함수모형, 개입분석, 상태공간 분석, 다변량ARIMA 등
-계량경제(econometrics) : 시계열 데이터에 대한 회귀분석( 이자율, 인플레이션이 환율에 미치는 요인 등)
- 비정상성 시계열 자료 : 시계열 분석하는 데 다루기 어려운 시계열 자료(대부분의 시계열자료)
- 정상성 시계열 자료 : 비정상 시계열을 핸들링해 다루기 쉬운 시계열 자료로 변환한 자료
2.정상성
1) 평균이 일정할 경우
: 모든 시점에 대해 일정한 평균을 가진다
-평균이 일정하지 않은 시계열은 차분(difference)를 통해 정상화
-차분은 현시점 자료에서 전 시점 자료를 빼는 것
-일반차분 (regular difference) : 바로 전 시점의 자료를 빼는 것
-계절차분 (seasonal difference) : 여러 시점 전의 자료를 빼는 것, 주로 계절성을 갖는 자료를 정상화 하는 데 사용
2) 평균이 일정하지 않고 분산도 시점에 의존하지 않을 경우
- 분산이 일정하지 않은 시계열은 변환(transformation)을 통해 정상화한다.
3) 공분산도 단지시차에만 의존, 실제 특정 시점 t,s에는 의존하지 않는다.
: 정상시계열의 특징
- 정상시계열은 어떤 시점에서 평균과 분산 그리고 특정한 시차의 길이를 갖는 자기공분산을 측정하더라도 동일한 값을 갖 는다.
- 정상시계열은 항상 그 평균값으로 회귀하려는 경향이 있으며, 그 평균값 주변에서의 변동은 대체로 일정한 폭을 갖는다.
- 정상시계열이 아닌 경우 특정 기간의 시계열 자료로부터 얻은 정보를 다른 시기로 일반화할 수 없다.
3. 시계열 자료 분석 방법
- 회귀분석(계량경제)방법, Box-Jenkins 방법, 지수평활법, 시계열 분해법 등이 있다.
: 수학적 이론모형 : 회귀분석(계량경제)방법, Box-Jenkins 방법
: 직관적 방법 : 지수평활법, 시계열 분해법으로 시간에 따른 변동이 느린 데이터 분석에 활용
: 장기 예측 : 회귀분석방법 활용
: 단기 예측 : Box-Jenkins 방법, 지수평활법, 시계열 분해법 활용
4. 시계열 모형
1) 자기회귀 모형 (AR모형, autoregressive model)
- p 시점 전의 자료가 현재 자료에 영향을 줌
Zt : 현재 시점의 시계열 자료
Zt-1, Zt-2, ... , Zp : 이전, 그 이전 시점 p의 시계열 자료
화이p : p시점이 현재에 어느 정도 영향을 주는 지 나타내는 모수
at : 백색잡음과정(White noise process), 시계열 분석에서의 오차항을 의미
-평균이 0, 분산이 , 자기공분산이 0인 경우.
-시계열간 확률적 독립인 경우 강(Strictly) 백색잡음과정이라 한다.
-백색잡음과정이 정규분포를 따를 경우 이를 가우시안(Gaussian) 백색잡음과정이라고 한다.
-AR(1) 모형 :
-AR(2) 모형 :
- 자기상관함수(ACF)는 빠르게 감소, 부분자기함수(PACF)는 어느 시점에서 절단점을 가진다.
(즉, ACF가 빠르게 감소하고, PACF가 2시점에서 절단점을 갖는 그래프가 있다면, 1시점 전의 자료까지가 현재에 영향을 미치는 AR(1) 모형이라 볼 수 있다.)
-자기상관계수 (AutoCorrelation Function, ACF)
: 자기상관계수 (AutoCorrelation) : k 기간 떨어진 값들의 상관계수
-자기상관계수 함수(Autocorrelation Function, ACF) : 상관계수k를 함수 형태로 표시
만일 -1 < < 1 이면 두 지점 간의 거리가 멀어질수록(k가 커질수록) ACF는 0으로 수렴
-부분(편) 자기상관계수(Partial ACF)
: 서로 다른 두 지점 사이의 관계를 분석할 때 중간에 있는 값들의 영향을 제외시킨 상관관계 개념
2) 이동평균모형 (MA 모형, moving average model)
: 유한한 개수의 백색잡음의 결합이므로 언제나 정상성이 만족
: 1차 이동평균 모형(MA1 모형)은 이동평균모형 중에서 가장 간단한 모형으로 시계열이 같은 시점의 백색잡음과 바로 전
시점의 백색잡음의 결합으로 이뤄진 모형
: 2차 이동평균 모형(MA2 모형)은 바로 전 시점의 백색잡음과 시차가 2인 백색잡음의 결합으로 이루어진 모형
: AR 모형과 반대로 ACF에서 절단점을 갖고, PACF가 빠르게 감소
3) 자기회귀누적이동평균모형
(ARIMA(p,d,q) 모형, autoregressive integrated moving average model)
-ARIMA 모형은 비정상시계열 모형
-ARIMA 모형을 차분이나 변환을 통해 AR모형이나 MA모형, 이 둘을 합친 ARMA 모형으로 정상화 할 수 있다.
-p는 AR모형, q는 MA모형과 관련이 있는 차수
-시계열 {Zt}의 d번 차분한 시계열이 ARMA(p,q)모형이면, 시계열{Zt}는 차수가 p,d,q인 ARIMA모형, 즉 ARIMA(p,d,q)모형을 갖는다고 한다.
-d=0이면 ARMA(p,q)모형이라 부르고, 이 모형은 정상성을 만족한다.
-p=0이면 IMA(d,q)모형이라 부르고, d번 차분하면 MA(q)모형을 따른다.
-q=0이면 ARI(p,d) 모형이라 부르고, d번 차분한 시계열이 AR(q)모형을 따른다.
4) 분해 시계열
- 시계열에 영향을 주는 일반적인 요인을 시계열에서 분리해 분석하는 방법을 말하며 회귀분석적인 방법을 주로 사용한다.
- 분해식의 일반적 정의
- T : 경향(추세)요인, S : 계절 요인, C : 순환 요인, I : 불규칙 요인
-추세요인(Trend factor) : 자료의 그림을 그렸을 때 오르거나 내리는 추세를 따르는 경우, 선형, 이차식 형태, 지수적 형태
-계절요인(Seasonal factor) : 요일마다 반복되거나 일년 중 각 월에 의한 변화, 사분기 자료에서 각 분기에 의한 변화 등 고정된 주기에 따라 자료가 변화하는 경우
-순환요인(Cyclical factor) : 명백한 경제적이나 자연적인 이유가 없이 알려지지 않은 주기를 가지고 변화하는 자료
-불규칙요인(Irregular factor) : 이 세 가지의 요인으로 설명할 수 없는 회귀분석에서 오차에 해당하는 요인
5) 시계열 분석 사례
-영국 왕들의 사망 시 나이 데이터
-자료 읽기 및 그래프 그리기
install.packages("tseries")
install.packages("forecast")
install.packages("TTR")
library(tseries)
library(forecast)
library(TTR)
king<-scan("http://robjhyndman.com/tsdldata/misc/kings.dat", skip=3)
king.ts<-ts(king)
plot.ts(king.ts)
-위의 영국 왕 42명의 사망 시 나이 예제는 비계절성을 띄는 시계열 자료이다.
-비계절성을 띄는 시계열 자료는 트렌드 요소, 불규칙 요소로 구성.
-20번 째 왕까지는 38세에서 55세까지 수명을 유지하고, 그 이후부터는 수명이 늘어서 40번째 왕은 73세까지 생존.
-이 그래프를 3년 마다 평균을 내서 그래프를 부드럽게 표현
king.sma3<-SMA(king.ts, n=3)
plot.ts(king.sma3)
-8년마다 평균을 내서 그래프를 더 부드럽게 표현
king.sma8<-SMA(king.ts, n=8)
plot.ts(king.sma8)
-ARIMA 모델
: ARIMA 모델은 정상성시계열에 한해 사용한다.
: 비정상시계열 자료는 차분해 정상성으로 만족하는 조건의 시계열로 바꿔준다.
-이전 그래프에서 평균이 시간에 따라 일정치 않은 모습을 보이므로 비정상시계열
-1차 차분
: 1차 차분 결과에서 평균과 분산이 시간에 따라 의존하지 않음을 확인한다.
: ARIMA(p,1,q)모델이며 차분을 1번 해야 정상성을 만족
king.ff1<-diff(king.ts, differences=1)
plot.ts(king.ff1)
-적합한 ARIMA 모델 결정
: ACF와 PACF를 통해 적합한 ARIMA 모델을 결정
-ACF
: lag는 0부터 값을 갖는데, 너무 많은 구간을 설정하면 그래프를 보고 판단하기 어렵다.
: ACF값이 lag 1인 지점 빼고는 모두 점선 구간 안에 있고, 나머지는 구간 안에 있다.
acf(king.ff1, lag.max=20)
acf(king.ff1, lag.max=20, plot=FALSE)
Autocorrelations of series ‘king.ff1’, by lag
0 1 2 3 4 5 6 7 8 9 10
1.000 -0.360 -0.162 -0.050 0.227 -0.042 -0.181 0.095 0.064 -0.116 -0.071
11 12 13 14 15 16 17 18 19 20
0.206 -0.017 -0.212 0.130 0.114 -0.009 -0.192 0.072 0.113 -0.093
pacf(king.ff1, lag.max=20)
pacf(king.ff1, lag.max=20, plot=FALSE)
Partial autocorrelations of series ‘king.ff1’, by lag
1 2 3 4 5 6 7 8 9 10 11
-0.360 -0.335 -0.321 0.005 0.025 -0.144 -0.022 -0.007 -0.143 -0.167 0.065
12 13 14 15 16 17 18 19 20
0.034 -0.161 0.036 0.066 0.081 -0.005 -0.027 -0.006 -0.037
-PACF값이 lag 1,2,3 에서 절섬 구간을 초과하고 음의 값을 가지며 절단점이 lag4이다.
# 종합해보면, 다음과 같은 ARMA 후보들이 생성
-ARMA(3,0) 모델 : PACF값이 lag 4에서 절단점을 가짐, AR(3)모형
-ARMA(0,1) 모델 : ACF값이 lag2에서 절단점을 가짐. AR(1)모형
-ARMA(p,q) 모델 : 그래서 AR모형과 MA모형을 혼합
# 적절한 ARIMA모형 찾기
-forecast package에 내장된 auto.arima()함수 이용.
-영국 왕의 사망 나이 데이터의 적절한 ARIMA모형은 ARIMA(0,1,1)이다.
auto.arima(king)
Series: king
ARIMA(0,1,1)
Coefficients:
ma1
-0.7218
s.e. 0.1208
sigma^2 estimated as 236.2: log likelihood=-170.06
AIC=344.13 AICc=344.44 BIC=347.56
# ARIMA 모델을 이용한 예측
-주어진 시계열 데이터에 적절한 ARIMA 모델을 채택했다면, ARIMA 모델의 모수들로 미래 값 예측 가능
-위에서 언급한 영국 왕 사망 시 나이 시계열 자료의 적절한 모델을 ARIMA(0,1,1)모델에 보정(fitting)
king.arima<-arima(king.ts, order=c(0,1,1))
king.arima
Call:
arima(x = king.ts, order = c(0, 1, 1))
Coefficients:
ma1
-0.7218
s.e. 0.1208
sigma^2 estimated as 230.4: log likelihood = -170.06, aic = 344.13
# 보정(fitting) 한 후, forecast package의 forecast() 함수를 통해 미래 예측
king.forecasts<-forecast(king.arima)
king.forecasts
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
43 67.75063 48.29647 87.20479 37.99806 97.50319
44 67.75063 47.55748 87.94377 36.86788 98.63338
45 67.75063 46.84460 88.65665 35.77762 99.72363
46 67.75063 46.15524 89.34601 34.72333 100.77792
47 67.75063 45.48722 90.01404 33.70168 101.79958
48 67.75063 44.83866 90.66260 32.70979 102.79146
49 67.75063 44.20796 91.29330 31.74523 103.75603
50 67.75063 43.59372 91.90753 30.80583 104.69543
51 67.75063 42.99472 92.50653 29.88974 105.61152
52 67.75063 42.40988 93.09138 28.99529 106.50596
- 42명의 영국 왕 중에서 마지막 왕의 사망 시 나이는 56세
- 43번째에서 52번째 왕까지 10명의 왕의 사망시 나이를 예측한 결과, 67.75살로 추정됨
- 5명 정도만 예측하고 싶다면 옵션에 h=5를 입력
- 신뢰 구간은 80%~95%사이
plot(king.forecasts)
# 이렇게 오늘은 시계열 분석에 대해서 알아보았는데요.. ㅎㅎ 재밌네용
# 다음은 다차원척도법 (Multidimensional Scaling, MDS)에 대해 알아보도록 하겠습니다.
'## 오래된 게시글 (미관리) ## > R' 카테고리의 다른 글
41. 데이터마이닝 개요 (0) | 2018.11.22 |
---|---|
40. 다차원척도법 , 주성분분석 (4) | 2018.11.22 |
38. 회귀 분석 (2) | 2018.11.22 |
36. 데이터분석의 이해 (0) | 2018.11.22 |
37. 기초통계분석 (0) | 2018.11.22 |