TimeSeries05_ARIMA
ARIMA
ARIMA 모형은 현 시험의 관측값은 과거의 관측값들과 백색잡음(white noise)라는 오차의 선형결합의 형태를 일반화한 것 입니다.
백색잡음은 시계열 자료 중 자기상관이 전혀 없는 특별한 경우를 의미합니다.
여기서 B는 backshift operator(후방연산자)로, 시계열상의 과거데이터를 설명할 때, 현재의 값을 기준으로 과거의 값을 구할 수 있는 연산자입니다.
backshift operator는 arima모형을 단순화시킵니다.
*ARIMA(1,1,1)의 TimeSeries SACF, SPACF, SIACF
data TS5;
z1=0; z2=0; a1=0;
do t=1 to 300;
a=rannor(36975);
z=1.8*z1-0.8*z2+a-0.5*a1;
dif1=dif1(z);
utput; z2=z1; z1=z; a1=a;
end;
run;
proc arima;
identify var=z nlag=24; run;
plot을 보면 시계열은 시간에 따라 일정하지 않으며 SACF가 점차적으로 감소하는 형태로 비정상 시계열입니다.
이 비정상성을 제거하기 위해 1차 차분을 이용하고자 합니다.
data p5;
z1=0; z2=0; a1=0;
do t=1 to 300;
a=rannor(36975);
z=1.8*z1-0.8*z2+a-0.5*a1;
dif1=dif1(z);
utput; z2=z1; z1=z; a1=a;
end;
run;
proc arima;
identify var=dif1 nlag=24; run;
+차분이란? (=differencing)
연속된 관측값들의 차이를 계산하는 것으로 시계열의 분산 변화를 일정하게 만드는데 도움을 줍니다.
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;
proc sgplot;
series x=date y=logz ;
xaxis values=('1jan84'd to '1jan89'd by year)
label="date"; yaxis label="ln dapert"; 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;
1차차분, 로그를 취한 값 plot
과대차분 _ overdifferencing
원래의 시계열이 비정상 시계열모형을 띄면 1차 차분을 한 후에 다시 시계열그림으로 시계열 정상인지 파악해야 합니다.
하지만 비정상시계열을 1차 차분한 뒤 정상 시계열이 된 경우에도 차분을 하는 경우를 과대차분 overdifferencing이라 합니다.
정상시계열은 과대차분을 하더라도 정상성에 문제가 생기지 않습니다. 하지만 ACF를 복잡하게 만들고 분산을 크게 만듭니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.