Presentation laddar. Vänta.

Presentation laddar. Vänta.

Simulering Introduktion Exempel: Antag att någon kastar tärning a) Vad är sannolikheten att på fyra kast få två sexor? b) Vad är sannolikheten att på 100.

Liknande presentationer


En presentation över ämnet: "Simulering Introduktion Exempel: Antag att någon kastar tärning a) Vad är sannolikheten att på fyra kast få två sexor? b) Vad är sannolikheten att på 100."— Presentationens avskrift:

1 Simulering Introduktion Exempel: Antag att någon kastar tärning a) Vad är sannolikheten att på fyra kast få två sexor? b) Vad är sannolikheten att på 100 kast få mellan 10 och 15 sexor och där summan av de 50 första kasten är mellan 165 och 185? a) P(”två sexor på fyra kast”) = b) P(” ”)Löses analytiskt

2 Simuleringsstudie Kasta 100 kast många gånger och räkna antalet gånger då villkoret är uppfyllt. Skatta sannolikheten med relativa frekvensen, dvs (antalet lyckade / totala antalet kast) Utnyttja dator Bilda slumptal Vad är ett slumptal?

3 Generering av likformigt fördelade slumptal Hur kan vi bilda ett slumptal som ligger mellan noll och ett? Slumptal - Pseudoslumptal ”Det går aldrig att konstruera riktiga slumptal” Kongruensgeneratorer Diskreta stokastiska variabler - tabellmetoden Kontinuerliga - Inversmetoden

4 Slumptal - Pseudoslumptal Kongruensgenerator utnyttjar rekursion Där a,b,m och x n är heltal x 0 är startvärde vilket betyder att Sättsom ger oss att u i är nu ett pseudoslumptal från U(0,1)

5 Egenskaper a) När ett x i återkommer upprepar sig följden periodiskt Ex: Periodlängden beror på startvärdet x 0 !

6 b) (Knuth 1991) Full periodlängd erhåller man om 1) b och m ej har någon annan gemensam faktor än 1. 2) (a-1) är en multipel av varje primtal som delar m 3) (a-1) är en multipel av 4 om m är det

7 Ex: a = 3, b = 7, m = 9 Villkor 2 ej uppfyllt för full periodlängd! Ex: a = 4, b = 7, m = 9 Alla villkor uppfyllda!

8 Ex: IBM:s generator Periodlängd … eftersom Implementering av IBM:s generator Antagligen vanligast med 32 bitars dator. Problem med x n ! Krav på mer än 32 bitars ordlängd.

9 Recept! Gör enligt följande Sätt W = C = = 2836 Bilda Kommer alltid vara heltalsdelen Om x n+1 < 0 sätt x n Låt u n = x n / ( )

10 Generering av slumptal från andra fördelningar Diskreta fördelningar Bin(1,p) dvs Teknik: Generera ett slumptal U från U(0,1) sätt X=0X=1 01-p1

11 X är ett slumptal från Bin(1,p) eftersom Bin(n,p). Om X i  Bin(1,p), i=1,2,…,n samt oberoende så är Generera n st Bin(1,p) slumptal enligt ovan och sätt så kommer Y vara ett slumptal från Bin(n,p).

12 Alternativ: Tabellmetoden Ex: Generera slumptal från X  Bin(5,0.3) P(X=0) = 0.17 P(X=1) = 0.36 P(X=2) = 0.31 P(X=3) = 0.13 P(X=4) = 0.03 P(X=5) = X=0 X=4 X=3X=2X=1 X= Generera ett slumptal från U  U(0,1) och kontrollera vilket intervall det hamnade i.

13 Tillämpningar Hur finner vi arean av sjön? Använd millimeterpapper och räkna eller utnyttja planinometer. Simulering: Slumpa ut N punkter i kvadraten K, dvs iid U(0,a) som x och y koordinater. Räkna antalet punkter som faller inom sjön, N S och uppskatta sjöarean med A K N S / N = A K Eftersom N S får vi att E[ ] = E[N S /N] = N P S / N = P S V[ ] = N -2 V[N S ] = N -2 N P S (1 - P S ) = P(1-P)/N

