TimeSeries04:
비정상시계열(varience stabilizing transformation / stochastic trend models and differencing)
앞부분에서 TimeSeries01,02,03 게시글은 정상시계열을 설명하였습니다.
하지만 대부분의 시계열 자료는 정상성을 갖지 못합니다.
*비정상 시계열의 대표적인 특성
1. 시계열 수준이 시간대에 따라 다르다.
2. 시계열이 추세를 갖는다.
3. 시계열이 계절성을 보인다.
4. 시계열의 분산이 시간대에 따라변한다.
*비정상 시계열
department자료로 a지점의 매출액 자료로 시계열그림을 그려보았습니다.
data depart;
infile '/folders/myshortcuts/sas/depart.txt';
input z @@;
date=intnx('month','1jan84'd,_n_-1);
format date Monyy.; run;
proc sgplot;
series x=date y=z ; xaxis values=('1jan84'd to '1jan89'd by year)
label="date"; yaxis label="depart" ; run;
data ldepart;
set depart; logz=log(z); run;
비정상시계열인 이유는
1. 시계열이 완만하게 증가하는 추세
2. 매년 마다 12월에 최고 매출액
3. 시계열의 변동폭이(분산) 시간의 흐름에 따라 일정하지 않고 증가.
이러한 시계열 자료들이 비정상성을 보이는 경우에는 로그변환, 추세분석, 차분을 통해 시계열이 정상이 되도록 한 후 정상시계열분석의이론을 적용하면 다시 정상 시계열로 돌아옵니다.
*Varience Stabilizing Transformation_분산안정화
위 depart자료로 분산이 일정하지 않음을 확인했습니다.
-> 분산이 시간이 지남에 따라 증가하는 비정상성을 확인할 수 있었습니다.
data depart;
infile '/folders/myshortcuts/sas/depart.txt';
input z @@;
date=intnx('month','1jan84'd,_n_-1);
format date Monyy.; run;
data ldepart;
set depart; logz=log(z); run;
proc sgplot;
series x=date y=logz ;
xaxis values=('1jan84'd to '1jan89'd by year)
label="date"; yaxis label="ln dapert"; run;
-> (분산을 상수화하기 위해 변환법을 적용해서) 로그변환자료
-> 하지만 증가하는 선형추세로 비정상성입니다.
Stochastic trend models and differencing _ 확률적 추세와 차분법
*확률적 추세?
인접 데이터 간의 양의 상관관계로 인하여 추세가 있는 것 처럼 보이면 이것을 확률적 추세라 한다.
이러한 확률적 추세는 SACF가 느리게 감소하며 그림을 그리는 것만으로는 확인이 불가능하다.
확률적 추세로 인하여 비정상 시계열이 되는 경우도 많다.
-> 시계열이 비정상성을 보이는 경우에는 로그변환, 추세분석, 차분을 통한 추세제거방법으로 시계열이 정상이 되도록한다.
*차분
두번째 그림은 로그변환을 한 시계열그림입니다.
하지만, 증가하는 선형추세를 가지고 있습니다.
이러한 선형추세를 제거하기 위해 1차 차분을 적용한 시계열은 더 이상 증가하는 추세를 나타내지 않지만 매년 패턴이 반복된다는 단점이 있습니다.
1차 차분한 시계열 그림
[code]
data depart;
infile '/folders/myshortcuts/sas/depart.txt';
input z @@;
date=intnx('month','1jan84'd,_n_-1);
format date Monyy.; run;
data ldepart;
set depart; logz=log(z); run;
data depart;
set ldepart; dif1=dif(logz); dif1_12=dif12(dif1); run;
proc sgplot;
series x=date y=dif1 ;
xaxis values=('1jan84'd to '1jan89'd by year)
label="date"; yaxis label="∇ ln Zt"; refline 0 / axis=y; run;
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.