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: a1 a q1 q r1 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ę1pnie a1 wystarczy Nast ć pierwszy wiersz Q r1T r1 r q1 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~R0~,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 Qqreszta r r T T ~ ~ 1 q ~ 1 T TR 1. . q1 1 =1 01~ 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 Q0 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 rt+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: ~~ = T1, 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 rt +rA 4444T24444 31 4T2 4 3 rt +1= QR T 44 T4 T 4T44T t +1= 0 1T1 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