Lund Universitet med Lund Tekniska Högskola Finansiell Statistik Matematikcentrum, Matematisk Statistik VT 2006 Parameterestimation och linjär tidsserieanalys Denna laborationen ger en introduktion till tidsserieanalys samt estimation och modellval med Maximum Likelihoodmetoden. Det är en fördel om du använder Matlab men du får naturligtvis använda vilket programspråk du vill. Notera att du måste kommentera din kod noggrannt om du använder något annat program än Matlab. 1 Förberedelseuppgifter Läs kapitel 4 i [1], utdelat material om tidsserieanalys samt laborationshandledningen. Gå dessutom igenom övningsuppgifterna i kapitel 4. Innan laborationen börjar kommer några av frågorna nedan att ställas. Dessa måste besvaras korrekt för att laborationen skall godkännas. 2 Frågekatalog Du skall kunna besvara följande frågor innan laborationen börjar. 1. Beräkna autokorrelationsfunktionen för en AR(1)-process samt för en MA(1)- process. 2. Beskriv hur man kan estimera parametrarna med hjälp av Maximum Likelihoodestimation i en AR(1)-process. Hur estimeras parametrarna i en MA(1)- process. 3. Skriv ner likelihoodfunktionen för modellen där ε i är iid N(0, σ 2 ). y i = β 0 + β 1 x i + ε i, (1) 3 Maximum Likelihoodestimering Maximum Likelihoodestimation är den teknik som man bör använda för estimering av okända parametrar om man vet fördelningen på innovationerna i modellen och om 1
risken för felspecifikation är liten. Tekniken bygger på att man väljer de parametrar som gör observerade data mest sannolika. Likelihoodfunktionen ges av L(θ) = p(x 1,..., x n θ) = p(x 1 θ) n p(x i x i 1, x i 2... ; θ) där p(x i x i 1, x i 2... ; θ) är den betingade fördelningen för x i givet alla tidigare värden på x. Estimatet väljs som i=2 θ = arg max θ Θ L(θ). Under tämligen generella regularitetsvillkor gäller N(ˆθ θ) N(0, I 1 0,θ ), där I 0,θ är Fishers Informationsmatris som beräknas som I 0,θ = E[ 2 log L(X, θ)] θ 2 Denna kan approximeras med den empiriska Hessianen [ 1 2 N N θ 2 i=1 log L(X i, θ) θ= θ b]. 3.1 Tester Ett mycket vanligt test som används för att avgöra modellordning eller parameteracceptans i samband med Maximum Likelihoodestimering är Likelihood-Ratio (LR) tester. Testerna används för att jämföra två modeller där parameterrummet i den ena modellen är ett underrum i den andra modellen. Testerna baseras på följande nollhypotes H 0 : θ = θ 0 H A : θ θ 0. Teststorheten defineras då som Λ = sup H 0 L(θ) sup H0 H A L(θ). Intuitivt betyder detta att om H 0 inte är sann så kommer nämnaren bli mycket större än täljaren. Man kan visa att om nollhypotesen är sann så gäller asymptotiskt att 2 log Λ χ 2 (k), där k anger antalet parametrar som fixeras i den mindre modellen. Notera att testet kan skrivas om som ( ) 2 sup H 0 log L(θ) sup H 0 S HA log L(θ) Testet är ett asymptotiskt test som kan användas då likelihoodfunktionen är känd. Det finns starkare test för vissa modeller, t.ex. F -test, även om testen är asymptotiskt ekvivalenta. På efterföljande laborationer kommer ni emellertid använda modeller där det inte finns några välkända test utom de asymptotiska. 2.
4 Laborationsuppgifter Laborationen består av två delar, dels en introduktion till Maximum Likelihoodtekniken applicerad på linjär regression, dels en introduktion till tidsserieanalys. Notera att du förväntas skriva alla program själv och inte använda några färdiga toolboxar för statistisk modellering utom för att kontrollera dina resultat. 4.1 Linjär regression För att bekanta oss med Maximum Likelihoodestimering under kontrollerade former kommer vi att applicera tekniken på ett enkelt exempel, nämligen linjär regression. Ladda in data genom att skriva > > load regdata.mat Vi skulle i normala fall estimera parametrarna i modellen med Minsta Kvadratmetoden men här använder vi Maximum Likelihoodestimering för att bekanta oss med metoden. Du kan anta att innovationerna är normalfördelade. Uppgift: Estimera den linjära modellen, y i = β 0 + β 1 x i + ε i, och ställ upp 95 % konfidensintervall för parametrarna. Använd gärna också Matlabs numeriska optimeringsrutiner för estimationen. Jämför dina resultat med de resultat som MK-skattning ger. Uppgift: Testa den linjära modellen mot en kvadratisk modell mha LR-test. Redovisa och kommentera resultatet. y i = β 0 + β 1 x i + β 2 x 2 i + ε i. (2) 4.2 Tidsserieanalys Vi kommer här att begränsa oss till att arbeta med AR(p)-processer för att inte fastna i beräkningsmässiga svårigheter. Har du läst kursen i tidsserieanalys kommer detta avsnitt inte att innebära några större nyheter. Du skall emellertid själv skriva alla rutiner som behövs för anpassning av modeller. Du kommer här att anpassa en modell för en simulerad ränteprocess. Vi kan inte observera räntan direkt utan endast priset på obligationer. Därför måste vi beräkna räntan ur obligationspriset som p(t, T ) = e r(t)(t t). Börja med att ladda in data genom > > load prisdata.mat 3
och transformera data. Verkar dataserien stationär? Uppgift: Anpassa en lämplig AR(p)-modell till data och genomför en residualanalys genom att studera residualerna fördelning och autokorrelation. Tips: Tänk på att väntevärdet för en AR(p)-process är noll. Modelleringshjälp Nedanstående innehåller inga extra uppgifter utan är endast ett stöd för er som inte har gått kursen i tidsserieanalys. Den ursprungliga dataserien är inte stationär; det syns tydligt både på väntevärdet men framförallt genom att variansen avtar med tiden. Genom en transformation, se ovan, fås en stationär serie. >> r=-log(p(1:end-1))./(t-t(1:end-1)); >> plot(r) Notera att du inte kan rekonstruera serien på inlösendagen eftersom priset där är 1 (något annat pris hade gett upphov till arbitrage). Ränteprocessen du har rekonstruerat har nu konstant väntevärde och varians varför vi kan fundera på att anpassa en lämplig modell. Detta kommer vi att göra genom att först studera ett lämpligt ordningstal på processen genom att observera autokorrelationsfunktionen. >> rm=r-mean(r); >> sacfplot(rm,30); Det finns ett signifikant beroende för den första fördröjningen. Anpassa därför en AR(1)-process och studera dess residualer. Om du har skrivit dina rutiner korrekt kommer du att finna att det fortfarande finns ett signifikant beroende bland residualerna. Testa därför att anpassa en större modell, säg en AR(p)-process där p = 2, 3,... och testa modellerna mot varandra genom ett LR-test. Du kan naturligvis fuska genom att använda Matlabs inbyggda rutiner för att anpassa modeller. Du kan jämföra dina resultat med de korrekta genom att skriva >> th1=arx(rm,1); >> present(th1) >> th2=arx(rm,2); >> present(th2) 4
5 Feedback Kommentarer och synpunkter på laborationen är alltid välkomna. Skicka dem till Erik Lindström, erikl@maths.lth.se eller ring 046 222 45 78. 6 MATLAB rutiner sacfplot Beräknar och plottar den empiriska autokorrelationen. arx Anpassar en ARX-process till data. present Redovisar resultatet från en anpassning. resid Beräknar och testar residualerna till en modell. fminunc Numerisk minimering av en flerdimensionell funktion. Rutinen bygger på en quasi-newtonmetod (BFGS) och kan returnera argumentet som mimimerar funktionen, det minimala funktionsvärdet samt Hessianen till funktionen. MLmax Specialanpassad Quasi-Newton baserad optimeringsrutin för maximum likelihood estimering. Maximerar likelihoodfunktionen genom att använda scorefunktionernas kvadratiska variation för att skatta Fishers Informationsmatris. Kräver därför att loglikelihoodfunktionen returneras som en vektor.» [xout,logl,covm]=mlmax(@lnl,x0,indata) Referenser [1] Madsen, H., Nielsen, J. N., Lindström, E., Baadsgaard, M. and Holst, J. Statistics in Finance, IMM; DTU; Lyngby och Matematisk Statistik, LTH, Lund, 2004. 5