Modele autoregresyjne z uwzględnieniem opóźnień
zmiennej zależnej
Anna Włódarczak
19 maja 2015
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przypomnienie
Modele autoregresyjne
Modele określające związek funkcyjny między wartościami zmiennej
prognozowanej w okresie t, a wartościami tej samej zmiennej z
okresów poprzednich t − 1, t − 2, . . . , t − p z dokładnością do
składnika losowego.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Postać modelu
Modele autoregresyjne możemy zapisać w postaci:
Y
t
= f (Y
t−1
, Y
t−2
, . . . , Y
t−p
, ξ
t
)
Przyjmuje się, że funkcja f jest liniowa:
Y
t
= α
0
+
p
X
i =1
α
i
Y
t−i
+ ξ
t
albo nieliniowa sprowadzalna do postaci logarytmiczno-liniowej:
Y
t
= α
0
·
p
Y
i =1
Y
α
i
t−i
· ξ
t
ln Y
t
= α
0
+
p
X
i =1
α
i
ln Y
t−i
+ ξ
t
.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Postać modelu
Uwaga
Oczywiście nie zawsze możemy korzystać ze zlogarytmowanych
wartości szeregu. Przykładem jest szereg o wartościach
niedodatnich.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Metoda najmniejszych kwadratów
Parametry modelu szacujemy wykorzystując metodę najmniejszych
kwadratów.
y =
ln(y )
p+1
ln(y )
p+2
..
.
ln(y )
n
,
α =
α
0
α
1
..
.
α
p
,
ξ =
ξ
p+1
ξ
p+2
..
.
ξ
n
,
X =
1
ln(y )
p
ln(y )
p−1
· · ·
ln(y )
1
1
ln(y )
p+1
ln(y )
p
· · ·
ln(y )
2
..
.
..
.
..
.
· · ·
..
.
1
ln(y )
n−1
ln(y )
n−2
· · ·
ln(y )
n−p
.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Metoda najmniejszych kwadratów
Używając tych oznaczeń możemy zapisać model w postaci:
y = X α + ξ.
Stosując metodę najmniejszych kwadratów otrzymujemy wektor
wartości poszukiwanych parametrów:
Z = (X
0
X )
−1
X
0
y.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Metoda najmniejszych kwadratów
Macierz wariancji i kowariancji estymatorów parametrów modelu
liniowego dana jest wzorem:
var (
Z) = s
2
e
(
X
0
X )
−1
,
Przy czym wariancja resztowa jest równa:
s
2
e
=
0
n − p − (p + 1)
.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Obliczanie prognoz
Prognozy obliczamy sekwencyjnie, tzn. do obliczenia prognozy na
okres n + h korzystamy z prognozy na okres n + h − 1, czyli:
ln(y )
P
T
=
cZ = [1 ln(y)
T −1
ln(y )
T −2
. . . ln(y )
T −p
]
a
0
a
1
..
.
a
p
,
przy czym:
gdy prognozujemy na okrs T = n + 1, wektor
c = [1 ln(y)
n
ln(y )
n−1
. . . ln(y )
n−p+1
],
gdy prognozujemy na okrs T = n + 2, wektor
c = [1 ln(y)
P
n+1
ln(y )
n
. . . ln(y )
n−p+2
],
gdy prognozujemy na okrs T = n + 3, wektor
c = [1 ln(y)
P
n+2
ln(y )
P
n+1
. . . ln(y )
n−p+3
],
itd.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Ocena błędu predykcji
Ocenę średniego błędu predykcji ex ante na okres T wyznacza się
na podstawie wzoru:
s
D
T
=
q
s
2
e
[1 +
c(X
0
X )
−1
c
0
].
Błąd względny obliczany jest z wzoru:
V
D
T
=
S
D
T
|Y
P
T
|
i wyrażany jest w procentach.
Należy pamiętać, że prognozy są zlogarytmowanymi wartościami,
więc na końcu należy usunąć z nich logarytm.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Jak logarytmować?
Mamy kilka metod na wykonanie logarytmowania zmiennych.
Pierwsza z nich to zwykły DATA STEP:
data nowy.zbior;
set nasz.zbior;
zmienna.zlogarytmowana=log(nasza.zmienna);
run;
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Jak logarytmować?
Druga to logarytmowanie w SAS Guide.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Jak logarytmować?
Trzeci sposób to logarytmowanie w proc IML, które odbywa się na
podobnej zasadzie jak w pierwszej metodzie:
proc iml;
use nasz.zbior;
read all;
zmienna.zlogarytmowana=log(nasza.zmienna);
...
quit;
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Aby przeprowadzić analizę modelu pod kątem odnalezienia
współczynników α
i
możemy wszystko wyklikać w sas guide, użyć
procedur arima, reg lub autoreg albo skorzystać z metody
najmniejszych kwadratów w proc iml.
Kod do proc iml znajduje się w pliku IMLlog.sas.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro wyrzuca postać macierzy
X , y, Z, wariancję resztową
(warreszt), macierz wariancji i kowariancji (VAR), prognozy
(prognozal), średnie błędy ocen prognoz (SDT) oraz względne
błędy prognoz (VDT) dla zlogarytmowanych wartości (!) oraz
wartości prognozowane po usunięciu logarytmu (prognoza).
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro-fragmenty
Omówimy tutaj końcówkę kodu, czyli obliczanie prognoz.
Q1=Q[1,ncol(Q)-(nrow(Z)-2):ncol(Q)];
do w=1 to ncol(Q1);
P1=j(1,ncol(Q1),0);
do j=1 to ncol(Q1);
P1[1,j]=Q1[1,ncol(Q1)-(j-1)];
end;
end;
Tworzymy macierz Q1 z kilku ostatnich elementów macierzy Q
(wierszowy wektor wartości naszego szeregu), a następnie
tworzymy wektor P1, który jest macierzą Q1 ze zmienioną
kolejnością elementów.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro-fragmenty
PR=j(1,&T,0);
SE=j(1,&T,0);
VE=j(1,&T,0);
Tworzymy trzy zerowe macierze jednowierszowe, a ilość ich kolumn
zależy od parametru T (ilości prognoz, które chcemy wyliczyć).
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro-fragmenty
do d=1 to &T;
JE={1}||P1;
JED=JE*Z;
PR[1,d]=JED;
SED=sqrt(warreszt*(1+JE*inv(X‘*X)*JE‘));
SE[1,d]=SED;
VE[1,d]=100*SE[1,d]/abs(PR[1,d]);
if nrow(Z)=2 then do;
P1=JED;
end;
else do;
P2=P1[1,1:(nrow(Z)-2)];
P1=JED||P2;
end;
end;
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro-fragmenty
W pętli dołączamy do macierzy P1 jedynkę, obliczamy prognozę, a
wynik podmieniamy z jednym z elementów pierwszej macierzy.
Podobnie obliczamy oceny ex ante błędów predykcji i wstawiamy je
w miejsce zer do drugiej i trzeciej macierzy. Na końcu wyrzucamy z
macierzy P1 ostatnią wartość i dorzucamy do niej obliczoną
prognozę i powtarzamy przez tyle kroków, ile prognoz sobie
zażyczyliśmy.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro-fragmenty
prognozal=PR‘;
SDT=SE‘;
VDT=VE‘;
prognoza=exp(prognozal);
Print prognozal SDT VDT;
Print prognoza;
Ponieważ wolimy prognozy pokazane w macierzy kolumnowej, więc
transponujemy macierze PR, SE i VE , a następnie usuwamy
logarytmowanie z macierzy prognozal . Umieszczenie macierzy
prognozal , SDT i VDT w jednym „princie” spowoduje, że
macierze będą połączone.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Makro wywołujemy poprzez komendę
%nazwa.makra(wart.parametru1, wart.parametru2, . . .).
Parametrami są: ścieżka do zbioru (z pozamienianymi / na \),
nazwa zmiennej, opóźnienie p i ilość prognoz, jakie chcemy
wywołać.
Należy pamiętać, że w przeciwieństwie do sas base, sas guide nie
zapisuje makra w osobnym katalogu, więc za każdym razem
musimy cały kod (makro jak i jego wywołanie) kompilować od
nowa.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przykład
Nasze dane to miesięczne notowania akcji Citigroup od lipca 2012
roku do maja 2015.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przykład
Na początku sprawdzimy, czy zlogarytmowany szereg jest
stacjonarny. Importujemy zbiór do SAS Guide i tworzymy zmienną
zlogarytmowaną. Następnie wchodzimy w Analizuj→ Szereg
czasowy→Modelowanie i prognozowanie ARIMA. Jako zmienną
szeregu czasowego wstawiamy zmienną zlogarytmowaną; w
zakładce testy stacjonarności zaznaczamy ’Wykonuj rozszerzone
testy Dickeya-Fullera’.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przykład
Test wykazał, że szereg zlogarytmowany jest stacjonarny na
poziomie α = 0, 1, zatem możemy przystąpić do prognozowania.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przykład
Aby określić rząd autoregresji korzystamy z pliku IMLSR.sas , w
którym znajduje się kod na wywołanie funkcji SR. Parametrami
makra są: ścieżka do pliku, nazwa zmiennej i ilość iteracji, jakie ma
wykonać pętla. Przyjmiemy, że będzie to 8.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przykład
Rząd autoregresji obliczony ze wzoru to 2 i taką wartość wpisujemy
do makra IMLlog. Jako wartość T wybierzemy 5.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Przykład
W górnej tabelce mamy prognozy dla zlogarytmowanych wartości
szeregu wraz z ocenami błędów. Błędy względne są rzędu 1.3%,
więc prognoza jest udana.
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej
Dziękuję za uwagę!
Anna Włódarczak
Modele autoregresyjne z uwzględnieniem opóźnień zmiennej zależnej