Matematisk statistik 9 hp Föreläsning 3: Transformation och simulering Anna Lindgren 8+9 september 216 Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 1/11
Stokastisk variabel Kvantil Stokastisk variabel En stokastisk variabel eller slumpvariabel är ett tal vars värde styrs av slumpen (en funktion Ω R). Bet. X,,.... Kan vara diskret eller kontinuerlig En stokastisk variabel beskrivs av: Sannolikhetsfunktion För en diskret s.v. X p X (k) = P(X = k) Täthetsfunktion För en kontinuerlig s.v. X har vi f X (x). P(X A) = f X (x) dx Fördelningsfunktion Summa av p X (k) eller integral av f X (x). A F X (x) = P(X x) Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 2/11
Stokastisk variabel Kvantil Standardfördelningar & kvantiler Diskret fördelning Binomialfördelning Poissonfördelning ffg-fördelning Geometrisk fördelning Kontinuerlig fördelning Rektangel- eller likformig fördelning Exponentialfördelning Normalfördelning α-kvantil, x α En kvantil, x α, till en s.v. X är en gräns som överskrids med slh α. Den fås som lösning till någon av följande ekvationer. F X (x α ) = 1 α xα f X (x) dx = 1 α x α f X (x) dx = α Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 3/11
Exempel: Keno-3 (igen) I Keno-3 väljs 3 av 7 nr. Vid dragning väljs 2 av dessa 7 ut som vinstnummer. Låt X = Antal vinstnr man prickar in. Sannolikhetsfunktionen för X är j 1 2 3 p X (j).36.45.17.2 Två vinstnr ger 5 kr och 3 vinstnr ger 9 kr. Sätt = Vinsten (kr). Hur ser fördelningen för ut? Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 4/11
Transformation av stokastiska variabler Givet en s.v. X. Vilken fördelning får = g(x)? Om är diskret kan man räkna ut sannolikhetsfunktionen p (k) = p X (j) j;g(j)=k dvs P( = k) fås genom att lägga ihop p X (j) för alla j sådana att g(j) = k. Metod om är kontinuerlig: 1. Sätt upp F (y) = P( y). 2. Stoppa in = g(x) och uttryck F (y) som fkn av F X ( ). 3. Derivera för att få f (y) som fkn av f X ( ) Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 5/11
Exempel 1. Bestäm p (k) om = X 4 och k 1 1 2 p X (k).2.5.2.1 2. Vilken täthetsfunktion har = 2 + 3X om X har täthet f X (x)? 3. Vilken täthetsfunktion har = πx 2 om X R( 1, 1)? 4. Vilken fördelning har = 1 2 ln X om X R(, 1)? 5. Vilken fördelning får man om man stoppar in X R(, 1) i inversen till fördelningsfunktionen för en kont s.v.? dvs g(x) = F 1 (X). Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 6/11
Inversmetoden Hur drar vi slumptal från en godtycklig kontinuerlig s.v. med fördelningsfunktion F (y)? Låt X R(, 1), dvs F X (x) = x, x 1. Finn inversen F 1 (y), till fördelningsfunktionen, F (y), för. Bestäm fördelningsfunktionen för Z = F 1 (X) F Z (z) =P(Z z) = P(F 1 (X) z) = P(F (F 1 (X)) F (z)) =P(X F (Z)) = F X (F (z)) = F (z) För att dra slumptal från en fördelning med fördelningsfunktion F (y): 1. Räkna ut F 1 (y) 2. Dra slumptal från en R(, 1)-fördelning. 3. Beräkna F 1 (y) för varje slumptal. Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 7/11
Kontinuerlig fördelning Exp(2) Inversmetoden 1.8.6.4.2 f X (x).2.2.4.6.8 1 1.2 2 1.5 1 Önskad täthet f (y).5.5 1 1.5 2 2.5 3 1.8 F (y).6.4.2.5 1 1.5 2 2.5 3 Önskade slumptal Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 8/11
Diskret fördelning Ge(.3) 1 Inversmetoden.5.5.5 1 1.5 Önskad sannolikhetsfunktion.4.3.2.1 1 2 3 4 5 6 7 8 9 1 1.5 2 4 6 8 1 12 14 16 18 2 Önskade slumptal Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 9/11
Pseudoslumptal Pseudoslumptal är tal som genereras enligt en algorithm men ser slumpmässiga ut Har rätt fördelning Lång periodicitet Oberoende Snabba att beräkna De flesta programspråk tillhandahåller slumptal som är R(, 1). rand och unifrnd i MATLAB rand i C/C++ gsl rng uniform i GNU Scientific Library Random i Java Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 1/11
Generering av slumptal från R(, 1)-fördelning Ett enkel sätt är att använda en kongruensalgoritm av typen x n+1 = (ax n + b) mod c som ger heltal mellan och c 1. Detta x i -värde delas sedan med c för att hamna i intervallet [, 1). Sekvensen är periodisk med perioden c (vissa villkor). Man får samma sekvens för ett givet startvärde x. Några exempel: a b c Numerical Recipes 1664525 11394223 2 32 glibc (GCC) 113515245 12345 2 32 MATLAB pre v. 5 7 5 = 1687 2 32 1 RANDU (IBM 196) 2 16 + 3 = 65539 2 31 Se t.ex Numerical Recipies in C, kap. 7 för diskussion och andra algoritmer. Mersenne twister (en.wikipedia.org/wiki/mersenne_twister) är nu mer standard i de flesta programspråk (MT19937), period 2 19937 1. Anna Lindgren - anna@maths.lth.se FMS12/MASB3: transform 11/11