14 Och om vi utnyttjar CGS, (giltigt om NP(1-P) > 10 tex) kan vi konstruera konfidensintervall för vår skattning, dvs A K En nackdel är dock att om man inte kan precisera konturen av sjön matematiskt är det lite svårt att implementera metoden på dator… Integralskattning En integral kan ganska lätt skattas mha simulering. Integralen kan uppfattas som arean mellan x-axeln och kurvan y = g(x). Simulera U 1, U 2, …, U N pseudoslumptal och skatta integralen med

15 Utnyttja CGS, och du kan göra konfidensintervall Det fungerar eftersom E[g(U)] = Tänk på att arean under kurvan är lika med medelhöjden på kurvan. Variansen för skattningen blir då

16 Ex: Antag att vi vill bestämma integralen

17 Det enklaste : ) är givetvis nu att integrera och bestämma den. Men man skulle även kunna använda sig av den ovan nämnda tekniken, dvs att utnyttja simulering till att skatta integralen. Eftersom vårt g(x) nu är lika med integralen ovan dvs väljer vi f(x) så att

18 Således, om vi väljer f(x) = 1/5 så är detta uppfyllt. En simuleringskörning med U(0,5) ger Vi kan notera att sant värde är Dock, en väldigt användbar teknik för komplicerade integraler. Vilken sats bygger det här på?

19 Kontinuerliga fördelningar Inversmetoden Antag att vi vill generera slumptal från en fördelning med fördelningsfunktion F, vars invers F -1 (U) är definierad på (0,1). Sats: Om U  U(0,1) så har den stokastiska variabeln X = F -1 (U) fördelnings- funktionen F. Man kan inse det på följande sätt X = F -1 (U)  P(X≤x) = P( F -1 (U) ≤x ) = P(U ≤F(x)) = F(x), eftersom P(U ≤a) = a

20 Inversmetoden. Om fördelningsfunktionen har en enkel invers kan vi utnyttja detta! Om X  Exp(m) dvs X är exponentialfördelad med fördelningsfunktion F X (x) = 1 - e -x / m, x ≥ 0 Vi har och om vi använder oss av inversmetoden, dvs lös ut X Dvs generera ett slumptal U från U(0,1). Sätt in U i -m ln(1-U) = X. X är vårt slumptal!

21

22 Normalfördelningen låter sig å andra sidan inte inverteras så enkelt. Det finns snabbvarianter… trots det. Utnyttja CGS Bilda Enligt CGS är nu

