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를 복잡하게 만들고 분산을 크게 만듭니다.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!