metoda szybkiej aktualizacji dekompozycji qr dla modeli liniowej

Transkrypt

metoda szybkiej aktualizacji dekompozycji qr dla modeli liniowej
Michał Bernardelli
Kolegium Analiz Ekonomicznych
Szkoła Główna Handlowa w Warszawie
METODA SZYBKIEJ AKTUALIZACJI
DEKOMPOZYCJI QR DLA MODELI
LINIOWEJ REGRESJI
1. Wprowadzenie
Dane panelowe to często duże zbiory informacji. Wykonywanie obliczeń na ta‑
kich zbiorach wiąże się z problemami, które nie są obserwowane dla mniejszej ilości
danych. Stąd korzystanie z algorytmów bardziej wyrafinowanych, m.in. pod wzglę‑
dem numerycznym, staje się koniecznością, jeśli chce się uzyskać wynik niewiele
odbiegający od wyniku faktycznego. Jeszcze większe znaczenie ma zastosowanie
odpowiednich algorytmów w przypadku zadań, dla których uzyskanie rozwiązania
jest ściśle ograniczone czasowo.
Jedną z podstawowych technik modelowania ekonometrycznego jest regresja li‑
niowa. Stanowi ona pierwsze – w wielu przypadkach mało dokładne, lecz szybkie
– przybliżenie analizowanych danych. Używane od dziesięcioleci metody rozwią‑
zywania zadania regresji liniowej opierają się m.in. na dekompozycji ortogonalno­
‑trójkątnej QR macierzy. Dla metod tych wykazano ich dobre własności nume‑
ryczne1, a istniejące implementacje tych algorytmów2 są dopracowane pod kątem
użycia pamięci i czasu. Mogą one jednak okazać się nieefektywne dla zbiorów da‑
nych, które szybko zmieniają się w czasie. Rozwiązanie mogą stanowić metody
1 Patrz: J. Stoer, R. Bulirsch, Introduction to Numerical Analysis, ed. 3rd, Springer, New York 2002.
2 Patrz przede wszytkim: W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes:
The Art of Scientific Computing, ed. 3rd, Cambridge University Press, New York 2007.
55
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 55
10/15/12 13:07 PM
Michał Bernardelli
dokonujące szybkiej aktualizacji dekompozycji QR macierzy zamiast wyznaczania
jej każdorazowo.
Przykładem, w którym konieczna jest dokonywana w czasie rzeczywistym ana‑
liza danych, jest rynek walutowy Forex. Stanowi on doskonały test dokładności oraz
szybkości działania różnych metod rozwiązywania zadania regresji liniowej. Symula‑
cja komputerowa powinna przede wszystkim odzwierciedlać teoretyczne wyliczenia
związane ze złożonością tych metod. Analizując wyniki, można i należy wziąć jednak
pod uwagę również te czynniki, które w analizie teoretycznej zostały pominięte, jako
mało znaczące lub zbyt trudne do uwzględnienia (takie jak specyficzna architektura
pamięci komputera czy sposób działania systemu operacyjnego).
Na niniejsze opracowanie składa się sześć części. Po części wprowadzającej zo‑
stała przedstawiona krótka charakterystyka rynku kapitałowego Forex ze szczegól‑
nym uwzględnieniem dostępnych na tym rynku danych. Część trzecia zawiera pod‑
sumowanie informacji na temat liniowego zadania najmniejszych kwadratów oraz
podstawowych metod jego rozwiązywania. Następnie opisano algorytmy szybkiej
aktualizacji elementów Q i R dekompozycji macierzy: qrdelete oraz qrinsert. Dołą‑
czone zostały kody źródłowe tych algorytmów oraz analiza ich złożoności. Przed‑
ostatnia z części to opis symulacji komputerowej oraz jej wyników. Opracowanie jest
zakończone podsumowaniem, w którym zostały wskazane kierunki dalszych badań.
2. Charakterystyka danych z rynku walutowego Forex
Forex (ang. Foreign Exchange) to największy międzynarodowy rynek wymiany
walut. Ten zdecentralizowany rynek działa w każdy dzień tygodnia poza weeken‑
dami. Graczami na rynku Forex są zarówno banki, fundusze, klienci instytucjonalni,
całe korporacje, jak i nawet rządy państw. Do największych graczy3 na rynku należą
m.in.: Deutsche Bank, Barclays Capital, UBS AG, Citigroup czy Goldman Sachs.
Forex cieszy się jednak przede wszystkim niezwykłą popularnością wśród klientów
indywidualnych. Wszystko to jest zasługą dwudziestoczterogodzinnego dostępu do
rynku, zapewnionemu poprzez wiele dedykowanych systemów elektronicznych, do
których dostępna jest łatwa obsługa za pośrednictwem stron internetowych. Na‑
tychmiastowa wymiana, tj. sprzedaż lub kupno, praktycznie dowolnej kwoty więk‑
szości walut narodowych, a także np. srebra czy złota odbywa się poprzez zwykłe
kliknięcie myszką lub częściej poprzez ustawienie opcji automatycznego zawierania
transakcji przez dostępne albo napisane na zamówienie programy komputerowe.
3 http://www.euromoney.com/poll/3301/PollsAndAwards/Foreign­‑Exchange.html [dostęp 17.04.2012].
56
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 56
10/15/12 13:07 PM
Metoda szybkiej aktualizacji dekompozycji QR dla modeli liniowej regresji
Najczęściej wymienianymi walutami są dolar amerykański (USD), euro (EUR) oraz
japoński jen (JPY)4.
Szybko rosnący popyt na usługi rynku Forex, przy niewielkim wzroście wiedzy
grających na nim osób, zwiększa znacznie związane z transakcjami ryzyko utraty
pieniędzy, jak również zaistnienia oszustw finansowych5. W Polsce instytucją nad‑
zorującą działanie rynku Forex jest Komisja Nadzoru Finansowego6.
Forex jest rynkiem dyskretnym. Aktualne kursy wymiany pomiędzy walutami ob‑
liczane są przez centralny system komputerowy, który uwzględnia wszystkie oferty
kupna i sprzedaży w danej chwili. Każda zmiana ceny, zwana potocznie „tickiem”,
jest przekazywana do firm brokerskich grających na rynku Forex na całym świe‑
cie. Dane te są generowane w niewielkich odstępach czasowych – nie większych niż
2 sekundy. Na wielu stronach internetowych dostępne są archiwalne dane z rynku
Forex7 o różnej granulacji czasowej, np. 10 minut, 1 minuta, 10 sekund czy nawet
2 sekundy. Wykres dla przykładowych danych z rynku walutowego Forex przedsta‑
wiony jest na rysunku 1.
Ze względu na zmieniające się w tak szybkim tempie kursy wymiany walut prak‑
tycznie niemożliwe jest ręczne dokonywanie transakcji na rynku Forex. Niezbędne
jest odpowiednie oprogramowanie, które w czasie rzeczywistym analizuje dane i pro‑
gnozuje kursy wymiany walut. Ze względu na ścisłe ograniczenie czasowe istotny jest
zatem rozwój efektywnych pod względem złożoności algorytmów analizy danych.
1.3056
kurs EUR/USD
1.3054
1.3052
kurs
1.305
1.3048
1.3046
1.3044
1.3042
0
200
400
600
800
1000
sekundy
1200
1400
1600
1800
Rysunek 1. Wykres kursu EUR do USD dla jednej godziny z dnia 16.04.2012 r.
Źródło: opracowanie własne na podstawie: http://www.forexite.com.
4
http://www.bis.org/publ/rpfxf10t.htm [dostęp 17.04.2012].
http://www.knf.gov.pl/aktualnosci/2011/forex.html [dostęp 17.04.2012].
6 Patrz: http://www.knf.gov.pl [dostęp 17.04.2012].
7 Patrz np.: http://www.forexite.com [dostęp 17.04.2012].
5
57
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 57
10/15/12 13:07 PM
Rysunek
Wykres
kursu
EUR
doUSD
USD
dlajednej
jednej
godziny
dnia
16.04.2012
Rysunek
1.1.Wykres
kursu
EUR
do
dla
godziny
zzdnia
16.04.2012
Rysunek
1. Wykres
kursu
EUR
do USD
dla
jednej
godziny
z dnia
16.04.2012
Michał Bernardelli
r.
r. r.
Źródło:
ródło:
http://www.forexite.com,
opracowanie
własne.
Wykres
kursu
EUR
do
USD
dla
jednej
godziny
z dnia
16.04.2012
kursu
EUR
USD
jednej
godziny
zopracowanie
dnia
kykres
1. Wykres
kursu
EUR
dodla
USD
dla jednej
godziny
z16.04.2012
dnia
16.04.2012
Ź
http://www.forexite.com,
opracowanie
własne.
Źdo
ródło:
http://www.forexite.com,
własne.
www.forexite.com,
własne.
w.forexite.com,
opracowanie
własne.
tp://www.forexite.com,
opracowanie
własne.
3.opracowanie
Liniowe
zadanie
3.
Liniowe
zadanie
najmniejszych
kwadratów
metody
jegojego
najmniejszych
kwadratów
ii metody
jego
3.
zadanie
najmniejszych
kwadratów
ii metody
metody
3. LLiniowe
iniowe zadanie
najmniejszych
kwadratów
rozwiązywania
rozwiązywania
rozwiązywania
we
zadanie
najmniejszych
kwadratów
metody
jegojego
zadanie
najmniejszych
kwadratów
i imetody
jego
niowe
zadanie
najmniejszych
kwadratów
i metody
ania
nia
zywania
jego rozwiązywania
ęściej
ciej
spotykanych
zadazada
danych
Jednym
podstawowych
najcz
ęś
zada
ńńwwanalizie
danych
Jednym
zzpodstawowych
iinajcz
ęśspotykanych
ciej
spotykanych
ńanalizie
wdanych
analizie
Jednym
z podstawowych
i najcz
Jednym
z podstawowych
i najczęściej
spotykanych
zadań
w analizie
jestdanych
jesti najcz
zadanie
regresji
liniowej,
w
którym
estymacja
parametrów
strukturalnych
ęś
ciej
spotykanych
zada
ń
w
analizie
danych
m
z podstawowych
i
najcz
jest
zadanie
regresji
liniowej,
w
którym
estymacja
parametrów
strukturalnych
ęś
ciej
spotykanych
zada
ń
w
analizie
danych
zdnym
podstawowych
ęś
ciej
spotykanych
zada
ń
w
analizie
danych
z podstawowych
i
najcz
jest
zadanie
regresji
liniowej,
westymacja
którym parametrów
estymacja strukturalnych
parametrów strukturalnych
zadanie
regresji
liniowej,
w którym
modelu
regresji
liniowej,
w
którym
estymacja
parametrów
strukturalnych
modelu
jest
na
ogół
sprowadzana
do
liniowego
zadania
najmniejszych
kwadratów
egresji
liniowej,
wmodelu
którym
estymacja
parametrów
strukturalnych
anie
regresji
liniowej,
w którym
estymacja
parametrów
strukturalnych
modelu
jest
na
ogół
sprowadzana
do
liniowego
zadania
najmniejszych
kwadratów
jest
na
ogół
sprowadzana
do
liniowego
zadania
najmniejszych
kwadratów
jest
na
ogół
sprowadzana
do
liniowego
zadania
najmniejszych
kwadratów
(LZNK).
na
ogół
sprowadzana
do
liniowego
zadania
najmniejszych
kwadratów
ogół
do
liniowego
zadania
najmniejszych
kwadratów
jest
nasprowadzana
ogół
sprowadzana
do
liniowego
zadania
najmniejszych
kwadratów
(LZNK).
Opis
zadania
najmniejszych
kwadratów
w
wersji
liniowej,
jak
równie
żż ż
(LZNK).
Opis
zadania
najmniejszych
kwadratów
w
wersji
liniowej,
jak
równie
(LZNK).
Opis
zadania najmniejszych
kwadratów
w jak
wersji
liniowej,
jak równie
Opis zadania
najmniejszych
kwadratów
w wersji
liniowej,
uogólnionej
88również
ż
pis
zadania
najmniejszych
kwadratów
w
wersji
liniowej,
jak
równie
ż
najmniejszych
kwadratów
w
wersji
liniowej,
jak
równie
ż
.zadania
Opis
zadania
najmniejszych
kwadratów
w
wersji
liniowej,
jak
równie
8
ż
na
znale
źć
m.in.
w
ksi
ąż
ce
Björcka
.
LZNK
polega
na
uogólnionej
mo
źć
w8 ksi
ceążBjörcka
. LZNK
polega
na na
uogólnionej
można
żznale
naw książce
znale
w ąż
ksi
ce naBjörcka
. LZNK
polega
uogólnionej
mo
8 8 m.in.
8 m.in.
naznale
znale
źćm.in.
m.in.
wksiksi
ąż
ceBjörcka
. źć
LZNK
polega
na na
mo
można
m.in.
Björcka
. LZNK
rozwiązaniu
żnażmo
źćznale
w znaleźć
ąż
. LZNK
polega
na polega
mo
żna
źć m.in.
w ce
ksi
ążBjörcka
ce Björcka
. LZNK
polega
onej
mm××nn ,nadokreślo‑
mgdzie
×n
ą
zaniu
nadokre
ś
lonego
układu
równa
ń
z
macierz
ą
A
∈
R
gdzie
m
≥
rozwi
ą
zaniu
nadokre
ś
lonego
układu
równa
ń
z
macierz
ą
A
∈
R
,
m
≥
rozwi
m × n m × n równań z macierzą A ∈ R
× nukładu
ąrówna
zaniu
, gdzie
mnn≥ n
rozwi
nadokre
ślonego
układu
z ńmacierz
ąA ∈AR
m
nego
układu
równań
z wektorem*prawej
adokre
ślonego
układu
równa
ńrówna
zń nadokre
macierz
ąślonego
, gdzie
m
≥ m ≥
n≥mn ≥n, oraz
aniu
nadokre
ślonego
układu
z z macierzą
macierz
ą∈mR
A
∈
R, mgdzie
gdzie
n
m ,, gdzie
*
n strony
n
m znalezieniu
oraz,oraz,
z wektorem
prawej
strony
,nR
tj.
znalezieniu
wektora
takiego,
m
m
oraz,
prawej
strony
tj.
wektora
bxb*∈∈
xx ∈∈xRR* ∈takiego,
wektorem
prawej
strony
znalezieniu
wektora
bR
R n takiego,
torem
prawej
strony
znalezieniu
wektora
takiego,
wektora
takiego,
że
x*RR
∈n∈
em prawej
strony
tj., Rtj.
znalezieniu
wektora
bz∈bwektorem
R∈mzRb,, tj. na
∈
wektorem
prawej
strony
,znalezieniu
tj.
znalezieniu
wektora
takiego,
∈
xR,*takiego,
∈
R,n tj.
ż
e
że że
* *
Ax−** Ax==*min
min
, ,
Ax
−
=* min
bAx
− Ax
, 2 , bb−−Ax
bb−−Ax
b −bAx
min
b
−
,
b 2−=Ax
=
min
b
−
Ax
b
= min
bAx−22,Ax
2
2
2 x∈Rx2∈R
x∈Rn n
22
2
n
n
n
x∈R n
x∈
2R
x∈R
oznacza
drug
norm
wektorow
gdzie
x xx xoznacza
drug
ąąnorm
ęęwektorow
ąą. . ą.
gdzie
xx ==x x=
drugą
x oznacza
drug
ąnormę
norm
ęwektorową.
wektorow
gdzie
zestrzeni
powstało
wiele
metod
rozwi
ąpowstało
zywania
LZNK,
jedna
zrozwiązywania
nich
lat lat
powstało
wiele
metod
rozwi
ąlat
zywania
LZNK,
jedna
zjedna
nich
atrzeni
przestrzeni
lat powstało
wiele
metod
rozwi
ązywania
LZNK,
z nich
Naprzestrzeni
przestrzeni
powstało
wiele
metod
LZNK,
jedna
z nich
Na
przestrzeni
lat
powstało
wiele
metod
rozwi
zywania
LZNK,
jedna
nich
Na
lat
wiele
metod
rozwi
ąązywania
LZNK,
jedna
zzto
nich
Na
przestrzeni
lat
wiele
metod
rozwi
ązywania
LZNK,
jedna
z nich
T Tpowstało
T T T
T
T AxTT= ATb i rozwiązanie
9
T
enie
LZNK
układu
równa
ń
normalnych
i
rozwi
ą
zanie
A
Ax
=
A
b
ie
LZNK
dodo
układu
równa
ń
normalnych
i
rozwi
ą
zanie
A
Ax
=
A
b
wadzenie
LZNK
do
układu
równa
ń
normalnych
i
rozwi
ą
zanie
A
Ax
=
A
b
T
sprowadzenie
LZNK
do
układu
równań
normalnych
A
go
T
T
tosprowadzenie
sprowadzenie
LZNK
do
układu
równa
ń
normalnych
i
rozwi
ą
zanie
A
Ax
=
A
b
to
LZNK
do
układu
równa
ń
normalnych
i
rozwi
ą
zanie
+
A
Ax
=
A
b
+
topseodoodwrotnej
sprowadzenie
równań normalnych
A Ax = A b i rozwiązanie
korzystaniu
macierzy
pseodoodwrotnej
A
macierzy
ALZNK
: : A+do
yrzystaniu
wykorzystaniu
pseodoodwrotnej
: układu
9 przy
wykorzystaniu
macierzy
pseudoodwrotnej
A+: AA++:: +
9 wykorzystaniu
macierzy
pseodoodwrotnej
go*9macierzy
przy
pseodoodwrotnej
go
*przy
+wykorzystaniu
T −1 −TT
1 T−1 macierzy
+ *przy
+Twykorzystaniu
T
macierzy
pseodoodwrotnej
A
:
go
)A A
=A(bA=) A( A
x x= A= xbA ==b(A
b.) b.A b. **
+
T
TT A)−−
11 A
* + b =+ ( A
T
b1. .AT b.
(bAwzgl
)Awzgl
xxwszystkim
==wszystkim
=Aze
Aę(du
AT)ęb−du
xAA
=bze
=ze
rozwi
ązywania
LZNK
polecany
przede
ędu
zwi
zywania
LZNK
nienie
jestjest
polecany
przede
wszystkim
wzgl
sóbąrozwi
ązywania
LZNK
nie
jest
polecany
przede
TenTen
sposób
rozwi
zywania
LZNK
niejest
jestpolecany
polecany
przedewszystkim
wszystkim
zewzgl
wzgl
du ędu
Ten
sposób
rozwi
ąązywania
LZNK
nie
przede
ze
ęędu
sposób
rozwi
ązywania
LZNK
nie
jest
polecany
wszystkim
zena
wzgl
Ten sposób
rozwiązywania
LZNK
nie jest
polecany
przedeprzede
wszystkim
ze względu
TęT wektorow
Tą. ą. ą.
drug
ą norm
ę wektorow
x xoznacza
drug
ą gdzie
norm
wektorow
x= oznacza
drug
ąę norm
x oznacza
oznacza
2
22
2
T
T
T
umerical
methods
least
squares
problems,
SIAM,
Philadelphia
(USA)
1996.1996.
erical
methods
for for
least
squares
problems,
SIAM,
Philadelphia
(USA)
1996.
k, Numerical
methods
for
least
squares
problems,
SIAM,
Philadelphia
(USA)
10 i nie
błędy
numeryczne
należy
z niego
w praktyce obliczeniowej.
10
ezanie
LZNK
istnieje
inie
jest
jednoznaczne,
jeniego
żeli
macierzy
sproblems,
ąA liniowo
LZNK
istnieje
jednoznaczne,
je
żz
eli
kolumny
macierzy
Aobliczeniowej.
sAą korzystać
liniowo
8i 8ijest
LZNK
istnieje
i10jest
jednoznaczne,
je
żkolumny
eli
kolumny
macierzy
są liniowo
numeryczne
nale
ż
y
z
niego
korzysta
ć
w
praktyce
8
A.
Björck,
Numerical
methods
for
least
squares
SIAM,
Philadelphia
(USA)
1996.1996.
ędy
i
nie
nale
ż
y
korzysta
ć
w
praktyce
obliczeniowej.
na
błnale
nie
żynumeryczne
z niego
korzysta
ć
w
praktyce
obliczeniowej.
A.
Björck,
Numerical
methods
for least
squares
problems,
SIAM,
Philadelphia
(USA)
1996.
A.n).
Björck,
Numerical
methods
for least
squares
problems,
SIAM,
Philadelphia
(USA)
ąed(rz
macierzy
A jest
równy
9
macierzy
A
jest
równy
n).
ą
d
macierzy
A
jest
równy
n).
Najbardziej
rozpowszechnione
metody
rozwiązywania
LZNK
sprowadzają
do
9 Rozwi
9
ązywania
LZNK sprowadzaj
jbardziej rozpowszechnione
ązanie metody
LZNK rozwi
istnieje
i jest jednoznaczne,
jeżelią kolumny
macierzy
A sąsięliniowo
LZNKjeżsprowadzaj
ą macierzy
Najbardziej
rozpowszechnione
metody
rozwi
ąązywania
LZNK
sprowadzaj
wszechnione
metody
rozwi
Rozwi
ązanie
LZNK
istnieje
i jestiązywania
jednoznaczne,
elijekolumny
A są Aliniowo
Rozwi
zanie
LZNK
istnieje
jestą jednoznaczne,
żeli kolumny
macierzy
są liniowo
wykorzystania
dekompozycji
ortogonalno­
‑
trójkątnej
QR
macierzy A. Dekompozycja
niezale
ż
ne
(rz
ą
d
macierzy
A
jest
równy
n).
wykorzystania
dekompozycji
ortogonalno-trójk
ą
tnej
QR
macierzy
A.
ę do wykorzystania
dekompozycji
ortogonalno-trójk
ą
tnej
QR
macierzy
A.
iekompozycji
ortogonalno-trójk
ą
tnej
QR
macierzy
A.
niezale
żne (rz
ąd (rz
macierzy
A jestArówny
n). n).
niezale
żne
ąd macierzy
jest równy
żdej
m wymiaru
na n m
o maksymalnym
ozycja
istnieje
dla
ka
ta istnieje
dla
każdej
n o maksymalnym rzędzie. Macierz
żdej
wymiaru
nam na
n o maksymalnym
Dekompozycja
ta istnieje
dla macierzy
kam
żdej
macierzy
wymiaru
na macierzy
n wymiaru
omacierzy
maksymalnym
dla kata
m× m
m× m
m× m
jest
ąmacierz
tj. macierz
, której
Q ∈ R ąQ ∈
jest
której
kolumny są ortonormalne,
zMacierz
jest
ędzie.
ąortogonalną,
ortogonaln
ątj. macierzą,
, tj. ąmacierz
ą, której
jestMacierz
macierz
ortogonaln
ą,macierzą
tj. ortogonaln
macierz
ą,ą,której
R macierz
m× n
m× n
m× n
46
46
46
zaś
uogólnioną
macierzą
trójkątną
górną,
tj. taką,
R ∈ R ąRmacierz
za
trójkątn
górn
ą,ą tj.górną, tj.której elementy rij = 0
kolumny
∈ śR uogólnion
ś uogólnion
ą ątrójk
ątn
e,sąRortonormalne,
∈ R są ortonormalne,
zaś uogólnion
ązatrójk
ąątnmacierz
ą górną ąąmacierz
, tj.
órej
rij dla
0rijj.dla
i0 >dla
j.dekompozycj
danęąącQR,
dekompozycj
ę QR, ęzadanie
i >
dekompozycję
QR,ą sprowadzamy
, elementy
której
= dan
iMaj
> ąj.c Maj
dan
dekompozycj
QR, do rozwiązania rów‑
ak
0 dla elementy
i >
j.= Maj
ącMając
ądaną
ij ą=
46
T
do rozwi
= QTęRx
bdu=na
dQ.specjalną
Ze
ępostać
duwzgl
na macierzy
nania
Ze
względu
prowadzamy
doązania
rozwi
ąTzania
=na
b =wzgl
d . Ze
ędu na R (patrz rysunek 2)46 46
ozamy
rozwizadanie
ązania zadanie
równania
Rx
= Qrównania
b = d ..równania
ZeRx
wzgl
ąpecjaln
posta
ćą macierzy
R 2)
(patrz
2) wymaga
to tylkoukładu
ązania
posta
ć macierzy
R
(patrz
rysunek
2) prostego
wymaga
torozwi
tylkorównań
rozwiąliniowych
zania
zy
R (patrz
rysunek
wymaga
tylko
rozwi
ązania
wymaga
torysunek
tylkotorozwiązania
R1x = d1 z macie‑
liniowych
R1trójkątną
= d1Rą1zxtrójk
macierz
ą wymiaru
górn
wymiaru
układu równa
ńgórną
liniowych
= dą1 tnz ąmacierz
górnątn
ą ątrójk
ątną wymiaru
prostego
układu
liniowych
R1x ń=równa
d1rzą
z macierz
ąx górn
wymiaru
n. ą ątrójk
n.
8 A. Björck, Numerical methods for least squares problems, SIAM, Philadelphia (USA) 1996.
9 Rozwiązanie LZNK istnieje i jest jednoznaczne, jeżeli kolumny macierzy A są liniowo niezależne (rząd
macierzy A jest równy n).
10 Patrz: A. Kiełbasiński, H. Schwetlick, Numeryczna algebra liniowa, Wydawnictwa Naukowo­
‑Techniczne, Warszawa 1992.
k
Układ2.zrówna
LZNKń zLZNK
uwzgl
dekompozycji
QR
Rysunek
Układ
zędnieniem
uwzględnieniem
dekompozycji
QR
ań2.LZNK
uwzglńęrówna
dnieniem
dekompozycji
QR
własne. własne.
Źracowanie
ródło: opracowanie
58
westi
ąKwesti
pozostaj
ącą do
pod
ą żpozostaj
ącrozwa
ą znalezienie
do żenia
rozwajest
żefektywnej
eniaznalezienie
jest znalezienie
efektywnej
pod
cą do
rozwa
enia
jest
pod efektywnej
m
zło
żonośzło
ci żoraz
obliczeniowej
oraznumerycznej
poprawno
ścimetody
numerycznej
metody metody
ędem
ono
ści
obliczeniowej
oraz poprawno
ści numerycznej
wzgl
bliczeniowej
poprawno
ści
SGH_198_2012_08_97Roczniki_27_Witkowski.indd
ąDo
tnej 58
macierzy.
Do podstawowych
a ortogonalno-trójk
dekompozycji
ortogonalno-trójk
ątnej macierzy.
Do podstawowych
uzyskania
dekompozycji
ortogonalno-trójk
ątnej macierzy.
podstawowych
10/15/12 13:07 PM
Metoda szybkiej aktualizacji dekompozycji QR dla modeli liniowej regresji
Rysunek 2. Układ równań LZNK z uwzględnieniem dekompozycji QR
Źródło: opracowanie własne.
Kwestią pozostającą do rozważenia jest znalezienie efektywnej pod względem zło‑
żoności obliczeniowej oraz poprawności numerycznej metody uzyskania dekompo‑
zycji ortogonalno­‑trójkątnej macierzy. Do podstawowych metod należą:
zz ortogonalizacja Grama–Schmidta,
zz odbicia Householdera,
zz obroty Givensa.
Pierwsza z metod, a właściwie jej stabilna numerycznie wersja znana pod na‑
zwą zmodyfikowanego algorytmu Grama–Schmidta, opisana m.in. przez Kincaida
i Cheneya11, jest używana rzadziej ze względu na jej gorszą złożoność obliczeniową.
Pominiemy ją zatem w dalszych rozważaniach.
Druga z metod charakteryzuje się bardzo dobrymi własnościami numerycznymi,
przy czym jej implementacje są efektywne pod względem czasowym i pamięcio‑
wym12. Opiera się ona na wykonaniu serii tzw. odbić Householdera, które przypo‑
rządkowują wektorowi jego lustrzane odbicie względem pewnej hiperpłaszczyzny.
Stosując odbicia Householdera dla wektorów uzyskanych z kolejnych kolumn ma‑
cierzy A, przeprowadzamy je na wektory postaci [α, 0, 0, …, 0], dla pewnej stałej α.
Dokładniej dla j­‑tej kolumny (j = 1, 2, …, n) wybieramy wektor złożony z m – j +
1 ostatnich jej współrzędnych i taki wektor przekształcamy na [rjj, 0, 0, …, 0]. Tak
obliczone wektory utworzą macierz:
11 D. Kincaid, W. Cheney, Analiza numerycza, Wydawnictwa Naukowo­‑Techniczne, Warszawa 2006.
12 Patrz: G.H. Golub, Ch.F. Van Loan, Matrix Computations, ed. 2nd, Johns Hopkins University
Press, New York 1990.
59
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 59
10/15/12 13:07 PM
względem pewnej hiperpłaszczyzny. Stosując odbicia Householdera dla wektorów
uzyskanych z kolejnych kolumn macierzy A, przeprowadzamy je na wektory
postaci [α, 0, 0, …, 0], dla pewnej stałej α. Dokładniej dla j-tej kolumny (j = 1, 2,
…, n) Michał
wybieramy
wektor złożony z m – j + 1 ostatnich jej współrzędnych i taki
Bernardelli
wektor przekształcamy na [rjj, 0, 0, …, 0]. Tak obliczone wektory utworzą
macierz
 r11 r12 L r1n 


 0 r22 L r2 n 
M
M O M 


R =  0 0 L rnn  ∈ R m× m ..
0 0 L 0


M
M O M 


0 0 L 0
Macierz Q wyznaczamy poprzez złożenie macierzy odbić Householdera13.
poprzez
złożenie macierzy
odbić Householdera
się naQ wyznaczamy
implementacji
algotytmu
dekompozycji
QR metod13
ą . Wzo‑
odbić
WzorującMacierz
14
15
rując się za
na Trefethenem
implementacjiialgorytmu
dekompozycji
QR algorytmu
metodą odbićzapisany
Househol‑w
kod tego
Householdera
Bau , podajemy
14, podajemy kod tego algorytmu15 zapisany w notacji
za Trefethenem
.
notacjidera
programu
Matlab16i Bau
programu Matlab16.
1. function [q,r] = householderQR(A,m,n)
1. q = eye(m);
function [q,r] = householderQR(A,m,n)
2.
2.
q = eye(m);
3.
r = A;
3.
r = A;
4.
for k=1:n for k=1:n
4.
5.
ak = r(k:m,k);
5.
ak = r(k:m,k);
6.
= ak + [sign(ak(1))*norm(ak);
zeros(m–k,1)];
6.
vk = ak +vk[sign(ak(1))*norm(ak);
zeros(m–k,1)];
7.
vk = vk/norm(vk);
7.
vk = vk/norm(vk);
8.
r(k:m,k:n) = r(k:m,k:n) – 2*vk*vk’*r(k:m,k:n);
8.
r(k:m,k:n)
2*vk*vk'*r(k:m,k:n);
9.
Hk =
= r(k:m,k:n)
eye(m–k+1) ––2*vk*vk’;
9.
Hk
=
eye(m–k+1)
–
2*vk*vk';
10.
q = q*[eye(k–1) zeros(k–1,m–k+1); zeros(m–k+1,k–1) Hk];
11.
end
10.
q = q*[eye(k–1)
zeros(k–1,m–k+1); zeros(m–k+1,k–1) Hk];
12.
11.
end end
12. end
Złożoność efektywnej implementacji algorytmu17 mierzony liczbą operacji
17
2. W przypadku,
żoność efektywnej to
implementacji
algorytmu
mierzony
liczbąotrzymać
operacji
Zło
zmiennoprzecinkowych
mniej więcej 2mn
gdy chcemy
2
2mn
. W wzrasta
przypadku,
gdy chcemy
zmiennoprzecinkowych
to mniej
więcej
macierz Q explicite (linie
kodu 9–10),
koszt
czasowy
drastycznie
o czyn‑
4
ć rzędu
macierz
kodubędzie
9–10),
koszt w opracowaniu,
czasowy wzrasta
otrzyma
nik
nawetQm .explicite
Przypadek(linie
n=2, który
rozważany
jest
ędu mnożenie
nawet m4w linii
. Przypadek
n=2, który
ędzieraz
rozwa
any2),w
drastycznie
czynnik rzgdyż
jednakoszczególny,
10 wykonywane
jestbtylko
(dlażk =
żenie w to
linii
10 wykonywane
jest
opracowaniu,
jest z tym
jednakkoszt
szczególny,
gdyż mno
i w związku
przedstawionego
algorytmu
jedynie
ok. 4m2 operacji
tylko raz
(dla k = 2), i w 18
zwi
zmiennoprzecinkowych
. ązku z tym koszt przedstawionego algorytmu to
13 Odbicie Householdera nie zmienia długości wektora i jego macierz jest macierzą ortogonalną.
14 L.N. Trefethen, D. Bau, Numerical Linear Algebra, SIAM, Philadelphia (USA) 1997.
13
Odbicie Householdera
długo
ści wektora
i jego algorytmu
macierz jest
macierząQRortogonaln
ą.
15 Przedstawionynie
kodzmienia
nie stanowi
efektywnej
implementacji
dekompozycji
metodą House­
14
L.N. Trefethen,
D. przytoczony
Bau, Numerical
Linear opisu.
Algebra, SIAM, Philadelphia (USA) 1997.
holdera i został
dla czytelności
15
16 Matlab
jestnie
programem
MathWorks,
patrz: http://www.mathworks.com/products/matlab.
Przedstawiony
kod
stanowifirmy
efektywnej
implementacji
algorytmu dekompozycji QR metodą
17 Patrz np.: L.N. Trefethen, D. Bau, op.cit.
Householdera
i został przytoczony dla czytelności opisu.
16
18 Rozważane są dominujące operacje arytmetyczne, tj. dzielenie, mnożenie czy pierwiastkowanie z po‑
Matlab jest
programem firmy MathWorks, patrz: http://www.mathworks.com/products/matlab.
17
minięciem
różnic w szybkości
obliczeń
pomiędzy nimi.
Patrz np. L.N. Trefethen,
D. Bau,
op.cit.
60
48
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 60
10/15/12 13:07 PM
Metoda szybkiej aktualizacji dekompozycji QR dla modeli liniowej regresji
jedynie ok. 4m2 operacji zmiennoprzecinkowych18.
Trzecia z metod
dekompozycji
QR macierzy
A wykorzystuje
obroty,
Trzecia
z metoduzyskania
uzyskania
dekompozycji
QR macierzy
A wykorzystuje
19
19
którektóre
są przykładem
przekształceń
unitarnych
. Obrót Givensa
dla zadanego
przekształce
ń unitarnych
. ObrótTijGivensa
Tij dla
obroty,
są przykładem
m­
‑
wymiarowego
wektora
zeruje
jego
j­
‑
tą
współrzędną.
Postać
macierzy
na‑
macierzy
zadanego m-wymiarowego wektora zeruje jego j-tą współrzędną. PostaTćij jest
stępująca:
następująca:
Tij jest
I



c
s



,,
=
T
I
ij


−s
c



I 

przyprzy
czym
I toI to
macierz
cos(φ)oraz
orazs =s sin(φ)
= sin(dla
φ) dla
pewnego
kąta
czym
macierzjednostkowa,
jednostkowa, cc == cos(φ)
pewnego
kąta φ,
φ, warto
ś
ci
±s
za
ś
wyst
ę
puj
ą
w
macierzy
T
na
miejscach
(i,j)
oraz
(j,i).
Kod
ij
wartości ±s zaś występują w macierzy Tij na miejscach (i,j) oraz (j,i). Kod wyznacza‑
ący warto
ścis,cdefiniujące
oraz s, definiuj
ące obrót Givensa, można znaleźć np. w
wyznaczaj
jący wartości
c oraz
20 obrót Givensa, można znaleźć np. w książce Dryi
ce Dryji 20
i . Koszt
Jankowskich
.
Koszt
tej, odpornej
na błimplementacji
ędy nadmiaru
książi Jankowskich
tej, odpornej na błędy nadmiaru
i niedomiaru,
ę
czterem
operacjom
i niedomiaru,
implementacji
jest
stały
i
równa
si
21
jest stały i równa się
21 czterem operacjom zmiennoprzecinkowe . Mnożąc kolumny
. Mnożąc kolumny ai macierzy
A dla i = 1, 2, …, n przez
zmiennoprzecinkowe
ai macierzy A dla i = 1, 2, …, n przez odpowiednie
obroty Givensa Ti,i+1, Ti,i+2, …,
współrzędne
odpowiednie
obroty Givensa Ti,i+1, Ti,i+2, …, Ti,n, zerujemy kolejno
Ti,n, zerujemy kolejno współrzędne ai+1,i, ai+2,i, …, an,i. Koszt tej metody dla pełnej
ai+1,i, ai+2,i, …, an,i. Koszt tej metody dla pełnej macierzy A22jest wyższy od metody
macierzy A jest wyższy od metody z odbiciami Householdera . Jest ona jednak szyb‑
z odbiciami Householdera22. Jest ona jednak szybsza dla macierzy rzadkich, tj.
sza dla macierzy rzadkich, tj. tych, które składają się z wielu zer.
takich, które składają się z wielu zer.
4. Algorytmy aktualizacji dekompozycji QR
4. Algorytmy aktualizacji dekompozycji QR
W sytuacji, gdy smamy do czynienia z koniecznością rozwiązywania wielu li‑
niowych zadań najmniejszych kwadratów dla bardzo podobnych macierzy A oraz
W sytuacji, gdy mamy do czynienia z koniecznością rozwiązywania wielu
prawych stron b, nie jest konieczne każdorazowe wyznaczanie dekompozycji
liniowych zadań najmniejszych kwadratów dla bardzo podobnych macierzy A
ortogonalno­‑trójkątnej. Istnieją algorytmy aktualizacji dekompozycji w zależności
oraz prawych stron b, nie jest konieczne każdorazowe wyznaczanie dekompozycji
od różnic w macierzach wejściowych. Typowym przykładem jest ciąg napływają‑
ortogonalno-trójkątnej. Istnieją algorytmy aktualizacji dekompozycji w zależności
cych na bieżąco danych, do których należy dobrać najlepsze (w sensie najmniejszych
od różnic w macierzach wejściowych. Typowym przykładem jest ciąg
kwadratów) estymatory parametrów regresji liniowej. Dwa kolejne modele różnią
napływających na bieżąco danych, do których 23należy dobrać najlepsze (w sensie
się wówczas tylko nowo odczytanym wierszem macierzy A oraz wektora prawej
najmniejszych kwadratów) estymatory parametrów regresji liniowej. Dwa kolejne
modele różnią się wówczas tylko nowoodczytanym wierszem23 macierzy A oraz
wektora prawej strony b. Jeżeli dodatkowo chcemy ograniczyć się do danych
19 Przekształcenia
ży kolejno
(patrz
rysunek 3):
z ostatnich
m chwil, to
nalezachowują
unitarne
długość
wektorów.
20 M. Dryja, J. i M. Jankowscy, Przegląd metod i algorytmów numerycznych, cz. 2, Wydawnictwa Naukowo­
‑Techniczne, Warszawa 1988.
18
A dokładniej
jedno
dwa
mnożenia oraz obliczenie
jednego
pierwiastka
Rozwa21ż ane
są dominuj
ącedzielenie,
operacje
arytmetyczne,
tj. dzielenie,
mno
żenie czykwadratowego.
pierwiastkowanie
22 Istnieje pewna bardziej efektywna implementacja modyfikacja metody wykorzystującej obroty Gi‑
z pominięciem
różnic w szybkości obliczeń pomiędzy nimi.
vensa znana pod nazwą algorytmu Gentelmana.
19
Przekształcenia
unitarne zachowują długość wektorów.
23 Analogicznie można rozpatrywać nowe kolumny zamiast wierszy.
20
M. Dryja, J. i M. Jankowscy, Przegląd metod i algorytmów numerycznych, cz. 2, Wydawnictwa
Naukowo-Techniczne, Warszawa 1988.
21
A dokładniej jedno dzielenie, dwa mnożenia oraz obliczenie jednego pierwiastka
kwadratowego.
61
22
Istnieje pewna bardziej efektywna implementacja modyfikacja metody wykorzystującej obroty
Givensa znana pod nazwą algorytmu Gentelmana.
23
Analogicznie można rozpatrywać nowe kolumny zamiast wierszy.
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 61
10/15/12
13:07 PM
Michał Bernardelli
strony b. Jeżeli dodatkowo chcemy ograniczyć się do danych z ostatnich m chwil, to
należy kolejno (patrz rysunek 3):
zz zaktualizować dekompozycję QR po usunięciu najstarszej obserwacji (procedura
qrdelete),
zz zaktualizować dekompozycję QR po dodaniu najnowszej obserwacji (procedura
qrinsert).
Rysunek 3. Idea wykorzystania procedur qrdelete oraz qrinsert
Źródło: opracowanie własne.
Analiza złożoności autorskich kodów źródłowych obu procedur ma na celu po‑
równanie czasu ich działania z czasem działania metod pełnej dekompozycji.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function [q,r] = qrdelete(q,r,m,n)
for j=m–1:–1:2
[c, s] = givens(q(1,j), q(1,j+1));
q(1,j) = c*q(1,j)–s*q(1,j+1);
if (j<=n)
r(j:j+1,j:n) = [c –s; s c]*r(j:j+1,j:n);
end
q(2:m,j:j+1) = q(2:m,j:j+1)*[c s; –s c];
end
% obliczenia dla pierwszego wiersza
[c, s] = givens(q(1,1), q(1,2));
q(1,1) = c*q(1,1)–s*q(1,2);
r(1:2,1:n) = [c –s; s c]*r(1:2,1:n);
q(2:m,2) = s*q(2:m,1)+c*q(2:m,2);
% usunięcie pierwszych wierszy
r = r (2:m,:);
q = q(2:m,2:m);
end
Procedura qrdelete otrzymuje jako dane wejściowe macierze Q i R dekompo‑
zycji QR macierzy A w chwili t, jako dane wyjściowe zwraca natomiast macierze
62
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 62
10/15/12 13:07 PM
15.
15.
16.
16.
17.
17.
18.
18.
end
end
ciepierwszych
pierwszychwierszy
wierszy
usunięęcie
%%usuni
(2:m,:);
r r==r r(2:m,:);
q(2:m,2:m);
qq==q(2:m,2:m);
Metoda szybkiej aktualizacji dekompozycji QR dla modeli liniowej regresji
ściowe macierze
macierze QQ i i RR
Procedura qrdelete
qrdelete otrzymuje
otrzymuje jako
jako dane
dane wej
wejściowe
Procedura
ściowezwraca
zwracanatomiast
natomiast
dekompozycjiQR
QRmacierzy
macierzyAAwwchwili
chwilit,t,jako
jakodane
danewyj
wyjściowe
dekompozycji
~~ ~~
dekompozycjiQR
QR
macierzy
bez
najstarszej
obserwacji,
czyli
macierze QQ ii iRRdekompozycji
dekompozycji
QR
macierzy
AAbez
najstarszej
obserwacji,
czyli
macierze
macierzy
A bez
najstarszej
obserwacji,
czyli
bez pierwszego
bez pierwszego
pierwszego
wiersza.
Wyodręębniaj
bniaj
pierwsze
wiersze macierze
macierze
i R,R,
bez
wiersza.
Wyodr
ąącc pierwsze
A,A, QQ i przedstawić
wiersza.
Wyodrębniając
pierwsze
wiersze wiersze
macierze
A,
Q i R, można
za‑
naprzedstawi
przedstawi
zaleQR
ność
śćAA==QR
QRwwpostaci:
postaci:
możżna
zale
żżno
mo
leżnośćććA =
w postaci:
 a1 a  q1 q r1 r 

1 =   r1  1. 
=  1 R . .
 Aa1    qQ
 reszta
 reszta
 =   1 reszta
. Rreszta
A
reszta


Qreszta
  
reszta  Rreszta 
 Aresztać pierwszy
 Qpierwszy
Nast
ę
pnie
wystarczy
przekształci
wiersz
macierzy
na na
wektor
Następnie
wystarczy
przekształcić
wiersz
macierzy
Q naQwektor
jednost‑
r1  wiersz
 a1 ć pierwszy
 ć q1pierwszy
 wiersz
Nast
wystarczyprzekształci
przekształci
Q
wektor
Nastęępnie
pnie wystarczy
macierzy macierzy
Q na wektor






=
.
wykorzystuj
ąąserie
jednostkowy
kowy ee1,1,wykorzystując
obrotów
cAserie
 obrotów
 Q Givensa
 RGivensa

c
serie
obrotów
Givensa
jednostkowy
ee1,1,wykorzystuj
wykorzystuj
ą
c
serie
obrotów
Givensa
jednostkowy
reszta
reszta
reszta

 


50
50
 aę1pnie
a1 wystarczy
Nast
ć pierwszy wiersz
Q
r1T   r1 r 
 q1 q1q przekształci
 wektor
T T macierzy
T
TT
TT na
a
T
T

jednostkowy


1 =  = 
1T
T
T
T
T
T
T
T
T
T
K
K
T
T
T
T




K
K
T
T
T
T
T
T
T
T
T
T
−serie
mm−−T
m−1 m −1T
1T
3,24, 3T21Givensa
,,32 T11,,22 T
, 4−T
21,,m
,mT
−,1m
−
22,,mm−−
1 1obrotów
3, 4K
21
, 3, 23T
, 42 , 3 T3m
2 , m −1K
m
 A   A eQ
1
 , m  1 
m1
ąmcm4
−4
=1,wykorzystuj
4,mm4
4
4
4
44
43
4
4
4
4
3
4
2
4
3
4
4
4
4
−1,4
−
−
m−4
m4
−13
m −1R
24
,m
14
3,4
41
2 ,4
31
1, 24
14
, 22
2 ,4
34
32
, 44
2 ,reszta
mT
m2
Qreszta
R
A reszta  reszta


 reszta

3reszta
 
1
4
4
4
4
2
4
4
4
4
3
1
4
4
4
4
2
4
4
4
4
TT
T
reszta 
  qQ
 Rreszta
T TT
r1 
 areszta
T
1 
1 
T T
T
T
T
T






Tm −1, mTm − 2, m −1 KT3, 4T2,3T1, 2 T1, 2T2,3T3, 4 KTm − 2, m −1Tm −1, m 
=ąc
i otrzymuj
i otrzymuj
444244443  Rreszta 
Aresztaąc ącQreszta  14444244443 14
i otrzymać
i otrzymuj
T a1   1 0  r~1  ~ T
 ~a1 =   1 ~ 0~, r1  ~
i otrzymując
1~R0~,r1 
A~ a=10 =Q~
~  ~ ,
~
1
0
a
r
0
A





  Q
1   R
gdzie
 ~1  = A  ~  0
~ , Q  R

~
gdzie
 A   0 Q  R 
r1 
 r 

gdzie
gdzie
 q1   1 0 
 ~  = T~T  1 .
~
gdzie A

 = 
i
= Areszta ,
~ T
R
r1 r
r
~
   1  R
T
~
r=11reszta




 
 01 Q 0
  Qqreszta

r


r
T
T
~ ~




1 q
~
1
T
TR  1. .
 q1  1 =1 01~ T0  i  ~  = T R  ~  =
.
A =A~A=A=reszta
,
  =   0=~TQ kodu
  R reszta
 reszta
 
Areszta
, ,  Qzamieszczonego
~i T procedury
R  wyznaczony
Na Apodstawie
reszta
i R  qrdelete
 Rreszta
reszta
Qreszta
  0 Q0  Q
Q



reszta

zostanie koszt jej działania. W j-tej iteracji pętli for dla j = 2, 3, …, min(m – 1, n)
równy: zamieszczonego
koszt
Kpodstawie
j jest
NaNa
zamieszczonego
procedury
wyznaczony
podstawie
kodukodu
procedury
qrdelete qrdelete
wyznaczony
Na
podstawie
kodu
procedury
qrdelete
wyznaczony
=
4 (linia
3)zamieszczonego
+ zamieszczonego
2W
(linia
4)iteracji
+ iteracji
4*(nkodu
1)
(linia
4*(m
–min(m
1)
(linia
8).
K
Na
podstawie
procedury
qrdelete
zostanie
j jej
for
dlafor
j =6)dla
2,+3,
…,
– 1,min(m
n)wyznaczony
zostanie
koszt
jej
działania.
j-tej
pę–jtli+p
zostanie
koszt
działania.
W
j-tej
ę
tli
j
=
2,
3,
…,
– 1,–n)
zostanie
koszt
jej
Wn j-tej
iteracji
pęj =
tli K
for
j = 2, 3,
…,
min(m
1, n)
Dlakoszt
j-tej
iteracji
pętlidziałania.
forW j­
dla‑tej
j = iteracji
n,
+1,pętli
…,
mfor
– 1dla
koszt
jestdla
równy:
j 3,
równy:
koszt
K
jej
działania.
2,
…,
min(m
–
1,
n)
koszt
Kj jest
j jest
równy:
koszt
Kj jest
=
4
(linia
3)
+
2
(linia
4)
+
4*(m
–
1)
(linia
8),
K
jest
równy:
koszt
K
j
=
4
(linia
3)
+
2
(linia
4)
+
4*(n
–j
+
1)
(linia
6)
+
4*(m
–
1)
(linia
8).
K
jj
równy:
=K4liczba
(linia
3)
2zmiennoprzecinkowych
4*(n
+–j
1)+K(linia
6) +6)
4*(m
1)–(linia
8). 8).
Kj iteracji
ń–czeniu
natomiast
operacji
wykonywanych
po
Dla
j-tej
tli
for+3)
dla
=2n,(linia
n 4)
+1,+4)
…,
––j
1 koszt
równy:
j jest
(linia
+j(linia
+m4*(n
1)
(linia
+zako
4*(m
1) (linia
j = 4pę
DlaDla
j-tej
iteracji
ę(linia
tlipKwyra
jwzorem:
=3)jn,
+1,
…,
m
1––koszt
K8),
równy:
żdla
a(linia
działania
pęj tli
j+jest
K
=p4for
+się2dla
(linia
+n 4*(n
–j
+–m
1)
(linia
6)
4*(m
– 1) (linia 8).
= 43)
+=2n4)
(linia
4) +…,
4*(m
1)1(linia
j-tej
iteracji
ęjfor
tli
for
n,
+1,
koszt
K
j jest równy:
(linia
+ 2 (linia
12)
+(linia
4*n (linia
13)
+ 4*(m
–po
1)
(linia
14).
K1 = 4operacji
ń8),
czeniu
natomiast liczba
wykonywanych
zako
4zmiennoprzecinkowych
(linia
3)
+
2
4)
+
4*(m
–
1)
(linia
Kj =K11)
2
=ęj,wzorem:
4otrzymujemy
(linia
3)
+n,24m
(linia
4)2m –
+– 4*(m
–6n1)
(linia
8),
jpętli
ą
c
po
wszystkich
+
2n
2m
+
–
2
operacji
Sumuj
ę
tli
for
wyra
ż
a
si
działania
p
Dla
j­
‑
tej
iteracji
for
dla
j =
n +1,
…,
1
koszt
K
jest
równy:
j
ńczeniu
natomiast
liczba
operacji
zmiennoprzecinkowych
wykonywanych
po zako
2
natomiast
liczba
operacji
zmiennoprzecinkowych
wykonywanych
ż
eniu
4m
operacji.
zmiennoprzecinkowych,
co
dla
n
=
2
daje
w
przybli
K1 = 4 (linia 11) + 2 (linia 12) + 4*n (linia 13) + 4*(m – 1) (linia 14). po zakończeniu
ę
tli
for
wyra
ż
a
si
ę
wzorem:
działania
p
2
2
Kj j,=ż4otrzymujemy
3) + 24m
(linia
tli for wyra
a (linia
się wzorem:
działania
+ 4)
2n+ –4*(m
2m –+ 1)6n(linia
– 2 8),
operacji
Sumując popęwszystkich
2 + 4*(m – 1) (linia 14).
11)
+
2
(linia
12)
+
4*n
(linia
13)
1 = 4 (linia
1. K
function
[q,r]
=
qrinsert(q,r,m,n)
ż
eniu
4m
operacji.
zmiennoprzecinkowych,
co
dla
n
=
2
daje
w
przybli
4 (linia 11) +zmiennoprzecinkowych
2 (linia 12) + 4*n
(linia
1) (linia 14).
K1 =liczba
2 13) + 4*(m –po
wykonywanych
2.ąnatomiast
for
j = 1:n operacji
c ąpo
wszystkich
j, otrzymujemy
4m24m
+2 2n
– 2 2m
+ 6n
– zakończeniu
2– operacji
Sumuj
c
po
wszystkich
j,
otrzymujemy
+
2n
–
2m
+
6n
2 operacji
Sumuj
2
[c,=for
s]
=wyraża
givens(r(j,j),
r(m,j));
pętli
się
wzorem:
1.3. działania
function [q,r]
qrinsert(q,r,m,n)
ż
eniu
4m
operacji.
zmiennoprzecinkowych,
co
dla
n
=
2
daje
w
przybli
2
zmiennoprzecinkowych, co dla n = 2 daje w przybliżeniu 4m operacji.
T
T
2.4.
for j = 1:n % aktualizacja macierzy r
K1 =
4s](linia
11) + –2s*r(m,j);
(linia
12) + 4*n (linia 13) + 4*(m – 1) (linia 14).
c*r(j,j)
3.5.
[c,r(j,j)
==givens(r(j,j),
r(m,j));
1. 1.
function
[q,r]
=
qrinsert(q,r,m,n)
6.
r(m,j)
=
0;
4.
% =aktualizacja
macierzy r
function [q,r]
qrinsert(q,r,m,n)
Sumując
po =wszystkich
j, otrzymujemy 4m2 + 2n2 – 2m + 6n – 2 operacji zmien‑
2. 2.
for for
j = r(j,j)
tmp1
= r(j,j+1:n);
5.7.
c*r(j,j)
– s*r(m,j);
j1:n
= 1:n
dla n = 2 daje
w przybliżeniu 4m2 operacji.
tmp2
r(m,j+1:n);
3. 3.
[c,
s]
==s]=givens(r(j,j),
r(m,j));
6.8. noprzecinkowych,
r(m,j)
0;co
[c,
=
givens(r(j,j),
r(m,j));
r(j,j+1:n)
= c*tmp1 – s*tmp2;
7.9.
tmp1
4. 4.
%= r(j,j+1:n);
aktualizacja
macierzy
r r
%
aktualizacja
macierzy
r(m,j+1:n)
= s*tmp1 + c*tmp2;
8.10.
tmp2
= c*r(j,j)
r(m,j+1:n);
5. 5.
r(j,j)
=
–
s*r(m,j);
%=
aktualizacja
macierzy
q
r(j,j)
s*r(m,j);
9.11.
r(j,j+1:n)
= c*r(j,j)
c*tmp1 ––s*tmp2;
6. 6.
r(m,j)
=
0;
12.
tmp1
=
q(1:m,j);
10.
r(m,j+1:n)
+ c*tmp2;
r(m,j) = s*tmp1
0;
7. 7.
tmp1
=
r(j,j+1:n);
13.
tmp2
=
q(1:m,m); macierzy q
11.
%
aktualizacja
tmp1 = r(j,j+1:n);
14.
q(1:m,j)
= c*tmp1 – s*tmp2;
12.
tmp1
==q(1:m,j);
8. 8.
tmp2
r(m,j+1:n);
tmp2
==r(m,j+1:n);
15.
q(1:m,m)
s*tmp1 +–c*tmp2;
13.
tmp2
=
q(1:m,m);
9. 9.
r(j,j+1:n)
= c*tmp1
s*tmp2;
r(j,j+1:n)
= c*tmp1
– s*tmp2;
16.
end q(1:m,j)
14.
= c*tmp1
– s*tmp2;
10. 10.
r(m,j+1:n)
=
s*tmp1
+
c*tmp2;
17. end
r(m,j+1:n)
= s*tmp1
+ c*tmp2;
15.
q(1:m,m)
= s*tmp1
+ c*tmp2;
11. 11.
% %
aktualizacja
macierzy
q q
16.
end
aktualizacja
macierzy
12. 12.
tmp1
=
q(1:m,j);
63
17. end
tmp1 = q(1:m,j);
13. 13.
tmp2
= q(1:m,m);
tmp2
= q(1:m,m);
14. 14.
q(1:m,j)
=
– s*tmp2;
q(1:m,j)c*tmp1
= c*tmp1
– s*tmp2;
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 63
15.
q(1:m,m) = s*tmp1 + c*tmp2;
10/15/12 13:07 PM
ródło:opracowanie
opracowaniewłasne.
własne.
ŹŹródło:
onośści
ci autorskich
autorskich kodów
kodów źźródłowych
ródłowych obu
obu pro
pro
Analiza zło
złożżono
Analiza
porównanieczasu
czasuich
ichdziałania
działania zzczasem
czasemdziałania
działania metod
metodpełnej
pełnejd
porównanie
Michał Bernardelli
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
1.
function[q,r]
[q,r]==qrdelete(q,r,m,n)
qrdelete(q,r,m,n)
1.
function
2.
forj=m–1:–1:2
j=m–1:–1:2
2.
for
3.
[c, s]s]==givens(q(1,j),
givens(q(1,j), q(1,j+1));
q(1,j+1));
[c,
function [q,r] = qrinsert(q,r,m,n)3.
4.
q(1,j)
=
c*q(1,j)–s*q(1,j+1);
4.
q(1,j)
=
c*q(1,j)–s*q(1,j+1);
for j = 1:n
5.
(j<=n)
ifif (j<=n)
[c, s] = givens(r(j,j),5.
r(m,j));
6.macierzy r
r(j:j+1,j:n)==[c
[c –s;
–s;ssc]*r(j:j+1,j:n);
c]*r(j:j+1,j:n);
% aktualizacja6.
r(j:j+1,j:n)
r(j,j) = c*r(j,j) – s*r(m,j);
7.
end
7.
end
r(m,j) = 0;
8.
q(2:m,j:j+1)==q(2:m,j:j+1)*[c
q(2:m,j:j+1)*[c s;s;–s
–sc];
c];
8.
q(2:m,j:j+1)
tmp1 = r(j,j+1:n); 9.
end
9.
end
tmp2 = r(m,j+1:n);
10.
%obliczenia
obliczenia dla
dlapierwszego
pierwszego wiersza
wiersza
10.
%
r(j,j+1:n) = c*tmp1 – s*tmp2;
11.
[c,
s]
=
givens(q(1,1),
q(1,2));
11.
[c,
s]
=
givens(q(1,1),
q(1,2));
r(m,j+1:n) = s*tmp1 + c*tmp2;
12.
q(1,1)==c*q(1,1)–s*q(1,2);
c*q(1,1)–s*q(1,2);
q(1,1)
% aktualizacja12.
macierzy q
13.
r(1:2,1:n) ==[c
[c –s;
–s;ssc]*r(1:2,1:n);
c]*r(1:2,1:n);
r(1:2,1:n)
tmp1 = q(1:m,j); 13.
14.
tmp2 = q(1:m,m); 14.
q(2:m,2)==s*q(2:m,1)+c*q(2:m,2);
s*q(2:m,1)+c*q(2:m,2);
q(2:m,2)
q(1:m,j) = c*tmp1 –15.
s*tmp2;
ciepierwszych
pierwszychwierszy
wierszy
15.
%usuni
usunięęcie
%
q(1:m,m) = s*tmp116.
+ c*tmp2;
(2:m,:);
16.
rr ==rr(2:m,:);
end
q(2:m,2:m);
17.
qq ==q(2:m,2:m);
17.
end
end
18.
end
18.
Procedura qrinsert otrzymuje jako dane wejściowe macierze Q i R
Procedura
qrinsert
otrzymuje
jako
dane
wej
ściowe
macierze
Q
i dane
R wej
ciowe m
Procedura
otrzymuje
jako
dane
wejśściowe
Procedura
qrinsert
otrzymuje
dane
macierze
Q otrzymuje
i R
Procedura
qrdelete
jako
dekompozycji
QR
macierzy
A w jako
chwili
t wejściowe
oraz
dane
zqrdelete
chwili
t +dekompozycji
1, czyli
nowy
Procedura
qrinsert
otrzymuje
jakot t +
dane
wej
śzmacierzy
ciowe
macierze
Qt,t,nowy
ijako
R dane
dekompozycji
QR
macierzy
Adane
w chwili
oraz
dane
chwili
tAA
+t+1
czyli
ciowe
dekompozycji
QR
macierzy
chwili
dane wyj
wyjśściowe
dekompozycji
QR
ww1,macierzy A,
chwili
jako
QR
macierzy
A w chwili
t oraz
z chwili
1,
czyli
nowy
wiersz
r
wiersz rt+1 macierzy A, jako dane wyjściowe zwraca
macierze
i
~~dane~~ znatomiast
dekompozycji
QR
macierzy
A
w
chwili
t
oraz
chwili
t
+
1,
czyli
nowy
Q i iiIdea
dekompozycji
QRaktualizacji
macierzy
bez najstarszej
najstarszej
macierze
wiersz
rt+1 macierzy
A,
jakonatomiast
wyj
ściowe
zwraca
natomiast
macierze
i AA bez
RR dekompozycji
dekompozycji
QR
macierzy
macierze
jako dane
wyjściowe
zwraca
macierze
QR
macierzy
dekompozycji
QR macierzy
Adane
w chwili
t +Q
1.
wyznaczenia
wiersz
r
macierzy
A,
jako
dane
wyj
ś
ciowe
zwraca
natomiast
macierze
i
dekompozycji
QR
macierzy
A
w
chwili
t
+
1.
Idea
wyznaczenia
aktualizacji
bez
pierwszego
wiersza.
Wyodr
ę
bniaj
ą
c
pierwsze
wiersze
ma
A w chwili
t +
1.
Idea
wyznaczenia
aktualizacji
dekompozycji
QR
polega
na
wyko‑
bez
pierwszego
wiersza.
Wyodr
ę
bniaj
ą
c
pierwsze
wiersze
ma
t+1
dekompozycji QR polega na wykorzystaniu zależności A = QR przedstawionej
ż
na
przedstawi
ć
zale
ż
no
ść
A
=
QR
w
postaci:
mo
dekompozycji
QR
macierzy
A
w
chwili
t
+
1.
Idea
wyznaczenia
aktualizacji
ż
no
ś
ci
A
=
QR
przedstawionej
dekompozycji
QR
polega
na
wykorzystaniu
zale
ż
na
przedstawi
ć
zale
ż
no
ść
A
=
QR
w
postaci:
mo
rzystaniu zależności A = QR przedstawionej w postaci:
w postaci
dekompozycji
QR polega na wykorzystaniu zależności A = QR przedstawionej
w postaci
 A  Q 0  R 
w postaci
 A=  Q 0 R ,
 =Q
0 10 rR
+1  
t +1 
rtrA
 ,
 t +1=  0 1 rt +1,
a nast
ępnie wyzerowaniu
wiersza
przy
wykorzystaniu
obrotów
a następnie
wyzerowaniu ostatniego
ostatniego
przy
wykorzystaniu
obrotów
Gi‑
rtr+rt+1
0wiersza
1 rt+1
1t+1
 rt +1  wiersza
 przy
a następnie wyzerowaniu ostatniego
wykorzystaniu obrotów
Givensa:
vensa:
aGivensa:
następnie wyzerowaniu ostatniego wiersza rt+1 przy wykorzystaniu obrotów
 A A  QQ 0 0
 R  ~~
Givensa:
~~
   =  
T1, m +1T2, m +1 KTn −1, m +1Tn, m +1TnT,Tm +1TnTT−1, m +1 KT2TT, m +1T1TT, m +1 R  = Q
K4
= Q 10 1
T14
Tn −4
Tn4
T24
= ~QRR,,
4
n ,3
m +11
m +2
, m +4
1T24
, m4
+12
1, m4
+1T4
, m +4
1Tn4
−1,4
1K
, m +4
1T14
, m3
+1 R
r



~

1    0
t
+
1
 rt +rA


4444T24444
31
4T2
4
3  rt +1= QR
T 44
T4
T 4T44T
 t +1=  0 1T1
K
,
T T2 , m +1T1, m +1 
1, m +1T2 , m +1 KTTn −1, m +1Tn , m +1Tn , m +1Tn −1, m +1 T


3 1444424444
3  rt +1 
rt +1   0 1  1444424444

gdzie
T
TT
gdzie
gdzie
Q
0
~~   Q 0
gdzie
~~
T
R .
R
T
T
QQ
== 
=
R
T
i


T
=
R
T
i
 rrRt +1.
~ 0Q0 101
~
T 


T
Q = 
R = T  t +1.
i
NaNa podstawie
kodu
wyznaczony
 0 1
 rt +1 qrinsert
podstawie zamieszczonego
zamieszczonego
kodu procedury
procedury
qrinsert wyznaczony
zostanie
jejjejdziałania.
W
ppęętli
for
dla
2,
…, nwyznaczony
nwyznaczony
koszt KKjj jest
jest
Na
podstawie
zamieszczonego
kodu
qrinsert
zostanie
koszt
działania.
Wj-tej
j-tejiteracji
iteracji
tliprocedury
for qrinsert
dla jj =
= 1,
1,
2, …,
koszt
Nakoszt
podstawie
zamieszczonego
kodu
procedury
zostanie
równy:
zostanie
koszt
jej działania.
W j-tejpętli
iteracji
pętli
= 1, 2, K
…,
n koszt K jest
równy:
koszt jej
działania.
W j­‑tej iteracji
for dla
j =for
1, 2,dla
…,j n koszt
j jest równy: j
Krówny:
4 4(linia
14–15).
jK=j =
(linia3)3)++2 2(linia
(linia5)5)++4*(n
4*(n––j j++1)
1)(linie
(linie 9–10)
9–10) ++ 4*m
4*m (linie
(linie 14–15).
Kj = 4 3)
(linia
+ 2 (linia
5) + 4*(n
j +(linie
1) (linie
9–10)
+ 4*m
(linie14–15).
14–15).
Kj = 4 (linia
+ 23)(linia
5) + 4*(n
– j +–1)
9–10)
+ 4*m
(linie
22
Sumuj
ącąc popo
wszystkich
j,j, otrzymujemy
2n
+
+ 8n
8n operacji
operacji
Sumuj
po wszystkich
wszystkich
otrzymujemy
2n8n operacji
+ 4mnzmiennoprzecinko‑
Sumując
j, otrzymujemy
2n2 + 4mn +
2
zmiennoprzecinkowych,
cocodla
nn=
22daje
Sumuj
ąc copo
wszystkich
j,8m
otrzymujemy
2n
+ 4mn + 8n operacji
zmiennoprzecinkowych,
dla
=
dajeokoło
około 8m
8m operacji.
operacji.
wych,
dla n =
2 daje około
operacji.
zmiennoprzecinkowych,
dla n = 2dekompozycji
daje około 8m QR
operacji.
Porównuj
ącącczasy
działania
dla n = 2 metod
metodąą odbi
odbićć
Porównuj
czasyco
działania
dekompozycji
QR
Porównujoraz
ąoraz
c czasy
dekompozycji
QR dla
n = 2 metod
ą odbić
Householdera
życiem procedur
procedur
qrdelete
otrzymujemy
Householdera
z z uużdziałania
yciem
qrdelete
i qrinsert,
otrzymujemy
22
Householdera
oraz
z rzurzężdu,
procedur
i qrinsert,
otrzymujemy
wyra
żeniatego
tegosamego
samego
ęyciem
du,tj.tj.mm
samqrdelete
stałąą przy
przy
pot
wyra
żenia
zz tątą sam
ąą stał
najwyższej
potęędze.
dze. W
W
2
wyra
ż
enia
tego
samego
rz
ę
du,
tj.
m
z
t
ą
sam
ą
stał
ą
przy
najwy
ż
szej
pot
ę
dze.
W
celu
okre
ś
lenia
zale
ż
no
ś
ci
szybko
ś
ci
działania
od
czynników
ni
ż
szych
rz
ę
dów
celu określenia zależności szybkości działania od czynników
szych rzędów
celu
okre
śleniać ćzale
żnościka
szybko
ci działania
od czynników niższych
rzędów
mo
ż64na
policzy
osobno
ka
operacji
zmiennoprzecinkowych:
dodawanie,
mo
żna
policzy
osobno
żżddąą zzśoperacji
zmiennoprzecinkowych:
dodawanie,
24
24
mo
ż
na
policzy
ć
osobno
ka
ż
d
ą
z
operacji
zmiennoprzecinkowych:
dodawanie,
odejmowanie,
mno
ż
enie,
dzielenie,
pierwiastkowanie
.
Niestety,
szybko
odejmowanie, mnożenie, dzielenie, pierwiastkowanie24 Niestety, szybkość
ść
odejmowanie,
mno
ż
enie,
dzielenie,
pierwiastkowanie
.
Niestety,
szybko
ść
działania
ka
ż
dego
z
tych
działa
ń
arytmetycznych
zale
ż
y
od
budowy
konkretnego
działania
ka
ż
dego
z
tych
działa
ń
arytmetycznych
zale
ż
y
od
budowy
konkretnego
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 64
10/15/12 13:07 PM
Metoda szybkiej aktualizacji dekompozycji QR dla modeli liniowej regresji
Porównując czasy działania dekompozycji QR dla n = 2 metodą odbić Househol‑
dera oraz z użyciem procedur qrdelete i qrinsert, otrzymujemy wyrażenia tego samego
rzędu, tj. m2 z tą samą stałą przy najwyższej potędze. W celu określenia zależności
szybkości działania od czynników niższych rzędów można policzyć osobno każdą
z operacji zmiennoprzecinkowych: dodawanie, odejmowanie, mnożenie, dzielenie,
pierwiastkowanie24. Niestety, szybkość działania każdego z tych działań arytmetycz‑
nych zależy od budowy konkretnego procesora/procesorów, stąd takie porównanie
mogłoby nie być miarodajne. Rozsądne jednak wydaje się założenie, iż procesory
współczesnych komputerów osobistych nie różnią się diametralnie, jeżeli chodzi
o obsługę podstawowych operacji arytmetycznych. Ważniejszą kwestią okazuje się
jednak wpływ pozostałych działań, które w przypadku wyraźnych różnic w liczbie
operacji zmiennoprzecinkowych były pomijane. Chodzi tutaj o takie rzeczy, jak: przy‑
pisanie, kopiowanie zmiennych, zwracanie wartości funkcji czy organizacja i aloka‑
cja pamięci. Czas wymagany przez te dodatkowe i zwykle pomijane przy badaniu
złożoności operacje zależy od tak wielu czynników, iż w praktyce jest niemożliwy
do policzenia. Odpowiedź na pytanie o porównanie szybkości działania obu metod
może dać natomiast symulacja komputerowa.
5. Wyniki symulacji komputerowej
Symulacja komputerowa została przeprowadzona w oparciu o przedstawione
kody źródłowe na danych z rynku Forex w granulacji dwusekundowej. Wykorzystane
zostały kursy walutowe euro do franka szwajcarskiego (EUR/CHF), euro do korony
norweskiej (EUR/NOK), euro do dolara amerykańskiego (EUR/USD), srebra do do‑
lara amerykańskiego (AG/USD) oraz złota do dolara amerykańskiego (AU/USD).
Dla liczb wierszy m macierzy regresji liniowej w zakresie od 5 do 1000 oraz kolejnych
25 000 danych każdego z szeregów czasowych wyznaczone zostały:
zz dekompozycje QR metodą odbić Householdera (metoda M1),
zz kolejne aktualizacje dekompozycji, tj. qrdelete i qrinsert (metoda M2).
Uśrednione dla wybranych wartości m zmierzone czasy obliczeń zostały przed‑
stawione w tabeli 1. Warto podkreślić, iż jeśli chcemy oprzeć strategię gry na rynku
Forex na większej liczbie prognoz z regresji liniowej, suma czasów koniecznych do
ich wyznaczenia nie może w tym przypadku przekraczać dwusekundowego prze‑
działu. W przypadku obliczeń tylko dla rozważanych pięciu szeregów czasowych
dla m większych od ok. 700 uzyskano w przypadku metody M1 czasy niespełniające
tego ograniczenia.
24 Jeśli wziąć pod uwagę najwolniejsze z działań, tj. pierwiastkowanie teoretyczne, wyliczenia wypadają
na korzyść algorytmu z aktualizacją dekompozycji QR.
65
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 65
10/15/12 13:07 PM
Michał Bernardelli
Tabela 1. Średnie czasy działania metody odbić Householdera (M1) oraz metody
aktualizacji dekompozycji QR (M2) w zależności od liczby danych (m)
10
m
100
M1
dane
M2
M1
200
M2
M1
300
M2
M1
M2
EUR/CHF
.0002
.0006
.0091
.0056
.0250
.0117
.1122
.0333
EUR/NOK
.0002
.0006
.0032
.0060
.0108
.0114
.0465
.0238
EUR/USD
.0002
.0005
.0016
.0047
.0156
.0107
.0425
.0216
AG/USD
.0002
.0006
.0021
.0054
.0092
.0114
.0410
.0230
AU/USD
.0002
.0006
.0023
.0047
.0119
.0111
.0402
.0217
SUMA
.0010
.0029
.0183
.0264
.0725
.0563
.2824
.1234
ŚREDNIA
.0002
.0006
.0037
.0053
.0145
.0113
.0565
.0247
Źródło: opracowanie własne.
Na rysunku 4 została pokazana większa szybkość metody aktualizacji dekompo‑
zycji QR (metoda M2) w porównaniu z pełną dekompozycją (metoda M1) dla więk‑
szych od ok. 250 wartości m.
0.1
dekompozychja QR metodą Householdera
0.09
aktualizacja dekompozycji QR
0.08
średni czas obliczeń [s]
0.07
0.06
0.05
0.04
0.03
0.02
0.01
0
0
50
100
150
200
liczba wierszy macierzy
250
300
350
400
Rysunek 4. Porównanie średnich czasów działania metod M1 i M2 w zależności
od liczby wierszy macierzy LZNK
Źródło: opracowanie własne.
66
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 66
10/15/12 13:07 PM
Metoda szybkiej aktualizacji dekompozycji QR dla modeli liniowej regresji
6. Podsumowanie i kierunki dalszych badań
Analiza teoretyczna badanych algorytmów wyznaczania dekompozycji QR wraz
z przeprowadzonymi symulacjami komputerowymi prowadzą do następujących
wniosków:
zz szybkość działania metody M1 dla zadań o niewielkich wymiarach (m < 200) jest
wyższa od metody M2; dla prognoz opartych na regresji liniowej małej liczby da‑
nych lepiej jest wykonać każdorazowo dekompozycję QR metodą odbić House‑
holdera,
zz dla większych rozmiarów liniowych zadań najmniejszych kwadratów efektyw‑
niejsza jest metoda wykorzystująca aktualizację istniejącej dekompozycji QR,
zz decydujący koszt czasowy metody M2 jest związany przede wszystkim z liczbą
operacji zmiennoprzecinkowych algorytmu qrdelete; przewaga szybkości metody
prognozowania opartej tylko na dodawaniu nowych danych bez usuwania starych
nad metodą M1 jest jeszcze większa.
Algorytmy opisane w niniejszym opracowaniu należy traktować jako podstawę
do budowy bardziej wyrafinowanych metod prognozowania zmian kursów waluto‑
wych na rynku Forex. Z pewnością można rozważyć następujące uogólnienia i mo‑
dyfikacje:
zz rozszerzenie na modele liniowej regresji dla wielomianów wyższych stopni oraz
dla większej liczby zmiennych,
zz rozpatrzenie przypadku regresji nieliniowej,
zz zastosowanie metod, które nie wymagają obliczania explicite macierzy Q oraz po‑
równanie ich szybkości z szybkością działania metod M1 i M2.
Bibliografia
Björck A., Numerical methods for least squares problems, SIAM, Philadelphia (USA) 1996.
Dryja M., Jankowscy J. i M., Przegląd metod i algorytmów numerycznych, cz. 2, Wydawnic‑
twa Naukowo­‑Techniczne, Warszawa 1988.
Golub G.H., Van Loan Ch.F., Matrix Computations, ed. 2nd, Johns Hopkins University Press,
New York 1990.
Kiełbasiński A., Schwetlick H., Numeryczna algebra liniowa, Wydawnictwa Naukowo­
‑Techniczne, Warszawa 1992.
Kincaid D., Cheney W., Analiza numerycza, Wydawnictwa Naukowo­‑Techniczne, Warszawa
2006.
Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B.P., Numerical Recipes: The Art of Scien‑
tific Computing, ed. 3rd, Cambridge University Press, New York 2007.
67
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 67
10/15/12 13:07 PM
Michał Bernardelli
Stoer J., Bulirsch R., Introduction to Numerical Analysis, ed. 3rd, Springer, New York 2002
Trefethen L.N., Bau D., Numerical Linear Algebra, SIAM, Philadelphia (USA) 1997.
Źródła sieciowe
http://www.bis.org/publ/rpfxf10t.htm [dostęp 17.04.2012].
http://www.euromoney.com/poll/3301/PollsAndAwards/Foreign­‑Exchange.html [dostęp
17.04.2012].
http://www.forexite.com [dostęp 17.04.2012].
http://www.knf.gov.pl/aktualnosci/2011/forex.html [dostęp 17.04.2012].
Summary
Method of QR decomposition’s fast updates for linear
regression models
In the paper the description of algorithms of solving the linear least square pro‑
blem with QR decomposition method and their analysis of usefulness to the fast
changing panel data, is presented. The classical algorithm of QR decomposition
using Householder reflections and the algorithm of fast updates of QR decomposi‑
tion using Givens rotations are compared. Results of the computer simulation for
the data from the foreign exchange market are presented.
Keywords: Forex, algorithm, linear least square problem, QR decomposition, Givens
rotation, Householder reflection, QR factorization update
JEL Classification: C63, C23
SGH_198_2012_08_97Roczniki_27_Witkowski.indd 68
10/15/12 13:07 PM

Podobne dokumenty