23 Ger dock ”bara” normalfördelade slumptal mellan (-6,6). Vad är 1-P(-6

24 Alla partiella derivator är kontinuerliga vilket betyder att vi kan skriva simultana täthetsfunktionen som Så man kan plocka fram simultana fördelningsfunktionen för R och 

25 Så… Vi ser att R och  är oberoende sv med

26 Ok, nu till metoden (Box-Muller) Ger oss två oberoende normalfördelade slumptal Ok. Visa nu detta! Obs jag skämtar…

27 Polar Marsaglia metoden bygger på samma idé men hoppar över Användandet av trigonometriska funktioner (cosinus och sinus). Algoritm: 1. Generera U 1 och U 2 från U(0,1) och bilda 2. Sätt R = V V 2 2 Om R > 1 gå tillbaka till Sätt N 1 och N 2 är två oberoende slumptal från N(0,1)

28 Test av slumptalsgeneratorer Pokertest Betrakta en följd U 1, U 2, …, U 5k, där varje U i är ett slumptal som är likformigt fördelat på 0, 1, 2, …, 9. Dela upp följden i k st 5-tupler (U 1, U 2,…, U 5 ), (U 6, …, U 10 ),…, (U 5k-4, …, U 5k ) Bland dessa k st 5-tupler, räkna antalet av typen Alla olika: a b c d e x 1 P 1 = P(alla olika) ett par: a a b c d x 2 P 2 två par: a a b b c x 3 P 3 triss: a a a b c x 4 osv kåk: a a a b b x 5 fyrtal: a a a a b x 6 femtal: a a a a a x 7 Typ Antal Sannolikhet

29 Formulera nu en hypotes som man brukar kalla för Nollhypotes H 0 H 0 : Slumptalsgeneratorn genererar likformigt fördelade slumptal mellan 0 och 1 ( U(0,1)). För att nu testa H 0 används ett sk ”Chi-två test”,  2 -test.  2 -test metoden. Antag att n ( i vårt fall n = 5k ) stycken oberoende försök har utförts. Varje försök kan resultera i r st olika utfall; A 1,A 2,…,A r med sannolikheter p 1,p 2, …,p r. Låt x 1,x 2, …,x r vara de observerade antalet utfall på A 1,A 2,…,A r.

30 P 1,p 2, …,p r antas vara okända och man vill testa en viss hypotes rörande dessa sannolikheter, dvs H 0 : p 1 = p 1 *, p 2 = p 2 *, …, p r = p r * Konstruera en sk testvariabel Här är n antalet olika utfall som vi kan konstruera, dvs antalet 5-tupler i föregående exempel.

31 För att nu avgöra om vår generator ger bra ”slumptal” jämför vi vår testvariabel med ett tabellvärde från  2 -fördelningen

32 Man bestämmer då en gräns för när man inte tror att generatorn ger likformiga slumptal, dvs förkasta H 0 om där  = signifikansnivån. I pokertest testas H 0 med Arean =  Förkasta H 0 om  = signifikansnivån, och den måste man välja själv. Det är vanligt med  = 0.05, 0.01,

33 Gap-test Låt  och  vara två reella tal sådana att Betrakta längden av delföljder U j, U j+1, …, U j+r där U j+r  ( ,  ) men där U j, U j+1, …,U j+r-1  ( ,  ). U i pseudoslumptal från U(0,1) Ex:  =0.2,  =0.5 Bestäm gaplängderna. Vi håller på tills vi fått n st gap U 1 =0.023 U 2 =0.354 U 3 =0.462 U 4 =0.791 U 5 =0.553 U 6 =0.304 U 7 =0.212 U 8 =0.893 U 9 =

34 Räkna hur många ”gap” man fått av längd 0,1,2, …., ≥ t Sätt p = β – α (Sannolikhet att hamna i intervall ( ,  ) ) Låt p j = P(”gap”-längden är j) Då blir (geometrisk fördelad) p j = p (1-p) j p  t = P(”gap”-längden är  t) = p(1-p) t + p(1-p) t+1 + … = = p(1-p) t (1+(1-p)+(1-p) 2 + …) = Testa med Q = Och jämför om

35 Man bör se till att n, t, och p är sådana att np i > 5 för alla ”gap” storlekar. Typiskt fall för Gap-testet är  = 0, β = 0.1 Många dåliga generatorer ger alldeles för många gap med ”för kort” längd Allmänt gäller vid dessa  2 - test att np i > 5.

36 Permutationstest Betrakta en talföljd U 1, U 2, …, där U i är slumptal från U(0,1) Dela in talföljden i t-tupler (U 1, …,U t ), (U t+1, …,U 2t ), … Map storleksföljden kan varje t-tupel vara ordnad på t! sätt. Ex: t = 3, t! = 3! = 6 U 1 < U 2 < U 3 U 1 < U 3 < U 2 U 2 < U 1 < U 3 U 2 < U 3 < U 1 U 3 < U 1 < U 2 U 3 < U 2 < U 1 Varje ordningsföljd har sannolikhet 1/t! (1/6) att erhållas. Bilda n st t-tupler och dela in i t! klasser. Testa med  2 -test!


Ladda ner ppt "Simulering Introduktion Exempel: Antag att någon kastar tärning a) Vad är sannolikheten att på fyra kast få två sexor? b) Vad är sannolikheten att på 100."

Liknande presentationer


Google-annonser