2022. 7. 26. 17:09ㆍ통계/시계열분석
*요약 정리)
#### 결측값
ㅇ 시계열에서 누락된 데이터를 해결하는 일반적인 방법은 대치법(데이터셋 전체의 관측에 기반하여 누락된 데이터를 채워넣음), 보간법(대치법의 한 형태로 인접한 데이터를 사용하여 누락된 데이터 추정)이 있음
ㅇ 포워드 필(foward fill)은 누락된 값이 나타나기 직전의 값으로 누락된 값을 채우는 방법. 계산이 복잡하지 않다는 장점
ㅇ 백워드 필(backword fill)은 미래의 값으로 누락된 값을 채우는 방법. data lackage (사전관찰)문제가 발생하므로 지양해야함. 사전관찰 문제란 예측해야되는 미래의 정보를 담고있다는 뜻
ㅇ 이동평균으로 대치. 포워드 필과 개념은 비슷하지만 이동평균은 최근 과거의 여러 시간대를 입력한 내용을 사용한다는 점에서 포워드 필과 다름. 전체 평균에 관한 개별 데이터값을 의심할 만한 이유가 잇다면 포워드 필보다는 이동평균을 사용해야함. 포워드필은 노이즈가 고려되는 반면 이동평균은 노이즈의 일부를 제거할 수 있다는 장점이 있음
ㅇ 이동평균은 꼭 산술평균이 아니더라도 지수가중이동평균(최근 데이터에 더 가중치를 두고 싶을 때) 및 기하평균(데이터간 상관관계가 강할때) 등을 사용할 수도 있음
ㅇ 선형보간법은 누락된 데이터가 주변 데이터에 선형적인 인관성을 갖도록 제한. 추세가 있는 경우에만 사용
ㅇ 정리하자면 포워드필과 이동평균은 사전관찰이 없기 때문에 성능이 사전관찰이 들어간 방법보다 나쁠 수 밖에 없음. 다만 사전관찰이 들어간 모델은 겉으로는 좋아보일 수 있지만 오버피팅이 발생할 확률이 높음
#### 상관관계
ㅇ 다변량 시계열 분석시 연관있는 변수끼리 돌리는게 좋음
ㅇ 모든 시계열들에 대하여 stationary를 확보했다면, 각 시계열들이 서로 어떤 관계가 있는지 rough 하게 확인하는 법이 바로 correlation 확인.
ㅇ 동시대만을 고려한 auto correlation 이 있고 시차까지 고려하여 살펴보는 cross correlation이 있으며 두 경우를 모두 진행하여 시계열 간의 관계를 rough 하게 확인할 수 있음
ㅇ Heatmap을 통해 한 눈에 보는 것도 좋을 것
#### 성분분해
ㅇ 시계열 데이터의 변동 요인은 성분분해 작업을 통해 추세, 계절, 불규칙 성분으로 세분화 가능
ㅇ 추세 : 상승 또는 하락하는 경향
ㅇ 불규칙 성분 : 설명 안되는 오차
ㅇ 계절 : 주기가 존재하고 계절적 요인의 영향을 받아 변동
ㅇ 시계열 데이터를 분석할 때 첫 번째는 시계열 그래프를 그려 시간의 흐름에 따른 관측값의 변동 패턴을 살펴야함
# 비계절 성분 분해 (EX) 추세)
ㅇ 평활법을 통해 불규칙적인 변동 요인을 제거 후 의미있는 추세 패턴을 확인해야됨. 가장 많이 사용하는 평활법이 단순이동평균. 몇 개 (K)를 기준으로 이동평균할지 정하는데 K값이 커질수록 불규칙하게 변동하는 패턴은 사라지고 명확한 추세가 드러남. K는 일반적으로 홀수를 고름
ㅇ 이동평균 (MA) = 시간이 지날수록 변수의 평균값이 증가 또는 감소
# 계절 성분 분해
ㅇ 1보다 큰 주기를 갖는 시계열 데이터, 즉 계절적 요인을 갖는 시계열 데이터는 추세 성분만으로 데이터 특징을 설명하기에는 부족하여 추가로 계절 성분을 포함한 분해 과정이 필요
ㅇ 계절적 요인을 포함한 시계열 데이터는 추세, 계절, 불규칙 성분으로 분해됨
ㅇ 계절 데이터 분해는 가법 (더하기)와 승법적(곱셈) 방식으로 성분분해를 수행 가능. 승법모델은 로그 변환을 통해 가법모델로 변환 가능
ㅇ 시계열분석에서는 계속해서 상승하는 추세를 가정하는데 경우에 따라서는 계속 상승하는것이 아니라 정체기 일 수도 있음. 이럴 때는 가법모델과 승법모델 각각의 경우에 대하여 가법완화(additive damped)와 승법완화(multiplicative damped) 등 을 지정하여 시계열 데이터에 완화 추세를 적용할 수 있음.
#### 지수예측모델
ㅇ 지수평활은 관측값의 가중평균을 이용
ㅇ 다른 예측 모델에 비해 단순하면서도 비교적 우수한 단기예측 성능을 보임
ㅇ 단순지수평활법 = 불규칙 성분만 고려 (추세, 계절성 고려X), 관측값의 가중평균을 이용하여 예측값을 추정
ㅇ 홀트지수평활법 = 수준과 기울기 고려(가중치 두 개 필요). 즉, 추세를 갖는 시계열 모델 생성, 관측값의 가중평균을 이용하여 예측값을 추정
ㅇ 홀트-원터지수평활법 = 수준, 기울기, 계절 요인이 모두 포함된 시계열을 예측. 최근의 관측값에 더 큰 가중치 부여
#### AR과 MA
ㅇ AR(autoregressive model)모델은 시계열상의 과거 관측값을 이용하여 예측모델 생성. 즉, 예측하고자하는 특정 변수의 과거 관측값의 선형결합으로 해당 변수의 미래값을 예측. '자기회귀'라는 용어 자체가 자기 자신과의 회귀를 의미함. AR(p)는 과거 p개 관측값의 선형결합으로 예측됨
ㅇ 회귀란 간단히 이야기 하자면 독립변수(X1, X2, X3, …) 들로 종속변수 Y 를 예측하는 모델링을 ‘회귀(Regression)’라고 함. (예 : 나의 키 = 0.5*아버지의 키 + 0.5*어머니의 키) 근데 회귀 앞에 ‘자기’가 붙어 있는 자기회귀는 뭘까? 바로 ‘현재의 나’가 ‘과거의 나’ 에 영향을 받는 경우 자기회귀
ㅇ MA(moving average model)모델은 과거 예측오차를 기반으로 예측모델을 구축. MA(q)는 과거 q개의 예측오차의 선형결합으로 예측함
ㅇ AR과 MA 모델을 결합하면 ARMA(p,q)가 도출되는데 과거 p개의 관측값과 q개의 오차를 이용하여 예측한다는 모델임
ㅇ 여기에 차분을 포함하게 되면 아래 설명하게 될 ARIMA 모델이 되는 것
ㅇ ACF 도표와 PACF 도표를 비교함으로써 p값과 q값을 결정할 수 있음 (ACF와 PACF는 아래에서 설명). ACF는 q를 결정, PACF를 통해서는 p를 결정함. 시차q 이후에 ACF가 0이되는 지점과 시차p 이후에 PACF가 0이되는 지점을 p,q로 선택
#### ARIMA
ㅇ ARIMA 모형은 정상성을 가정하며 관측값과 오차 간의 선형결합으로 표현됨 (Actual value와 Residual간의 Linear 결합이라고 생각하면 쉬움)
ㅇ AR(자기회귀)모델과 MA(이동평균)모델을 바탕으로함. AR은 과거 관측값을 이용하여 예측 모델 생성, MA는 과거 예측 오차를 기반으로 예측모델을 구축함. ARMA모델의(p,q)는 과거 관측값 p개와 q개의 오차를 의미함
ㅇ ARIMA 모델의 (p,d,q)는 관측값 p, q개의 오차는 동일하며 d는 d회 차분을 의미함(계절적 요인은 고려 안했을 때)
ㅇ 계절 성분을 고려한 ARIMA 모델은 ARIMA(p,d,q)(P,D,Q)[m]과 같이 표현됨. (P,D,Q)는 비계절 부분의 p,d,q에 대응되는 파라미터이며 m은 연간 관측값의 개수를 나타냄
ㅇ 보통 ARIMA 모델링은 정상성을 평가하고 예측 모델 생성, 예측 모델 평가 순으로 진행됨
ㅇ 정상성(stationarity) : 시점과 무관하게 일정한 특성을 의미. 불규칙 성분만으로 구성된 것은 정상적이나 추세나 계절 성분을 갖고 있다면 비정상적임. 정상성 판단은 ACF나 PACF, ADF 검정 등을 통해 판단 (밑에 설명 있음)
ㅇ 데이터가 정상성을 가진다는 것은 평균과 분산이 안정화되어 있어서 분석하기 쉽다는 것을 의미. (공분산이 일정하며 자기상관이 시간에 따라 변하지 않음) 추세나 계절 요인이 포함되어 있어서 데이터가 정상성을 갖지 않으면 복잡한 패턴을 모델링하여 분석하는 것이 어렵기 때문에 일반적으로 정상성을 갖도록 전처리를 수행
ㅇ 즉, 시계열의 평균, 분산 등 통계적 성질이 시간과 관계없이 일정하다면 stationary 하다고 한다.
예를 들어 ‘나의 태어난 순간(1995년) 부터 지금까지(2020년)의 몸무게’ 시계열과 ‘1995년 부터 2020년까지의 짜장면 값’ 시계열에 대해서 살펴보자. 두 시계열 모두 우상향하는 그래프를 그릴 것이다. 즉 2000년과 2010년의 평균과 분산이 다를 것이고 이는 두 시계열이 stationary 하지 않음을 의미한다. stationary 하지 않은 두 시계열 갖고 분석을 진행하면? 당연한 소리지만 두 시계열은 상관이 없다. 그러나 둘 다 우상향하는 방향성을 갖고 있기 때문에 회귀식을 모델링하면 두 시계열이 관계가 있다는 오류를 범하게 된다. 이를 허구적 회귀(spurious regression) 이라고 부른다. 시계열들의 stationary 여부를 체크하기 위해서 보통 Augmented Dickey- Fuller test(ADF test)를 진행한다. H0 : not stationary 에 대한 가설검정을 진행하며 H0를 기각하지 못하는 경우가 바로 ‘not stationary 시계열’ 이라고 볼 수 있다. 이 경우 보통 차분을 통해서 해결한다.
ㅇ not stationary 한 시계열들 간에 공적분 관계의 유무를 검정하고 만약 있다면 VECM (Vector Error Correction Model)을 사용한 분석을 진행
ㅇ 자기상관성 (AR. autocorrelation) = 이전값이 이후값에 영향. 서로 상관관계가 존재, 자기상관은 시차를 적용한 시계열 데이터로 계산
ㅇ 시차(lag) = 특정 시차만큼 관측값을 과거의 시점으로 이동시킴. 시차0은 자기 자신, 시차1은 관측값들이 왼쪽으로 한 칸 이동
ㅇ 즉, 시차를 3까지 늘린다는 것은 3칸 전의 과거데이터가 현재시점의 데이터에 영향을 주는지를 살펴보겠다는 것
ㅇ 자기상관함수(ACF)는 시차에 따른 관측값 간의 연관 정도를 보여줌. 시차가 클 수록 0에 가까워지며 주어진 관측값으로 부터 멀리 떨어진 미래의 값들을 예측하기 어려워짐. 정상시계열 일 수록 상대적으로 빨리 0으로 떨어짐
ㅇ 편자기상관함수(PACF)는 시차가 다른 두 시계열 데이터 간의 순수한 상호 연관성을 나타냄 . T1, T2, T3 시점이 있을 때 T1과 T3를 비교하기 위해서는 T2과의 상관관계를 배제함으로써 T1과 T3간의 명확한 관련성을 파악할 수 있음
ㅇ 자기상관함수(ACF), 편자기상관함수(PACF) 등을 통해 정상성이 있는지 확인할 수 있으며 (0이여야 정상성. 동일하면 1), 정상성이 아니라면 차분을 통해 정상성을 만족한뒤 다시 ACF와 PACF를 확인해봐야함. ADF 검정을 통해 귀무가설을 검정할 수 도 있음 (0.05 또는 0.01 보다 낮아야 정상성을 만족한다고 봄)
ㅇ 정상 시계열 데이터는 모든 기간에 걸쳐 평균이 일정하다고 가정하기 때문에 추세 성분을 가질 수 없음. 추세를 드러내는 비정상 시계열 데이터는 차분과정을 통해 정상시계열로 변환하여야함 (추세나 계절적 요인이 없다면 차분을 할 필요X)
ㅇ 차분(differencing) = (현시점 - 전시점), 비정상 시계열 데이터는 차분을 통해 정상 시계열로 변환. 차분을 하면 선형 추세가 제거되는데 한 번의 차분으로 안될 경우 차분한 시계열을 다시 차분하여 2차 비선형 추세를 제거. 보통 두 번을 초과하는 차분 과정은 불필요
ㅇ 정상 시계열 변환을 위해 변동폭이 크다면 차분 뿐만 아니라 로그 변환 등을 통해 정상 시계열로 변환 가능
ㅇ 백색잡음 : 시점에 상관없이 평균이 0, 분산이 σ2인 시계열자료. 평균과 분산이 일정하며 어떠한 추세도 관측되지 않음. 대표적인 정상 시계열
#### 벡터자기회귀 모형, Vector AutoRegressive Model (VAR)
ㅇ 벡터자기회귀모형(Vector AutoRegressive Model, VAR)은 일변량 자기회귀모형을 다변량 자기회귀모형으로 확정시킨 모형으로 예측 및 내생변수의 변화에 따른 효과 분석 등과 관련하여 자주 활용되고 있음
ㅇ 쉽게 생각하면 VAR 모델은 예측할 변수의 과거 값뿐만 아니라 예측할 변수와 의존성이 있는 변수 들까지 고려하여 선형 함수로 나타내는 확률적 과정. 다음과 같은 시간당 온도와 풍속 사이의 관계를 과거 값의 함수로 설명하는 이변량 분석을 예로 들 수 있음. 여기서 a1과 a2는 상수이고 w11, w12, w21, w22는 계수 e1과 e2는 오차항
ㅇ ARIMA 모형보다 좀 더 다변량의 효과를 모델링한 모형이라고 이해됨
ㅇ 다변량 분석 시 예측할 변수의 과거 데이터를 고려할 뿐 아니라 여러 변수 사이의 의존성 또한 고려해야함
ㅇ 일변량 분석인 ARIMA 모형은 변수들 사이 상호작용을 무시하는 반면 VAR는 이를 고려하여 모델링함
## 예측 모델과 평가
ㅇ 시계열 예측 문제는 평가와 학습 대상의 데이터를 특정 시간 기준으로 엄밀하게 분리시켜, data leak이 없이 평가가 이루어져야함(chronological testing)
ㅇ 시계열 예측 모델에서는 앞서 언급한 chronological testing 기준을 지키며 cross validation을 할 수 있는 방법으로 크게 두가지가 고안되어있음
ㅇ 첫번째로 sliding window 방법은 고정된 사이즈의 2개의 window를 움직여가며 학습과 테스트 데이터를 추출하여 cross validation 을 하는 방법
ㅇ time-series 데이터 길이가 충분치 않을 때 유용한 방법으로써 expanding window 방법
ㅇ 시계열 예측 모델의 평가는 문제에 따라 다양한 지표가 활용될 수 있습니다. Root Mean Squared Error (RMSE) 또는 Mean Absolute Percentage Error (MAPE)가 많이 사용되는 지표
ㅇ 예측 모델의 평가는 특정 성능 지표 뿐만 아니라 residual error의 분포, 시간축에 따른 에러의 propagation 패턴을 분석하여 모델에 bias가 있는지 혹은 overfitting 여부 등에 대한 검토가 반드시 필요
ㅇ 통계모델은 AIC 낮은게 우수한 모델
ㅇ 예측모델이 적절하다면 잔차는 평균0의 정규분포를 따르며 모든 가능한 시차에 대한 자기상관은 0이어야함
ㅇ 정규 Q-Q 도표를 활용할 수 있으며 자기상관이 모두 0이라는 귀무가설을 검정해야됨
ㅇ 전부 이상이 없을 경우 미래의 값을 예측
1. 시계열 데이터
시계열 데이터는 시간의 영향을 받는 데이터로 일정한 시간 간격을 두고 관측되므로 시차가 동일하며 이론적으로는 결측값이 없다. 시계열 데이터의 예로는 GDP, 물가지수, 상품 판매량, 종합주가지수, 강수량 등이 있다.
(1)정상성과 비정상성
정상성이란 시점과 무관하게 일정한 특성을 의미한다. Zt와 Zt+k의 자기 상관이 시차에만 의존하고 시점에 의존하지 않을 때 정상성을 갖는다고 한다. 다만 대부분의 시계열 데이터는 정상성을 만족하지 않는 비정상 데이터이다. 데이터가 정상성을 갖지 않으면 분석이 어렵기 때문에 정상화를 한 후에 분석을 시행한다.
*정상성
-모든 시점의 평균이 동일
-모든 시점의 분산이 동일
-공분산은 시차에만 의존, 시차가 동일하면 모든 시점의 공분산은 동일
*비정상 시계열을 정상화 하는 방법
-이상치가 있는 경우: 이상치 제거 혹은 대체
-평균이 일정하지 않은 경우: 차분(difference)을 취해 정상화
-분산이 일정하지 않은 경우: 변환(transformation)을 취해 정상화 (로그변환, 제곱근 변환 등)
만약 두 가지가 동시에 존재한다면 일반적으로 변환을 먼저 실행해준다. 차분을 먼저 하면 음수가 발생할 수도 있어 문제가 된다.
*자기상관함수(ACF)
시점 차이에 따른 자기 상관을 나타낸다. 자체 시게열 데이터 간 선형 상관관계 함수로 t시점의 관측치가 Zt라고 할 때, Zt와 Zt+k의 선형 상관관계를 의미한다.
*부분자기상관함수(PACF)
두 시점 사이에 영향을 주는 다른 요인을 제외한 자기 상관함수이다. 두 시점 내의 구간 값은 고려하지 않고 순수하게 두 시점의 상관관계를 고려한다. Zt와 Zt+k 사이의 Zt+1 ~ Zt+k-1을 제거하고 구한 Zt와 Zt+k의 선형 상관관계를 의미한다.
정상 시계열의 ACF는 상대적으로 빠르게 0에 수렴하고 비정상 시계열은 천천히 감소, 큰 양의 값을 가진다.
(2)백색잡음
정상시계열의 대표적인 예가 바로 백색잡음이다. 백색잡음은 시점에 상관없이 평균이 0, 분산이 σ2인 시계열자료이다.
(3)시계열 성분
It 불규칙 성분: 불규칙하고 예측이 불가한 랜덤 변동
Tt 추세 성분: 지속적으로 증가 또는 감소하는 추세를 갖는 변동
St 계절 성분: 계절 변화와 같은 주기적인 성분에 의한 변동
Ct 순환 성분: 주기적인 변활르 가지나 주기가 긴 변동
시계열 모형
1. 분해법
분해법은 시계열 성분들이 결정적이고 서로 독립이라는 가정을 기반으로 성분을 분해하는 방법이다. 전통적인 분해법은 가법(additive)과 승법(multiplicative) 두 가지로 나뉜다. 전통적인 분해법은 추세, 순환 성분을 추정할 때 정보 손실이 발생한다는 단점이 있으며, 급등락하는 데이터 기간에 값이 크게 변한다.
또 계절 성분 값이 주기별로 일정하다고 가정하기 때문에 단기간 데이터 분석에는 적합하지만 장기간 데이터 분석에는 부적합하다.
(1)가법 모형
원본 데이터가 일정하게 안정적인 그래프를 그리는 경우
Zt = Tt + St + Ct + It
불규칙 성분을 추정하려면 로데이터에서 추세와 계절적 성분을 하나씩 빼주면 된다.
(2)승법 모형
원본 데이터가 증가하거나 감소하는 형태를 띄는 경우 = 시간에 따라 진폭이 달라질 때
Zt = Tt x St x Ct x It
승법도 가법과 마찬가지로 불규칙 성분을 추정하려면 로데이터에서 추세와 계절적 성분을 하나씩 빼주면 된다.
2. 이동평균법
일정 기간의 관측치에 동일한 가중치를 부여해 이동평균을 계산한다. 과거부터 현재까지의 시계열 자료를 대상으로 일정 기간 별로 계산한 이동평균의 추세를 파악해 다음 기간을 예측한다. 계절성분과 불규칙 성분을 제거해서 추세 성분과 순환 성분만 가진 시계열로 변환한다.
간단하고 쉽게 예측이 가능하며 자료의 수가 많고 패턴이 안정적이면 예측 정확도가 높아진다. 시계열 자료에 뚜렷한 추세가 있거나 불규칙 변동이 심하지 않은 경우에는 짧은 기간(m을 작게)의 평균을 사용하고, 불규칙 변동이 심하면 긴 기간(m을 크게)의 평균을 사용한다. 이 m의 값을 적절하게 정하는 것이 관건이다.
3. 지수평활법
최근 관측치에 더 높은 가중치를 부여해서 미래를 예측하는 방법이다. 과거 시점으로 가수록 가중치를 지수적으로 줄여나간다. 불규칙 성분의 영향을 제거하는 효과가 있고 주로 중기 이상 긴 기간의 예측에 자주 사용한다. 선형 추세를 갖는 경우에는 이중지수평활법을, 계절 추세를 갖는 경우에는 계절지수평활법을 사용한다.
4. 자기회귀모형(자기상관모형, AR)
관측치에 대해 이전 값이 이후 값에 영향을 미치는 상황을 이야기 한다. 예를 들면 이전 값이 크면 이후 값은 작다거나 하는 경향이 있는 경우를 의미한다. 자기상관성을 시계열 모형으로 구성한 것이 AR모형이며 가장 간단한 형태는 직전 데이터가 다음 데이터에 영향을 준다고 가정한 AR(1)이다.
여기서 e(t)항은 white noise이며 평균이 0이고 분산이 σ2인 정규분포에서 도출된 랜덤한 값이다.
5. 이동평균 모형(MA)
이동평균은 평균이 시간에 따라 변화하는 경향을 의미한다. 이동평균을 시계열 모형으로 구성한 것이 MA모형이며 t시점의 관측치 Zt를 t시점까지의 과거의 오차항으로 설명한다.
6. 자기회귀 이동평균모형(ARMA)
이름에서 알 수 있든 자기회귀모형과 이동평균 모형을 결합한 것으로 가장 선호되는 모델이기도 하다. 통상 ARMA(2,2)이면 양질의 데이터를 얻을 수 있다고 한다. Zt를 과거의 관측치와 과거의 오차ㅏㅇ으로 설명한다.
7. 자기회귀 누적 이동평균모형(ARIMA)
ARMA모형이 과거 데이터를 사용하는거라면 ARIMA는 과거 데이터의 추세까지 반영하는 모델이다. 비정상 시계열에 대해 d차로 차분 변환하는 과정을 포함한 ARMA 모형이라고 할 수 있다. ARIMA(1,1,1)은 ARMA(1,1)과 동일하다.
ARIMA는 자기 자신의 추세만 고려하고 white noise의 추세는 고려하지 않는다. (올바른 모델의 white noise에는 추세가 없음) ARMA와 유사한 점이 많으며, 추세의 일관성이나 유의미성이 크지 않은 데이터의 경우 ARIMA 모형이 ARMA모형보다 타당성이 떨어지기 때문에 ARIMA는 많이 사용되지는 않는다.
8. 계절형 자기회귀 이동평균 모형(SARIMA)
시계열이 계절 성분을 포함하는 경우에 사용하는 시계열 모형이다. 계절 성분에 대한 모형과 비계절 성분에 대한 모형을 순차적으로 적용한다.