Toni Fadjukoff CAUCHYN JAKAUMAN ESTIMOINTI NUMEERISIN MENETELMIN Kandidaatintyö Tarkastaja: Simo Ali-Löytty II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Teknisluonnontieteellinen koulutusohjelma TEKIJÄN NIMI: Toni Fadjukoff Kandidaatintyö, 18 sivua Joulukuu 2011 Pääaine: Matematiikka Tarkastaja: Simo Ali-Löytty Avainsanat: Cauchyn jakauma, Newtonin menetelmä Cauchyn jakauma on hyvin paksuhäntäinen todennäköisyysjakauma. Jakaumaa voidaan käyttää joustavissa menetelmissä, sillä se sallii satunnaisotoksissa isotkin poikkeamat ilman että sen parametrit muuttuvat. Cauchyn jakauma on tunnettu myös teoreettisista ominaisuuksistaan, sillä jakaumalle ei pystytä laskemaan odotusarvoa. Tässä työssä esitetään useita Cauchyn jakauman ominaisuuksia. Jakauman parametrien merkitys selvitetään. Cauchyn kertymäfunktio ja affiinimuunnos lasketaan auki. Näytetään myös, miksi jakaumalla ei ole odotusarvoa. Lisäksi johdetaan Cauchyn jakaumalle suurimman uskottavuuden estimaatti. Suurimman uskottavuuden estimaatit lasketaan käyttäen muunneltua Newtonin algoritmia. Newtonin algoritmin tarvitsevat derivaatat lasketaan sekä analyyttisesti että numeerisesti. Estimaattorin tarkkuutta tutkitaan ajamalla lukuisat määrät simulaatioita. Numeerisen ratkaisijan nopeutta ja tarkkuutta verrataan MATLAB-ohjelmistoon sisältyviin valmisratkaisijoihin. Testauksessa havaitaan itse kirjoitettu algoritmi nopeammaksi kuin yleiskäyttöiset optimointirutiinit. Lisäksi selvitetään mahdollisia ongelmia optimointialgoritmin toteuttamisessa. III SISÄLLYS 1. Johdanto . . . . . . . . . . . . . . . . . . . . . . . . 2. Teoria . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Cauchyn jakauma . . . . . . . . . . . . . . . . 2.2 Suurimman uskottavuuden estimointi . . . . . 2.2.1 Analogia Bayesiläisiin menetelmiin . . . . . 2.2.2 Log-uskottavuus . . . . . . . . . . . . . . . 2.3 Estimaatin arvon laskeminen . . . . . . . . . . 2.3.1 Newtonin menetelmä . . . . . . . . . . . . 2.3.2 Newtonin menetelmä numeerisesti . . . . . 2.3.3 Numeerinen osittaisderivointi . . . . . . . . 2.3.4 Newtonin alkuarvaus . . . . . . . . . . . . 3. Testaus . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Satunnaislukujen generointi . . . . . . . . . . . 3.2 Vertailtavat algoritmit . . . . . . . . . . . . . . 3.3 Newtonin menetelmän toteuttaminen . . . . . . 3.3.1 Ongelmia algoritmin kanssa . . . . . . . . 3.4 Suurimman uskottavuuden estimaatin tarkkuus 3.5 Numeeristen menetelmien nopeus . . . . . . . . 4. Yhteenveto . . . . . . . . . . . . . . . . . . . . . . . Lähteet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 4 5 5 6 7 8 9 10 11 11 12 13 14 16 17 18 19 IV TERMIT JA SYMBOLIT f (x; θ, σ) F (x; θ, σ) Cauchy(θ, σ) Normal(θ, v 2 ) L(x1 , . . . , xn ; θ, σ) l(x1 , . . . , xn ; θ, σ) Lneg (x1 , . . . , xn ; θ, σ) lneg (x1 , . . . , xn ; θ, σ) Mk (x) �k i=1 xi qr limx→x0 R Z+ hT ∇f (y) H(y) p(θ, σ|x) p(x|θ, σ) O(h2 ) Cauchyn tiheysfunktio, jonka sijaintiparametri on θ ja skaalausparametri σ Cauchyn kertymäfunktio, jonka sijaintiparametri on θ ja skaalausparametri σ Cauchyn jakauma, jonka sijaintiparametri on θ ja skaalausparametri σ normaalijakauma, jonka odotusarvo on θ ja varianssi v 2 uskottavuusfunktio otoksesta x1 , . . . , xn uskottavuusfunktion logaritmi −L(x1 , . . . , xn ; θ, σ) −l(x1 , . . . , xn ; θ, σ) todennäköisyysjakauman k:s momentti tulo alkioista {xi |1 ≤ i ≤ k} otoskvantiili, pienin luku jolla r:s osa otoksesta on pienempi raja-arvo, kun x lähestyy x0 :a reaalilukujen joukko positiivisten kokonaislukujen joukko vektorin h transpoosi funktion f gradientti pisteessä y Hessen matriisi kohdassa y θ:n ja σ:n tiheysfunktio kun otos on x x:n tiheysfunktio, kun parametrit ovat θ ja σ h:n polynomi, joissa kaikkien termien aste vähintään 2 1 1. JOHDANTO Mallintamisessa käytetään usein apuna todennäköisyysjakaumia. Monissa mittauksissa virhettä arvioidaan jotakin jakaumaa noudattavana satunnaismuuttujana. Suosittu ja paljon tutkittu normaalijakauma sopii hyvin monenlaiseen dataan, mutta poikkeuksellisen paljon poikkeavia mittauksia, ulkolaisia, ei normaalijakaumaa noudattavilla mittauksilla pitäisi olla lainkaan. Tosimaailmassa mittauksissa kuitenkin usein havaitaan ulkolaisia, eikä edes kovin harvoin. Tällaisiin malleihin siis sopii todennäköisyysjakauma, joka sallii poikkeamat mittauksissa. Menetelmissä, joita kutsutaan myös robusteiksi menetelmiksi, käytetään paksuhäntäisiä jakaumia mallintamaan data, jossa esiintyy ulkolaisia. Cauchyn jakauma on eräs todennäköisyysjakauma, jolla on erityisen paksu häntä. Se on sopiva tällaisen datan mallintamiseen. Lisäksi Cauchyn jakauma tunnetaan myös erityispiirteestään: jakaumalla ei ole odotusarvoa eikä muitakaan momentteja. Tässä kandidaatintyössä tutkitaan Cauchyn jakaumaa ja sen parametrien estimointia numeerisin menetelmin. Teoria-luvussa esitellään Cauchyn jakauman ominaisuuksia. Cauchyn parametreille esitetään suurimman uskottavuuden estimaatti, jolle esitetään myös Bayesiläinen analogia. Suurimman uskottavuuden estimaatin arvon laskeminen on optimointitehtävä, joka voidaan laskea useilla numeerisilla menetelmillä, joista Newtonin menetelmä käydään läpi hieman tarkemmin. Newtonin menetelmän laskentaan esitetään kaksi tapaa. Menetelmässä käytetyille derivaatoille esitetään analyyttinen ratkaisu sekä numeerinen erotusosamäärään perustuva ratkaisu. Testaus-luvussa tutkitaan käytännössä eri menetelmiä laskea suurimman uskottavuuden estimaatti. Teoria-luvussa esitettyjen kahden menetelmän lisäksi vertailua tehdään myös tietokoneohjelmisto MATLABiin sisältyviin optimointirutiineihin. Menetelmien laskenta-aikoja ja tarkkuutta verrataan keskenään. Lisäksi pohditaan hyviä ja huonoja puolia eri menetelmissä. Viimeisessä luvussa tehdään yhteenveto teoriasta ja testauksesta. 2 2. TEORIA 2.1 Cauchyn jakauma Yksiulotteinen Cauchyn jakauma on todennäköisyysjakauma, joka noudattaa koko reaalilukuavaruudessa tiheysfunktiota � � �2 �−1 1 x−θ f (x; θ, σ) = 1+ , σ ∈ (0, ∞), θ ∈ R. πσ σ (2.1) Huomataan, että (2.1) todella on tiheysfunktio, sillä se saa aina positiivisia arvoja, � ja lisäksi f (x) d x = limx→∞ F (x) = 1 (2.5). Parametriä θ kutsutaan sijaintiparametriksi. Tiheysfunktion huippu on kohdassa x = θ. Tiheysfunktion maksimiarvo on max f (x) = f (θ) = 1 πσ (2.2) Jakauman parametriä σ kutsutaan yleisesti skaalausparametriksi. Skaalaa voidaan havainnollistaa, kun lasketaan f (θ + σ): � � σ �2 �−1 1 1 f (θ + σ) = 1+ = πσ σ 2πσ (2.3) Mitä suurempi σ, sitä leveämpi huippu tiheysfunktiolla on. Cauchy-jakauman affinimuunnos on seuraava. Oletetaan että x ∼ Cauchy(θ, σ). Nyt y = ax + b, a > 0 noudattaa tiheysfunktiota [9] 1 f (y) = f a � x−b a � � � �2 �−1 1 x − b − θa = 1+ , πσa σa (2.4) jolloin y ∼ Cauchy(θa + b, σa). Cauchyn jakauma on erikoistapaus Studentin t-jakaumasta. Se vastaa Studentin t-jakaumaa vapausasteilla 1. Cauchyn jakauman muoto on suurinpiirtein samanlainen kuin normaalijakauman, mutta sen hännillä on enemmän massaa. Jakaumien tiheysfunktiot ovat verrattavissa kuvassa 2.1. Cauchy-jakauman paksuhäntäisyys verrattuna normaalijakaumaan näkyy selvästi logaritmisella asteikolla kuvassa 2.2. 2. Teoria 3 Cauchy(θ, σ) f (θ; θ, σ) 1 f (θ; θ, σ) 2 Normal(θ, v 2 ) θ−σ θ θ+σ θ + 2v 2 ln 1/2 θ − 2v 2 ln 1/2 Kuva 2.1: Cauchyn jakauma ja normaalijakauma θ + 2v 2 ln 1/2 θ+σ x ln(f (θ; θ, σ)) ln( 12 f (θ; θ, σ)) Cauchy(θ, σ) ln(f (x)) Normal(θ, v 2 ) Kuva 2.2: Paksuhäntäisyys semilog-asteikolla Cauchyn jakaumalle kertymäfunktio saadaan integroimalla tiheysfunktiota: � � �2 �−1 1 x−θ F (x; θ, σ) = lim 1+ dx y→−∞ y πσ σ � � � � �� y−θ 1 x−θ = σ arctan − lim arctan y→−∞ πσ σ σ � � 1 x−θ 1 = arctan + π σ 2 � x (2.5) Kertymäfunktion kuvaaja on piirretty kuvaan 2.3. Myös kertymäfunktiosta on havaittavissa jakauman paksuhäntäisyys. Todennäköisyysjakauman k:s momentti on määritelty � Mk (x) = xk f (x) d x, k ∈ Z+ . (2.6) Cauchyn jakauman momentit eivät ole äärellisiä. Tämä voidaan osoittaa tarkastele- 2. Teoria 4 1 π 1 arctan(x) + 1 2 Kuva 2.3: Kertymäfunktio malla momenttien itseistä suppenemista: � σ 1 |Mk (x)| = |x|k dx 2 π σ + (x − θ)2 � σ ∞ xk dx > π max(1,θ) σ 2 + (x − θ)2 � σ ∞ x ≥ dx 2 π max(1,θ) σ + (x − θ)2 � σ ∞ x� + θ = d x� π max(1−θ,0) σ 2 + x�2 �� ∞ � � ∞ σ x� θ � � = dx + dx 2 �2 2 �2 π max(1−θ,0) σ + x max(1−θ,0) σ + x � � � x �� σ 1 θ 2 2 = lim log(x + σ ) + arctan π x→∞ 2 σ σ � �� 1 θ max(1 − θ, 0) 2 2 − log(max(1 − θ, 0) + σ ) − arctan 2 σ σ Koska log(x2 ) → ∞, kun x → ∞, niin integraali ei suppene. Tällöin momentti ei myöskään suppene ja sitä ei ole määritelty. Cauchyn jakaumalle ei siis ole määritelty yhtään äärellistä momenttia. Ensimmäinen momentti on odotusarvo, ja Cauchyn jakaumalle ei ole siis myöskään odotusarvoa olemassa. 2.2 Suurimman uskottavuuden estimointi Cauchyn jakauman estimoinnissa puhutaan ongelmasta, jossa yritetään määrätä parametrit θ ja σ realisoituneiden satunnaismuuttujien xi , i = 1, . . . , n xi ∼ Cauchy(θ, σ), (2.7) perusteella. Jos muuttujat xi ovat riippumattomia, niin uskottavuusfunktio on L(x1 , . . . , xn ; θ, σ) = n � i=1 f (xi ; θ, σ). (2.8) 2. Teoria 5 Uskottavuusfunktion arvo lasketaan otoksen x1 , . . . , xn ja parametrien θ ja σ suhteen. Uskottavuusfunktion arvo on itse asiassa todennäköisyys, jolla Cauchyn jakaumaa parametrein θ, σ noudattavat satunnaismuuttujat saavat arvot x1 , . . . , xn . Suurimman uskottavuuden menetelmässä etsitään uskottavuusfunktion maksimiarvoa jakauman parametrien suhteen. Tätä arvoa kutsutaan suurimman uskottavuuden estimaatiksi. 2.2.1 Analogia Bayesiläisiin menetelmiin Suurimman uskottavuuden estimoinnille voidaan löytää vastine Bayesiläisestä maailmasta. Bayesin kaava kirjoitetaan seuraavassa muodossa p(θ, σ|x1:n ) = p(x1:n |θ, σ)p(θ, σ) . p(x1:n ) (2.9) Nimittäjä p(x1:n ) on itseasiassa aina vakio estimoitavien parametrien suhteen. Tällöin sen voidaan ajatella olevan vain normalisointivakio tehtävän kannalta. Tekijää p(θ, σ) kutsutaan prioriksi. Jos otetaan vakiopriori, siten että p(θ, σ) ∝ 1 todennäköisyyden määritelyalueella σ > 0, θ ∈ R, ja muuttujat xi riippumattomiksi, niin saadaan johdettua suurimman uskottavuuden kaava. p(θ, σ|x1:n ) ∝ p(x1:n |θ, σ) = p(x1 |θ, σ)p(x2 |θ, σ) . . . p(xn |θ, σ) n � = p(xi |θ, σ) (2.10) i=1 Näin posteriorijakaumaksi saadaan klassista uskottavuusfunktiota vastaava jakauma. 2.2.2 Log-uskottavuus Uskottavuusfunktion arvon laskemiseksi käytetään usein log-muunnosta. Koska logaritmifunktio on aidosti kasvava, sen maksimiarvo on samassa pisteessä kuin alkuperäisen funktion maksimiarvo. Log-uskottavuusfunktiossa tiheysfunktioiden tulon sijasta tutkitaan tulon logaritmia, joka muuttuu logaritmien summaksi: l(x1 , . . . , xn ; θ, σ) = ln( n � i=1 f (xi ; θ, σ)) = n � ln(f (xi ; θ, σ)) (2.11) i=1 Log-muunnosta käytetään, koska log-uskottavuuden laskeminen on monin tavoin mielekkäämpää kuin tavallisen uskottavuusfunktion. Suurimman uskottavuuden estimaattori on log-uskottavuusfunktion maksimikohdassa. 2. Teoria 6 Cauchyn jakaumalle log-uskottavuusfunktio (2.11) on l(x1 , . . . , xn ; θ, σ) = n � i=1 − ln(π) + ln(σ) − ln(σ 2 + (xi − θ)2 ). (2.12) Osittaisderivoimalla log-uskottavuusfunktio (2.12) molempien parametrien suhteen saadaan n � ∂ xi − θ l(x1 , . . . , xn ; θ, σ) = 2 (2.13) 2 + (x − θ)2 ∂θ σ i i=1 ja n ∂ n � 2σ l(x1 , . . . , xn ; θ, σ) = − . 2 2 ∂σ σ σ + (x − θ) i i=1 (2.14) Log-uskottavuuden osittaisderivaatan nollakohdalle ei ole analyyttistä ratkaisua olemassa enää, kun otoksen kooksi kasvaa viisi, sillä silloin yhtälön aste kasvaa viideksi tai suuremmaksi. Analyyttinen kaava on olemassa vain neljännen tai pienemmän asteen yhtälöille. [4] Nollakohdat voi ratkaista numeerisesti myös suuremmille otoksille. Molempien parametrien yhtäaikainen suurimman uskottavuuden estimaatti on todistetusti olemassa ja yksikäsitteinen määrittelyalueellaan [2]. 2.3 Estimaatin arvon laskeminen Numeeriseen ratkaisuun on useampia tapoja. Yksi yksinkertaisimmista tavoista on Newtonin iterointi. Newtonin iteroinnilla voidaan etsiä funktion nollakohtia. Menetelmällä voidaan etsiä funktion ääriarvoa, kun etsitäänkin funktion derivaatan nollakohtia. Ennen menetelmän esittelyä on syytä esitellä muutama käsite. Funktion saa lokaalin maksimiarvon pisteessä y, jos ∇f (y) = 0 (2.15) hT H(y)h < 0 kaikille h �= 0 Vektorin h osoittama suunta on kasvusuunta, jos 0 < hT ∇f (y). Funktion lokaali maksimipiste löytyy iteroimalla kasvusuuntaan päin. [7] (2.16) 2. Teoria 2.3.1 7 Newtonin menetelmä Merkitään y = (θ, σ)T , missä θ on jakauman sijaintiparametri ja σ skaalausparametri. Halutaan löytää piste y + h, missä gradientin arvo on 0. Tällaisessa pisteessä funktio voi saavuttaa ääriarvonsa. Newtonin menetelmän johtaminen käy Taylorin sarjan avulla. ∇f (y + h) = ∇f (y) + H(y)h + O(h2 ) ≈ ∇f (y) + H(y)h (2.17) Ratkaistaan yhtälö (2.17) h:n suhteen. Oletuksella H(y) ei ole singulaarinen saadaan h = −[H(y)]−1 ∇f (y). (2.18) Newtonin algoritmissa lasketaan iteratiivisesti uutta estimaattia kaavalla yk+1 = yk − [H(y)]−1 ∇f (y). (2.19) Jos algoritmille annettava alkuarvo y0 on tarpeeksi lähellä funktion f (y) nollakohtaa, Newtonin iterointi suppenee neliöllisesti [3]. Vain jos Hessen matriisi on negatiivisesti definiitti pisteessä y, Newtonin menetelmä suppenee kohti lokaalia maksimia. Negatiivisesti definiitille matriisille pätee, että hT H(y)h < 0, h �= 0, jolloin −hT ∇f (y) = hT H(y)h < 0. (2.20) Silloin myös hT ∇f (y) > 0 ja h:n suuntaan funktion arvo kasvaa. Tällaisessa tapauksessa Newtonin algoritmia voidaan käyttää ratkaisun etsimiseen. Käyttämällä linjahaku-menetelmää Newtonin menetelmän lisäksi voidaan hakua tehostaa lisäämällä apukerroin β ∈ (0, 1] yhtälöön (2.19): yk+1 = yk − β[H(y)]−1 ∇f (y). (2.21) Joillakin arvoilla iteraatioaskel (2.18) saattaa muodostua liian pitkäksi ja iterointi karkaa kauas. Tällöin viivahakumenetelmän periaatteiden mukaisesti voidaan iteraatioaskelta yrittää myös muilla suunnan h pisteillä. Newtonin menetelmällä optimoitava funktio on meidän tapauksessamme loguskottavuusfunktio (2.12). Funktion gradientti saadaan yhdistämällä yhtälöt (2.13) 2. Teoria 8 ja (2.14). ∇f (y) = � 2 n σ � �n − xi −θ i=1 σ 2 +(xi −θ)2 �n 2σ i=1 σ 2 +(xi −θ)2 (2.22) Kaksiulotteisessa tapauksessa Hessen matriisi voidaan kirjoittaa H(y) = � ∂ 2 f (x;y) dθ 2 ∂ 2 f (x;y) ∂σ∂θ ∂ 2 f (x;y) dθ∂σ ∂ 2 f (x;y) ∂σ 2 � . (2.23) Hessen matriisin alkioina olevat osittaisderivaatat ovat Cauchyn jakauman loguskottavuusfunktiolle n � ∂ 2 f (x; θ, σ) 2(−σ 2 + (yi − θ)2 ) = ∂θ2 (σ 2 + (xi − θ)2 )2 i=1 n � ∂ 2 f (x; θ, σ) −4σ(xi − θ) = ∂θ∂σ (σ 2 + (xi − θ)2 )2 i=1 n � ∂ 2 f (x; θ, σ) −4σ(xi − θ) = ∂σ∂θ (σ 2 + (xi − θ)2 )2 i=1 (2.24) (2.25) (2.26) n ∂ 2 f (x; θ, σ) −n � 4σ 2 − 2(σ 2 + (xi − θ)2 ) = + ∂σ 2 σ2 (σ 2 + (xi − θ)2 )2 i=1 2.3.2 (2.27) Newtonin menetelmä numeerisesti Newtonin algoritmin analyyttinen versio on käypä menetelmä, mutta sen käyttö vaatii derivaattojen laskemista. Analyyttisten derivaattojen ratkaisu saattaa olla työlästä ja se on tehtävä jokaiselle funktiolle erikseen. Newtonin algoritmia voi kuitenkin käyttää myös numeerisesti laskettujen derivaattojen avulla. Derivaatan määritelmä on f (x + h) − f (x) . h→0 h f � (x) = lim (2.28) Derivaattaa voidaan arvioida numeerisesti laskemalla suoraan erotusosamäärän määritelmästä pienellä h:n arvolla, joskin parempi approksimaatio saadaan laskemalla molemman puoleiset derivaatat yhteen f � (x) ≈ f (x + h) − f (x − h) , 2h (2.29) missä h on pieni luku [3]. Numeerista derivaatan laskemista voidaan soveltaa myös useaan otteeseen. Toisen 2. Teoria 9 asteen derivaatta saadaan kätevästi esimerkiksi: f � (x) − f � (x − h) f (x) ≈ h � � 1 f (x + h) − f (x) f (x) − f (x − h) = − h h h f (x + h) − 2f (x) + f (x − h) = h2 �� 2.3.3 Numeerinen osittaisderivointi Newtonin algoritmin ratkaisuun tarvitaan toisen asteen osittaisderivaattoja. Voimme ajatella funktiomme kolmen muuttujan funktiona. f (x, θ, σ) = f (x|θ, σ) Osittaisderivoinnissa kohdellaan tiettyä funktion parametria derivoitavana muuttujana. Esimerkiksi θ:n suhteen osittaisderivaatta voidaan laskea: ∂ f (x, θ + h, σ) − f (x, θ, σ) f (x, θ, σ) ≈ ∂θ h Näin ollen osittaisderivaatta molempien muuttujien suhteen on � � ∂2 ∂ f (x, θ + h, σ) − f (x, θ, σ) f (x, θ, σ) ≈ ∂θ∂σ ∂σ h f (x, θ + h, σ + h) − f (x, θ + h, σ) − f (x, θ, σ + h) + f (x, θ, σ) = h2 Toisia osittaisderivaattoja voidaan siis arvioida numeerisesti seuraavilla lausekkeilla: ∂ 2 f (x, θ, σ) ∂θ2 2 ∂ f (x, θ, σ) ∂θ∂σ ∂ 2 f (x, θ, σ) ∂σ∂θ ∂ 2 f (x, θ, σ) ∂σ f (x, θ + h, σ) − 2f (x, θ, σ) + f (x, θ − h, σ) (2.30) h2 f (x, θ + h, σ + h) − f (x, θ + h, σ) − f (x, θ, σ + h) + f (x, θ, σ) = (2.31) h2 f (x, θ + h, σ + h) − f (x, θ + h, σ) − f (x, θ, σ + h) + f (x, θ, σ) = (2.32) h2 f (x, θ, σ + h) − 2f (x, θ, σ) + f (x, θ, σ − h) = (2.33) h2 = Kun gradientti (2.22) lasketaan osittaisderivaattojen (2.29) avulla ja yhtälöt (2.30)– (2.33) sijoitetaan Hessen matriisin (2.23) alkioiksi, voidaan Newtonin algoritmia ratkaista ilman analyyttisten derivaattojen tuntemista. 2. Teoria 2.3.4 10 Newtonin alkuarvaus Newtonin menetelmän nopea suppeneminen riippuu menetelmälle annetuista alkuarvoista. Hyvä alkuarvo θ-parametrille on mediaani. Noin puolet näytteistä saa pienemmän arvon kuin θ, ja noin puolet saa suuremman arvon. Parametrille σ löydetään sopiva alkuarvo tutkimalla kertymäfunktiota: 1 F (θ + σ) = arctan π � θ+σ−σ σ � + 1 1 1 3 = arctan(1) + = 2 π 2 4 (2.34) Vastaavasti F (θ − σ) = 14 . Tällöin saadaan hyvä alkuestimaatti lausekkeesta σ ˆ= q3/4 − q1/4 . 2 (2.35) 11 3. TESTAUS Edellisessä kappaleessa esitellyt funktiot on ohjelmoitu MATLABilla. Testaamme estimaattien laskenta-aikoja sekä suurimman uskottavuuden estimaatin tarkkuutta erikokoisilla otoksilla Cauchyn jakaumasta. Lisäksi mukana on muutama mustan laatikon algoritmi. Tässä luvussa käyttämäni ja toteuttamani ohjelmat ovat saataville osoitteesta: http://www.students.tut.fi/~lambergt/kandi/ 3.1 Satunnaislukujen generointi Ensimmäiseksi on tarpeellista luoda Cauchyn jakaumasta satunnaislukuja testausdataa varten. Hyvä tapa luoda satunnaislukuja jatkuvasta jakaumasta on käänteiskertymämenetelmä. Menetelmässä luodaan tasan jakautunut satunnaisluku u välille [0, 1). Sen jälkeen saadaan laskettua jakauman mukainen satunnaisluku kaavalla x = F −1 (u). [10] Kertymäfunktion (2.5) käänteisfunktio on F −1 � � �� 1 (u) = σ tan π u − + θ, u ∈ [0, 1). 2 (3.1) Cauchy-jakautunutta dataa on esitelty kuvassa 3.1. 40 35 30 25 20 15 10 5 0 −50 −40 −30 −20 −10 0 Kuva 3.1: Cauchy(0,1)-jakautuneen datan histogrammi, 60 alkiota 10 3. Testaus 3.2 12 Vertailtavat algoritmit Sekä analyyttistä että numeerista derivaattaa käyttävät ratkaisut on ohjelmoitu käyttäen MATLAB-ohjelmointiympäristöä. Lisäksi vertailuun on otettu mukaan kaksi valmisrutiinia, joilla voi löytää suurimman uskottavuuden estimaatin. MATLAB-ympäristön optimointi-työkalulaatikkoon sisältyvä fminunc etsii annetulle funktiolle minimin. Koska haluamme etsiä funktion maksimia, käytämme funktioita Lneg (x; θ, σ) = −L(x; θ, σ) lneg (x; θ, σ) = −l(x; θ, σ). (3.2) (3.3) Funktio fminunc käyttää sisäisesti eri algoritmeja. Rutiinia testattiin kolmella eri tavalla. Ilman analyyttistä gradienttia ja Hessen matriisia rutiini etsii ääriarvoa BFGS (Broyden–Fletcher–Goldfarb–Shanno) kvasi-Newton -menetelmällä. Menetelmässä Hessen matriisia päivitetään joka aika-askeleella sen täydellisen uudelleenlaskemisen sijaan kuten Teoria-luvussa esitellyssä menetelmässä [5]. Kun funktiolle annetaan parametrina analyyttisen gradientin laskeva funktio, käytettävä algoritmi on sisäisesti-heijastuva Newton-menetelmä, jota esitellään Colemanin paperissa [1]. Tämä menetelmä oli käytettävissä analyyttisen Hessen matriisin kanssa tai ilman. [8] Toinen valmisalgoritmi on myös optimointi-työkalulaatikkoon sisältyvä rutiini fminsearch. Se etsii myös funktion minimin, jolloin optimoitava funktio on myös (3.2) tai (3.3). Funktio fminsearch käyttää algoritminaan Nelder-Mead simplexmenetelmää [6]. Menetelmässä ei käytetä funktion derivaattoja ollenkaan. 3. Testaus 3.3 13 Newtonin menetelmän toteuttaminen Ohjelmoituna Newtonin algoritmi näyttää algoritmilta 1. Ainoa ero toteuttamani analyyttisen Newtonin iteraation ja täysin numeerisen iteroinnin välillä on rivin 3 toteutus. Ensimmäisessä menetelmässä käytettiin analyyttista gradienttia ja Hessen matriisia ja toisella menetelmällä approksimaatiot laskettiin erotusosamäärien avulla. Algoritmi 1 Newtonin algoritmi 1: (θ, σ)T ← (q1/2 , (q3/4 − q1/4 )/2)T 2: while β > εβ do 3: (θn , σn )T ← (θ, σ)T − β[H(θ, σ)]−1 ∇f (θ, σ) 4: if f (θn , σn ) > f (θ, σ) then 5: (θ, σ)T ← (θn , σn )T 6: else 7: β ← β/2 8: end if 9: end while Kuvassa 3.2 nähdään Newtonin menetelmän suppeneminen tasossa. Data sisältää 20 pistettä ja se generoitiin jakaumasta Cauchy(30,20). Suurimman uskottavuuden estimaatti asettui pisteeseen (24.51, 17.85). Useimmissa tapauksissa muutama iteraatio riittää Newtonin menetelmällä suppenemiseen. Newton iteration, N=20 30 25 σ 20 15 10 5 0 5 10 15 20 25 θ 30 35 40 45 50 Kuva 3.2: Newtonin menetelmän suppeneminen θ, σ-tasossa 3. Testaus 3.3.1 14 Ongelmia algoritmin kanssa Simulaatioissa havaittiin, että algoritmi 1 ei aina supennut samaan pisteeseen kuin MATLABin referenssimenetelmät. Tarkempi tarkastelu osoitti, että välillä yhtälön (2.18) antama suunta ei ollutkaan kasvusuunta. Tilannetta tutkittiin piirtämällä Newtonin suppenemissuunta monessa pisteessä tasolle. Kuvassa 3.3 nähdään, mihin suuntaan algoritmi lähtee suppenemaan kussakin pisteessä. Vihreän taustavärin alueella Hessen matriisi on negatiivisesti definiitti. Taulukossa 3.1 olevalla otoksella ei saada käyttämäämme alkuarvausta sopivalle alueelle. Algoritmin alkupisteessä Hessen matriisi ei siis ole negatiivisesti definiitti. 0.6 Alkuarvaus Ratkaisu 0.5 σ 0.4 0.3 0.2 0.1 0 4.2 4.25 4.3 4.35 4.4 4.45 θ 4.5 4.55 4.6 Kuva 3.3: Newtonin menetelmän iterointisuunta [4.5427, -33.8699, 4.4489, 5.9635, 4.3210, 4.4862, 4.5230, 5.9778] Taulukko 3.1: Ei-suoraan ratkeavan tapauksen otos 4.65 4.7 3. Testaus 15 Ratkaisuksi muodostui muodostaa hybridi-menetelmä, jossa tarkastellaan jokaisella iteraatiolla Hessen matriisin definiittisyyttä. Jos matriisi ei ole negatiivisesti definiitti, käytetään gradienttimenetelmää. Jos matriisi on negatiivisesti definiitti, iteroidaan Newtonin menetelmällä. Hybridi-menetelmä on esitetty esimerkiksi lähteessä [7]. Algoritmi 2 Hybridi-algoritmi: Newton-, gradientti- ja viivahakumenetelmät 1: (θ, σ) ← (q1/2 , (q3/4 − q1/4 )/2) 2: while |∇f (θ, σ)| < tol ∧ Iter < MaxIter do 3: l ← f (θ, σ) 4: if H on negatiivisesti definiitti then 5: δ ← −[H(θ, σ)]−1 ∇f (θ, σ) 6: B ← B1 (δ) 7: else 8: δ ← −∇f (θ, σ) 9: B ← B2 (δ) 10: end if 11: (θ0 , σ0 ) ← (θ, σ) 12: for β ∈ B do 13: (θ� , σ � ) ← (θ, σ) + βδ 14: if f (θ� , σ � ) > l then 15: (θ, σ) ← (θ� , σ � ) 16: l ← f (θ� , σ � ) 17: end if 18: end for 19: if (θ, σ) = (θ0 , σ0 ) then 20: virhe(’Ei löydetä parempaa siirtymää.’) 21: end if 22: if |(θ, σ) − (θ0 , σ0 )| < dtol then 23: palauta(’Siirtymä on tarpeeksi pieni.’) 24: end if 25: Iter ← Iter + 1 26: end while 27: if Iter < MaxIter then 28: palauta(’Maksimi löytynyt.’) 29: else 30: virhe(’Algoritmi ei supennut.’) 31: end if Algoritmi 2 vastaa toimivaa toteutusta. Tärkein parannus edelliseen versioon on siis Hessen matriisin definiittisyyden tutkiminen. Riveillä 12-18 tarkastellaan parasta siirtymää nykyisestä pisteestä. Kertoimen β saamat arvot riippuvat sekä käytettävästä iteraatiomenetelmästä että siirtymän δ suuruusluokasta. Joukot B1 (δ) ja B2 (δ) ovat tarkemmin määritelty ohjelmakoodissa. Gradienttimenetelmää käytettäessä pitää tutkimaan suurempia siirtymiä (B1 ) kuin Newtonin 3. Testaus 16 meneltemällä (B2 ). Tarvittavat siirtymät testattiin ajamalla ohjelmaa useasti. Simulaatioissa uusi algoritmi pystyi ratkaisemaan yli sata tuhatta estimaattia samalla tarkkuudella kuin MATLABin valmisoptimointialgoritmit ilman yhtäkään virhettä. 3.4 Suurimman uskottavuuden estimaatin tarkkuus Taulukossa 3.2 esitellään suurimman uskottavuuden estimaatin tarkkuuksia erikokoisille otoksille. Jokaista otoskokoa luotiin 10 eri otosta. Näistä laskettiin suurimman uskottavuuden estimaatti Newtonin menetelmällä. Jokaisesta 10 otoksen otoksesta lasketaan keskiarvo, keskivirhe ja 95%-kvantiili virheelle. n Keskiarvo 10 24.45 20 18.44 30 22.24 40 18.95 50 21.32 100 20.89 500 20.34 1000 20.05 10000 19.91 θ Keskivirhe 10.37 11.32 7.14 6.35 3.16 2.35 1.71 1.21 0.31 95%-virhe 28.72 27.63 14.98 12.19 5.96 3.65 3.84 2.87 0.62 Keskiarvo 27.23 33.24 29.94 26.63 29.23 30.47 29.54 30.34 30.10 σ Keskivirhe 7.69 7.95 5.14 5.21 1.93 2.62 1.65 1.29 0.31 95%-virhe 18.54 19.97 9.86 12.12 4.94 6.42 3.48 2.29 0.57 Taulukko 3.2: Jakaumasta Cauchy(20,30) generoitujen otosten tunnuslukuja Taulukosta 3.2 havaitaan MLE-estimaatin hyvä tarkkuus. Kun jakauman koko kasvaa jo muutaman kymmenen otoksen kokoiseksi, antaa suurimman uskottavuuden menetelmä melko tarkkoja arvoja jakauman parametreille. 3. Testaus 3.5 17 Numeeristen menetelmien nopeus Eri menetelmistä testattiin myös niiden nopeutta. Jokainen menetelmä ratkaisee periaatteessa saman suurimman uskottavuuden ongelman, kuitenkin niiden käyttämä menetelmä on hieman erilainen. Taulukossa (3.3) on listattu eri menetelmien laskenta-aikoja suurten otosten kanssa. Nopein ratkaisija on itse kirjoitettu algoritmi. Tämä selittyy silläkin, että se on erikoistunut siihen mitä tekee. Valmiit optimointialgoritmit tekevät monia tarkistuksia parametreihinsä rutiinin alussa sekä algoritmin laskemisen aikana. Ne ovat paljon yleiskäyttöisempiä ja sopivat monien tehtävien ratkaisuun. Menetelmä Newton (an.) Newton (num.) fminsearch fminunc 1 1 fminunc 2 2 fminunc 3 3 Aika (s) 5 8 12 23 41 200 Taulukko 3.3: Eri menetelmien laskenta-aikoja, 1400 peräkkäistä testiä, otoskoko 7–20 Suurimman uskottavuuden estimaatin löytäminen on nopea toimenpide. Newtonin menetelmän suppeneminen on nopeaa, ja gradienttimenetelmää ei useimmille otoksille edes tarvitse käyttää. Omaa toteutusta algoritmista voisi nopeuttaa vielä vaihtamalla ongelma minimointitehtäväksi käyttäen funktiota (3.3) optimoitavana funktiona. Tällöin Newtonin menetelmää voi käyttää optimointiin kun Hessen matriisi on positiivisesti definiitti. Cholesky-hajotelman avulla voi nopeasti tarkistaa positiivisen definiittisyyden ja saada tarvittavia välituloksia käänteismatriisin muodostamiseksi. [7] 1 Ilman analyyttistä gradienttiä, BGFS Analyyttinen gradientti, sisäisesti-heijastuva Newton 3 Analyyttinen gradientti ja analyyttinen Hessen matriisi 2 18 4. YHTEENVETO Tässä kandidaatintyössä kävimme läpi Cauchyn jakauman ominaisuuksia. Selvitimme jakauman parametrien merkityksen sekä jakauman affiinimuunnoksen. Laskimme jakauman kertymäfunktion ja sen käänteisfunktion. Osoitimme, ettei Cauchyn jakaumalla ole odotusarvoa eikä muitakaan momentteja. Esitimme suurimman uskottavuuden menetelmän sekä suurimman uskottavuuden estimaatin ratkaisun Cauchyn jakaumalle. Newtonin menetelmä esiteltiin ja sille annettiin kaksi eri toteutustapaa. Näitä toteutustapoja verrattiin keskenään useaan valmiiseen optimointirutiiniin MATLAB-ohjelmiston kirjastosta. Huomattiin, että itse kirjoitetut erikoistuneet ohjelmanpätkät olivat kaikkein nopeimpia ratkaisussa. Valmisohjelmien käyttö on silti helpompaa, sillä niille riittää antaa ongelma, itse ratkaisu on jo valmiiksi tehty. Lisäksi kunnollisen optimointirutiinin kirjoittaminen vaatii paljon työtä. Jo valmiilta näyttävä ratkaisija usein epäonnistuu joillain arvoilla. Varsinainen suurimman uskottavuuden estimaatti on hyvin tarkka arvio Cauchyn jakauman parametreista useimmilla otoksilla. Cauchyn jakauma sietää hyvin ulkolaisia. Vain alle kymmenen alkion otoksissa saattaa olla selvä ulkolainen, mutta estimaatin arvo on silti hyvin lähellä satunnaisesti luodun otoksen paratmetreja. 19 LÄHTEET [1] Thomas F. Coleman and Yuying Li. On the convergence of interior-reflective Newton methods for nonlinear minimization subject to bounds. Math. Program., 67:189–224, marraskuu 1994. [2] J. B. Copas. On the unimodality of the likelihood for the Cauchy distribution: Some comments. Biometrika, 1975. [3] L. Elden, L. Wittmeyer-Koch, and H. B. Nielsen. Introduction to numerical computation - analysis and MATLAB illustrations, kesäkuu 2004. [4] T. S. Ferguson. Maximum likelihood estimates of the parameters of the Cauchy distribution for samples of size 3 and 4. Jour. Amer. Statist. Assoc., 1978. [5] Osmo Kaleva. Numeerinen analyysi 1. http://butler.cc.tut.fi/~kaleva/ Numa1.pdf, kesäkuu 2001. Haettu 18.11.2011. [6] Jeffrey C. Lagarias, James A. Reeds, Margaret H. Wright, and Paul E. Wright. Convergence properties of the Nelder–Mead simplex method in low dimensions. SIAM J. on Optimization, 9:112–147, toukokuu 1998. [7] K. Madsen, H. B. Nielsen, and O. Tingleff. Methods for non-linear least squares problems (2nd ed.), 2004. [8] Mathworks. Find minimum of unconstrained multivariable function. http: //www.mathworks.se/help/toolbox/optim/ug/fminunc.html, 2011. Haettu 18.11.2011. [9] Ilkka Mellin. Todennäköisyyslaskenta. https://noppa.tkk.fi/noppa/ kurssi/mat-1.2600/materiaali/todennakoisyyslaskenta__osa_2_ _satunnaismuuttujat_ja_todennakoisyysjakaumat.pdf, elokuu 2008. Haettu 18.11.2011. [10] Keijo Ruohonen. Tilastomatematiikka. http://math.tut.fi/~ruohonen/TM. pdf, 2011. Haettu 18.11.2011.
© Copyright 2024