Luds tekiska högskola Matematikcetrum Matematisk statistik STATISTISKA METODER FÖR SÄKERHETSANALYS FMS065, HT-15 Datorövig 2 Fördeligar iom säkerhetsaalys I dea datorövig ska vi studera ågra grudläggade begrepp frå saolikhetsteori: täthetsfuktio, vätevärde och varias; och frå iferesteori: histogram, empirisk fördelig och parameterskattig. Vi aväder Gumbel-fördelige som exempel eftersom de ofta aväds iom säkerhetsaalys. Vi börjar med simulerigar me ska också studera riktiga data av mätigar av våghöjder i Atlate. 1 Förberedelseuppgifter 1. Läs igeom hadledige samt kapitel 3.4 3.5 och 4.2 4.3 i boke. 2. Skriv er defiitioe av vätevärde och varias för e kotiuerlig slumpvariabel X, d.v.s. E(X ) och V (X ). Beräka vätevärde och varias för X om X är expoetialfördelad. 3. Skriv upp likelihoodfuktioe L(a; x) om x = {x 1... x } är ett stickprov frå e expoetialfördelig. 4. Hur tolkar ma e ormalfördeligsplot? 2 Täthetsfuktioe som ett gräsvärde för histogram Histogram aväds ofta för att beskriva fördelige av data. Vi jämför histogram med täthetsfuktioe, ofta beteckad f X (x) om variabel heter X, och börjar med e Gumbelfördelig med fördeligsfuktio F X (x) = exp( e (x b)/a ) med parametrara a = 2.1 och b = 1.7. Matlab har ibyggda fuktioer, evrd, etc. där ev står för Extreme Value (distributio), för Gumbelfördelige me de är defiierade åt fel håll, jämfört med boke, så vi ka ite utyttja dem direkt. Därför har vi skrivit e ege versio gumbrd som ka laddas er frå kurses hemsida. Där fis fler Gumbel-fuktioer som vi kommer att behöva så ladda er dem också. Simulera 1000 slumptal och rita ett histogram: >> a = 2.1; b = 1.7; >> x = gumbrd(a,b,1,1000) % e radvektor med 1000 kolumer >> hist(x) Likar detta täthetsfuktioe? Eftersom vi har atal observatioer i varje klass på y-axel ka vi ite rita täthetsfuktioe i samma skala. De itegrerar ju till ett. Vi behöver skala om histogrammet så det också itegrerar till ett. Vi har gjort e ege fuktio histpdf (se hemsida) för detta: >> help histpdf >> histpdf(x)
DATORÖVNING 2, FMS065 2 Nu ka vi lägga till täthetsfuktioe till histogrammet: >> xv = lispace(mi(x),max(x),1000); % 1000 värde jämt utspridda mella mista % och största x-värdet. >> f = gumbpdf(xv,a,b); % gumbpdf fis på hemsida. >> hold o % Fortsätt rita i histogrammet. >> plot(xv,f, r ) >> hold off Uppgift: Vad häder är atalet slumptal ökar? Testa geom att öka atalet simulerigar frå 1000 till 2000, 5000 och 10000. Öka gära också atalet klasser i histogrammet till 50. Uppgift: Vad häder är atalet slumptal miskar? Testa geom att miska atalet simulerigar frå 1000 till 500, 100 och 25. Glöm ite att miska atalet klasser i histogrammet också. 3 Vätevärde och varias för e slumpvariabel För e slumpvariabel X, ager vätevärdet E(X ) var värdea ligger i medeltal (tygdpukte i fördelige). Variase V(X ) (eller stadardavvikelse D(X ) = V(X )) av X ka ses som ett mått på spridige. Vätevärde och varias fis beräkat för att atal fördeligar, se ågo lämplig tabell. För ett givet datamaterial x 1,..., x (stickprov), vet vi oftast ite vilke fördelig det gäller, och därmed heller ite vätevärde och varias för de fördelige. Stickprovsmedelvärdet, beteckat x = 1 i=1 x i, och stickprovsvariase, beteckad s 2 = 1 1 i=1 (x i x) 2, är motsvarade empiriska mått på läge och spridig. Om atalet observatioer,, ökar förvätar vi oss att dessa storheter ärmar sig E(X ) respektive V(X ). Låt oss udersöka detta med hjälp av simulerade data där vi vet svaret. I e Gumbelfördelig ges vätevärde och varias av 1 E(X ) = b + a g, där g 0.5772 är Eulers kostat, V(X ) = a2 p 2 6. Välj ige a = 2.1 och b = 1.7. Då får vi >> a = 2.1; b = 1.7; >> EX = b-a*psi(1) % -psi(1) ger Eulers kostat i Matlab. >> VX = a^2*pi^2/6 >> DX = sqrt(vx) Simulera u 50 observatioer frå Gumbel-fördelige (gumbrd) och beräka stickprovsmedelvärdet (mea), -variase (var) och -stadardavvikelse (std): 1 g def = lim k ( k i=1 (1/i) l i ) = 0.57721566...
DATORÖVNING 2, FMS065 3 >> x = gumbrd(a,b,1,50); >> mea(x) >> var(x) >> std(x) Uppgift: Jämför med de teoretiska värdea som du fick fram ia. Stämmer de överes? Uppgift: Simulera ågra större stickprov med, t.ex., 200, 1000 och 5000 obervatioer. Vad häder är atalet observatioer ökar? 4 Skattig av parametrar Atag att vi har ett stickprov x 1,..., x frå e Gumbelfördelig me där parametrara a och b är okäda. Maximum-likelihood-skattigar fis implemeterat i Matlab för flera olika fördeligar (xxxfit). Eftersom Gumbelfördelige i Matlab är bakväd har vi gjort e ege versio gumbfit. Vi börjar med att simulera 50 observatioer frå samma Gumbel-fördelig som tidigare och aväder seda gumbfit för att skatta parametrara: >> a = 2.1; b = 1.7; >> x = gumbrd(a,b,1,50); >> phat = gumbfit(x); % phat iehåller både a- och b-skattigara. >> ahat = phat(1) % a-skattige >> bhat = phat(2) % b-skattige Uppgift: Hur stämmer skattigara med de saa parametervärdea? Uppgift: Simulera 50 ya slumptal frå samma fördelig och skatta parametrara ige. Blev det samma som förra gåge? Varför ite? Egeskaper hos skattigar Uppebarlige varierar skattigara är vi gör ya observatioer. Dessutom är det ofta så att skattigara av två parametrar i samma fördelig (här a och b) ite är oberoede. Vi vill alltså udersöka både variase för de olika skattigara och kovariase mella dem.
DATORÖVNING 2, FMS065 4 För skattigara a och b i e Gumbelfördelig gäller (är atalet observatioer ökar) att 2 V(a ) 6 p 2 a2 a2 0.60793 ) V(b 6(1 g)2 ) (1 + p 2 a2 a2 1.10867 C(a, b ) 6(1 g) p 2 a2 0.25702 a2 (1) (2) Notera att variatioe i b-skattige ite beror på b uta bara på a. Dessutom är kovariase positiv vilket iebär att båda skattigara riskerar att bli för stora (eller för små) samtidigt. För att illustrera detta har vi skrivit e fuktio som simulerar ya stickprov frå e Gumbel-fördelig, skattar a och b och ritar upp dem. >> a = 2.1; b = 1.7; = 50; >> type gumbsim % Se vad fuktioe gör. >> phat = gumbsim(a,b,,1000); % 1000 stickprov med obs i varje. Uppgift: Eligt teori om ML-skattigar ska a och b vara ugefär ormalfördelade. Verkar det stämma? Uppgift: I de udre figure är de 1000 pare (a, b ) iritade. Hur ser ma att kovariase är större ä oll? Uppgift: Ädra stickprovsstorleke frå 50 till 5. Vad häder med ormalapproximatioe? Blir de bättre eller sämre? 5 Fördeligspapper I verkliga situatioer vet vi ite vilke fördelig observatioera kommer frå. Det fis flera sätt att udersöka detta me vi kocetrerar oss här på fördeligspapper som är e ekel grafisk metod. Atag att vi har ett stickprov x 1, x 2,..., x. Ia vi ka skatta ågra parametrar måste vi övertyga oss om att data kommer frå e viss familj av fördeligar, t.ex. ormal, Gumbel eller Weibull. Det är ofta svårt att se detta i ett histogram me det ka vara eklare att aväda fördeligsfuktioe och rita i de i ett fördeligspapper 3. Det fis olika papper för olika fördeligar. Papprets x- och y-axlar är kostruerade så att om data kommer frå e give typ av fördelig så hamar observatioera på e rät lije. Statistics Toolbox i Matlab har ormplot (för ormalfördelig) och wblplot (för Weibull-fördelig). Vi har skrivit e ege gumbplot (för Gumbel-fördelig). Vi provar att geerara data frå ågra olika fördeligar och ser hur det ser ut i olika papper. Vi börjar med ormalfördelig: 2 Det är ite ekelt att visa detta. 3 Ia datorera ritade ma på papper. Namet häger kvar.
DATORÖVNING 2, FMS065 5 >> data = rad(2000,1); % 2000st N(0,1) >> figure(1) >> clf % Tömmer iehållet i figure 1 >> hist(data) >> figure(2) >> ormplot(data) >> figure(3) >> wblplot(data) % Några felmeddelade? Varför? >> figure(4) >> gumbplot(data) Uppgift: Hur ser det ut är vi ritar i rätt papper? I fel papper? Uppgift: Gör om det hela med rektagelfördelade slumptal istället (data=rad(2000,1);). Passar ågo av de tre fördeligara? Uppgift: Gör om det med Weibullfördelade slumptal istället (data=wblrd(2, 2.3, 2000, 1); ger Weibull med a = 2, b = 0 och c = 2.3). Passar ågo av de tre fördeligara? Uppgift: Och ige med e Gumbelfördelig (data=gumbrd(2.1, 1.7, 2000, 1);). Passar ågo av de tre fördeligara? Uppgift: Experimetera med att ädra parametrara i fördelige och också atalet slumptal. Vad häder är ma ädrar parametrara? Vad häder om ma miskar atalet observatioer frå 2000 till, t.ex., 100 eller 25? 6 Mätigar av sigifikat våghöjd i Atlate Vi ska u aväda våra kuskaper för att hitta e lämplig fördelig och skatta parametrar i ett riktigt datamaterial. Iom oceaografi och mari tekologi aväds extremvärdesteori flitigt. När ma desigar havsplattformar behöver ma dimesioera dem efter extrema förhållade. Vi ska studera mätigar frå Atlate. Materialet består av s.k. sigifikata våghöjder 4, d.v.s. medelvärdet av de högsta tredjedele av vågora. Ladda ed datafile och m-file frå hemsida och läs i de i Matlab, läs beskrivige, ta reda på storleke och rita upp de: 4 Ehete är förmodlige 1 meter.
DATORÖVNING 2, FMS065 6 >> close all % Stäger alla plot-föster. >> atl = load( atlatic.dat ); >> help atlatic >> size(atl) >> plot(atl,. ) Vi är itresserade av flera olika saker i materialet me vi ska kocetrera oss på att skatta parametrara i de fördelig som vi tycker passar till data. I de här datorövige ska vi göra följade steg: Hitta e familj av fördeligar, F(x), som verkar passa till data. När vi valt lämplig fördelig, skatta de okäda parametrara. Uppskatta variase för parameterskattigara. Lämplig fördelig Ma vet att de sigifikata våghöjde beter sig ugefär som om de vore maximal våghöjd. Därför ka ma misstäka att de ka vara, t.ex., Gumbel-fördelad. Udersök det geom att rita olika fördeligspapper: >> ormplot(atl) >> wblplot(atl) >> gumbplot(atl) Uppgift: Vilke fördelig verkar bra? Varför är de adra ite bra? Parameterskattigar Nu vill vi skatta parametrara i de valda fördelige och aväda dem för att skatta vätevärde och varias. Jämför seda med stickprovets medelvärde och varias: >> phat = gumbfit(atl); % ML-skattigar av a och b. >> ahat = phat(1) >> bhat = phat(2) >> EX = bhat-ahat*psi(1) % Skattade E och V baserat på... >> VX = ahat^2*pi^2/6 %...de skattade a och b. >> medel = mea(atl) % Stickprovsmedelvärde... >> varias = var(atl) %...och -varias. Uppgift: Verkar vätevärdes- och variasskattige baserat på ML-skattige av parametrara vara rimlig jämfört med stickprovsskattigara? Vi ka få e uppskattig av hur osäkra skattigara är geom att aväda formel (1) och (2) för att uppskatta stadardavvikelse (via variase) hos a och b :
DATORÖVNING 2, FMS065 7 >> Vahat = 6*ahat^2/pi^2/legth(atl); >> Dahat = sqrt(vahat) >> Vbhat = (1+6*(1+psi(1))^2/pi^2)*ahat^2/legth(atl); >> Dbhat = sqrt(vbhat) Uppgift: Verkar osäkerhete stor eller lite i förhållade till hur stora skattigara är? I ästa datorövig ska vi aväda skattade parametrar för att skatta kvatiler i fördelige, t.ex. 100-årsvåge. Vi ska också udersöka hur osäkerhete i parameterskattigara fortplatar sig till kvatilskattige.