simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος...

22
Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 26 ΚΕΦΑΛΑΙΟ 3 Μέθοδοι Παραγωγής Τυχαίων Αριθμών από Συνεχείς Κατανομές Σε αυτό το κεφάλαιο, θα συνεχίσουμε την παρουσίαση μεθόδων παραγωγής τυχαίων αριθμών μελετώντας την περίπτωση συνεχών κατανομών. Όπως θα δούμε, για την παραγωγή τυχαίων αριθμών από συνεχείς κατανομές θα χρησιμοποιήσουμε και πάλι τις μεθόδους που παρουσιάστηκαν στην διακριτή περίπτωση, κατάλληλα τροποποιημένες. Υποθέτουμε γενικά ότι επιθυμούμε να παράγουμε τυχαίους αριθ- μούς από μία συνεχή κατανομή με σ.κ. και σ.π.π. R x x F dx d x f R x x X x F X X X = = ), ( ) ( , ), Pr( ) ( αντίστοιχα. 3.1 Η μέθοδος της Αντιστροφής Θεωρούμε και πάλι ως δεδομένο ότι μπορούμε να παράγουμε εύκολα έναν (ψευδό-)τυχαίο αριθμό U από την U(0,1) και επιθυμούμε χρησιμοποιώντας τον αριθ- μό U να παράγουμε έναν (ψευδό-)τυχαίο αριθμό από μια συνεχή κατανομή F. Η μέ- θοδος της αντιστροφής βασίζεται στην παρατήρηση ότι η τ.μ. ) ( 1 U F X = , όπου U ~ U(0,1), ακολουθεί την επιθυμητή κατανομή F. Υπενθυμίζεται (βλ. σχετική παρατή- ρηση Παραγράφου 2.1) ότι στη διακριτή περίπτωση η μέθοδος της αντιστροφής υπέ- κρυπτε τον ίδιο μετασχηματισμό της U και για αυτό πρόκειται ουσιαστικά για την ίδια μέθοδο. Αρχικά, υπενθυμίζεται ο ορισμός της (γενικευμένης) αντιστρόφου (βλ. Παρ. 2.1.) μιας σ.κ. F, ]} 1 , [ ) ( : inf{ ]) 1 , ([ inf ) ( 1 1 u x F x u F u F = = , u[0,1]. Ο συγκεκριμένος ορισμός καλύπτει και την περίπτωση όπου η F δεν είναι αντιστρέ- ψιμη (π.χ. στη διακριτή περίπτωση, αλλά και στην συνεχή περίπτωση όταν η F δεν είναι γνήσια αύξουσα). Στην περίπτωση που η F είναι αντιστρέψιμη (π.χ. συνεχής και γνήσια αύξουσα) τότε ο παραπάνω ορισμός της γενικευμένης αντιστρόφου συμπίπτει προφανώς με την κλασσική αντίστροφη τιμή της συνάρτησης F στο u. Παρατηρούμε επίσης ότι η F ως συνάρτηση κατανομής είναι δεξιά συνεχής, και άρα το infimum θα επιτυγχάνεται εντός του συνόλου {x: F(x) [u,1]}. Επομένως μπορούμε ισοδύναμα να γράφουμε ότι = ) ( 1 u F min{x: F(x) [u,1]}. Η μέθοδος λοιπόν της αντιστροφής για οποιεσδήποτε (π.χ. διακριτές ή συνεχείς) κατανομές βασίζεται στην επόμενη πρό- ταση. Πρόταση. Αν U ~ U(0,1) και F είναι μία οποιαδήποτε συνάρτηση κατανομής, τότε η τυχαία μεταβλητή ) ( 1 U F X = έχει συνάρτηση κατανομής F. Απόδειξη. Η συνάρτηση κατανομής της τ.μ. Χ είναι ίση με

Transcript of simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος...

Page 1: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 26

ΚΕΦΑΛΑΙΟ 3 Μέθοδοι Παραγωγής Τυχαίων Αριθμών

από Συνεχείς Κατανομές

Σε αυτό το κεφάλαιο, θα συνεχίσουμε την παρουσίαση μεθόδων παραγωγής

τυχαίων αριθμών μελετώντας την περίπτωση συνεχών κατανομών. Όπως θα δούμε, για την παραγωγή τυχαίων αριθμών από συνεχείς κατανομές θα χρησιμοποιήσουμε και πάλι τις μεθόδους που παρουσιάστηκαν στην διακριτή περίπτωση, κατάλληλα τροποποιημένες. Υποθέτουμε γενικά ότι επιθυμούμε να παράγουμε τυχαίους αριθ-μούς από μία συνεχή κατανομή με σ.κ. και σ.π.π.

RxxFdxdxfRxxXxF XXX ∈=∈≤= ),()(,),Pr()(

αντίστοιχα.

3.1 Η μέθοδος της Αντιστροφής

Θεωρούμε και πάλι ως δεδομένο ότι μπορούμε να παράγουμε εύκολα έναν (ψευδό-)τυχαίο αριθμό U από την U(0,1) και επιθυμούμε χρησιμοποιώντας τον αριθ-μό U να παράγουμε έναν (ψευδό-)τυχαίο αριθμό από μια συνεχή κατανομή F. Η μέ-θοδος της αντιστροφής βασίζεται στην παρατήρηση ότι η τ.μ. )(1 UFX −= , όπου U ~ U(0,1), ακολουθεί την επιθυμητή κατανομή F. Υπενθυμίζεται (βλ. σχετική παρατή-ρηση Παραγράφου 2.1) ότι στη διακριτή περίπτωση η μέθοδος της αντιστροφής υπέ-κρυπτε τον ίδιο μετασχηματισμό της U και για αυτό πρόκειται ουσιαστικά για την ίδια μέθοδο. Αρχικά, υπενθυμίζεται ο ορισμός της (γενικευμένης) αντιστρόφου (βλ. Παρ. 2.1.) μιας σ.κ. F,

]1,[)(:inf])1,([inf)( 11 uxFxuFuF ∈== −− , u∈[0,1].

Ο συγκεκριμένος ορισμός καλύπτει και την περίπτωση όπου η F δεν είναι αντιστρέ-ψιμη (π.χ. στη διακριτή περίπτωση, αλλά και στην συνεχή περίπτωση όταν η F δεν είναι γνήσια αύξουσα). Στην περίπτωση που η F είναι αντιστρέψιμη (π.χ. συνεχής και γνήσια αύξουσα) τότε ο παραπάνω ορισμός της γενικευμένης αντιστρόφου συμπίπτει προφανώς με την κλασσική αντίστροφη τιμή της συνάρτησης F στο u. Παρατηρούμε επίσης ότι η F ως συνάρτηση κατανομής είναι δεξιά συνεχής, και άρα το infimum θα επιτυγχάνεται εντός του συνόλου x: F(x) ∈[u,1]. Επομένως μπορούμε ισοδύναμα να γράφουμε ότι =− )(1 uF minx: F(x) ∈[u,1]. Η μέθοδος λοιπόν της αντιστροφής για οποιεσδήποτε (π.χ. διακριτές ή συνεχείς) κατανομές βασίζεται στην επόμενη πρό-ταση.

Πρόταση. Αν U ~ U(0,1) και F είναι μία οποιαδήποτε συνάρτηση κατανομής, τότε η τυχαία μεταβλητή

)(1 UFX −=

έχει συνάρτηση κατανομής F.

Απόδειξη. Η συνάρτηση κατανομής της τ.μ. Χ είναι ίση με

Page 2: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 27

))(:Pr(min))(Pr()Pr( 1 xUtFtxUFxX ≤≥=≤=≤ − .

Διαπιστώνοντας τώρα ότι )()(:min xFUxUtFt ≤⇔≤≥ διότι

• UtFxtxUtFt ≥≤∃⇒≤≥ )(:)(:min 00 , και επειδή UxFxFtF ≥⇒≤ )()()( 0 ,

• )(:min)(:)( UtFtxUtFtxUxF ≥≥⇒≥∈⇒≥ ,

έπεται τελικά ότι

)())(Pr()Pr( xFxFUxX =≤=≤ .

Συνεπώς, η μέθοδος της αντιστροφής για την παραγωγή τυχαίων αριθμών από μια κατανομή με σ.κ. F περιγράφεται από τον επόμενο γενικό αλγόριθμο:

ΒΗΜΑ 1. Παράγουμε έναν τυχαίο αριθμό U ~ U(0,1) ΒΗΜΑ 2. Θέτουμε )(1 UFX −= .

Προφανώς, τις περισσότερες φορές δεν είναι εύκολο να βρούμε άμεσα την γενικευμέ-νη αντίστροφη F-1(U) (π.χ. στη διακριτή περίπτωση ή σε συνεχείς κατανομές με σ.κ. πεπλεγμένης μορφής). Ας δούμε όμως πως μπορούμε να παράγουμε τυχαίους αριθ-μούς από ορισμένες γνωστές συνεχείς κατανομές χρησιμοποιώντας την μέθοδο αυτή.

Α. Ομοιόμορφη κατανομή στο (α,β) (U(a,b)). Στη συγκεκριμένη περίπτωση η σ.π.π. και σ.κ. αντίστοιχα είναι

),(,)(,1)( baxabaxxF

abxf ∈

−−

=−

= ,

και άρα αν U ~ U(0,1), η τ.μ. Χ = )()(1 abUaUF −+=− θα ακολουθεί την ομοιό-μορφη στο (a,b).

Β. Εκθετική κατανομή (Exp(λ)). Αν μία τ.μ. X ακολουθεί εκθετική κατανομή με πα-ράμετρο λ > 0, τότε υπενθυμίζεται ότι θα έχει σ.π.π. και σ.κ. αντίστοιχα,

0,1)(,)( >−== −− xexFexf xx λλλ .

Η F είναι αντιστρέψιμη συνάρτηση στο (0,∞) και ειδικότερα,

)1ln(111)( uxueueuxF xx −−=⇔−=⇔=−⇔= −−

λλλ .

Επομένως, ένας αλγόριθμος παραγωγής τυχαίων αριθμών από την εκθετική κατανομή με παράμετρο λ, είναι:

ΒΗΜΑ 1. Παράγουμε έναν τυχαίο αριθμό U ~ U(0,1)

ΒΗΜΑ 2. Θέτουμε )1ln(1 UX −−=λ

.

Επειδή και η 1−U ~ U(0,1) όταν U ~ U(0,1), θα μπορούσαμε απλούστερα να θέσουμε X = Uln1−− λ .

Γ. Η κατανομή Γάμμα (G(a,λ)). Αν μία τ.μ. X ακολουθεί την κατανομή γάμμα με παραμέτρους a, λ > 0, τότε υπενθυμίζεται ότι θα έχει σ.π.π. και σ.κ. αντίστοιχα,

Page 3: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 28

,0,)(

)( 1 >Γ

= −− xexa

xf xaa

λλ και 0,)(

)(0

1 >Γ

= ∫ −− ydxexa

yFy xa

aλλ .

Είναι φανερό ότι, αν και η F αντιστρέφεται, η αντίστροφή της δεν μπορεί να παρα-σταθεί με έναν κλειστό τύπο και επομένως δεν μπορούμε να χρησιμοποιήσουμε άμε-σα τη μέθοδο αντιστροφής. Αν όμως το a είναι φυσικός (δηλ. a = n), τότε μπορούμε να χρησιμοποιήσουμε τυχαίους αριθμούς από την εκθετική κατανομή που όπως είδα-με παράγονται εύκολα. Συγκεκριμένα, είναι γνωστό ότι το άθροισμα Χ1 + Χ2 +...+ Xn, n το πλήθος ανεξάρτητων τ.μ. από την εκθετική με παράμετρο λ, ακολουθεί κατανο-μή γάμμα με παραμέτρους (n, λ). Επομένως, αν Ui ~ U(0,1), i=1,2,...,n, είναι ανεξάρ-τητες τ.μ., τότε οι τ.μ. ii UX ln1−−= λ ~ Exp(λ), i=1,2,...,n, και τελικά η τ.μ.

∏∑∑===

−=−==n

iii

n

i

n

ii UUXX

111

ln1ln1λλ

,

θα ακολουθεί κατανομή G(n,λ). Συνοψίζοντας, μπορούμε να παράγουμε τυχαίους α-ριθμούς από την κατανομή G(n,λ) ως εξής:

ΒΗΜΑ 1. Παράγουμε n τυχαίους αριθμούς U1,U2,...,Un ~ U(0,1)

ΒΗΜΑ 2. Θέτουμε )ln(121 nUUUX L

λ−= .

Μία υλοποίηση του παραπάνω αλγορίθμου μέσω Mathematica είναι η ακόλουθη:

k=5; λ=3; -Log[Product[Random[],k]]/λ

1.23594

ενώ για n=100 αριθμούς μπορούμε να χρησιμοποιήσουμε το σύνολο εντολών:

k = 5; λ = 3; n=100; randomnumbers = ; Do[r = -Log[Product[Random[], k]]/λ; randomnumbers = Append[randomnumbers, r]; , 100] Print[randomnumbers]

1.23594, 1.50131, 2.79179, 3.86171, 2.96462, 0.883009, 1.98587, 1.54376, 2.65477, 1.53772, 0.637865, 0.895406, 1.65458, 1.4275, 1.39059, 1.66909, 2.06554, 1.73629, 3.10779, 1.42801, 0.765171, 4.34688, 1.79603, 1.0748, 1.45764, 0.852872, 1.66843, 2.08249, 1.07444, 1.27516, 0.527948, 0.567143, 1.10228, 1.8727, 2.7673, 1.52375, 0.970447, 1.87482, 1.05189, 1.11734, 1.1947, 1.34185, 2.96453, 1.60914, 0.962288, 0.57388, 0.803301, 0.834591, 1.00331, 1.06915, 0.694526, 2.67198, 2.27683, 1.12937, 0.773823, 2.31172, 1.53052, 1.12732, 1.74902, 2.71784, 0.731845, 1.61481, 1.56959, 3.56063, 1.5343, 1.3887, 0.955627, 2.71947, 0.642311, 2.39316, 1.87561, 1.95154, 2.10911, 1.50795, 0.905156, 1.38973, 2.5767, 1.70399, 0.990957, 1.03914, 1.00628, 0.828813, 0.690194, 1.46191, 2.86101, 2.19547, 1.46888, 1.09909, 2.24591, 2.64488, 1.46669, 2.573, 1.46586, 1.65034, 1.62949, 1.34449, 0.938629, 2.44725, 3.72305, 1.10261

Οι παραπάνω αριθμοί μπορεί να θεωρηθεί ότι αποτελούν ένα τυχαίο δείγμα από την κατανομή γάμμα (k = 5, λ = 3). Συνεπώς, αν πάρουμε ένα αρκετά μεγάλο δείγμα, θα πρέπει το ιστόγραμμα συχνοτήτων να προσεγγίζει την σ.π.π. της γάμμα (5,3). Αυτό είναι δυνατόν να επαληθευτεί και μέσα από το Mathematica ως εξής: αρχικά κατα-σκευάζουμε τη λίστα randomnumbers παράγοντας n=10000 αριθμούς από τη συγκε-κριμένη κατανομή. Στη συνέχεια, χρησιμοποιώντας τις εντολές:

Page 4: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 29

<<Graphics`Graphics`; h = Histogram[randomnumbers, HistogramScale -> 1]; p = Plot[λ^k*(x^(k - 1))/(k - 1)!*Exp[-λ*x], x, 0, 5]; Show[h, p];

1. 2. 3. 4. 5.

0.1

0.2

0.3

0.4

0.5

0.6

παίρνουμε ένα κοινό γράφημα της σ.π.π της γάμμα (5,3) και του ιστογράμματος σχε-τικών συχνοτήτων του (ψευδο-)τυχαίου δείγματος των 10000 αριθμών. Όπως ήταν αναμενόμενο, το ιστόγραμμα προσεγγίζει την σ.π.π. Το ίδιο μπορούμε να κάνουμε συγκρίνοντας την συνάρτηση κατανομής της κατανομής γάμμα με την εμπειρική συ-νάρτηση κατανομής1 του (ψευδο-)τυχαίου δείγματος (εδώ, η λίστα randomnumbers περιέχει «τυχαίο» δείγμα μεγέθους 1000 από την γάμμα (5,3)):

sr = Sort[randomnumbers]; ta = Table[sr[[k]], k/1000., k, 1, 1000]; L = ListPlot[ta]; p = Plot[Integrate[λ^k*(x^(k - 1))/(k - 1)!*Exp[-λ*x] ,x, 0, t], t, 0, 5]; Show[L, p]

1 2 3 4 5

0.2

0.4

0.6

0.8

1

Παρατηρούμε και πάλι ότι η εμπειρική συνάρτηση κατανομής του δείγματος προσεγ-γίζει αρκετά ικανοποιητικά τη συνάρτηση κατανομής της κατανομής γάμμα (για έναν

1 Υπενθυμίζεται ότι η εμπειρική συνάρτηση κατανομής από ένα τυχαίο δείγμα Χ1,Χ2,...,Χn ~ F είναι

nxX

xXIn

xF in

ii

#)(1)(

1

≤=≤= ∑

=

∧, x∈R

(όπου Ι(Xi ≤ x) = 1 ή 0 ανάλογα με το αν Xi ≤ x ή όχι) η οποία αποτελεί εκτίμηση της σ.κ. F (από τον νόμο των μεγάλων αριθμών, )()())(()(1

1 xFxXPxXIExXI iininin =≤=≤→≤∑ ∞→= με πιθ. 1). Η

εμπειρική συνάρτηση κατανομής αλλάζει τιμές στα διατεταγμένα σημεία Χ(1), Χ(2),..., Χ(n) και επίσης,

nkXXI

nXF k

n

iik =≤= ∑

=

)(1)( )(1

)(.

Page 5: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 30

πιο εμπεριστατωμένο έλεγχο, θα μπορούσαμε να χρησιμοποιήσουμε το τέστ Kolmo-gorv-Smirnov).

Παρατήρηση (τυχαίοι αριθμοί από την κατανομή Poisson μέσω της εκθετικής κατανομής). Ένας εναλλακτικός τρόπος παραγωγής τυχαίων αριθμών από την κατα-νομή Poisson μπορεί να βρεθεί χρησιμοποιώντας τυχαίους αριθμούς από την εκθετική κατανομή. Συγκεκριμένα, θα βασιστούμε στο γεγονός ότι οι ενδιάμεσοι χρόνοι μετα-ξύ συμβάντων σε μία ανέλιξη Poisson με ένταση λ είναι ανεξάρτητοι και ακολουθούν εκθετική κατανομή Exp(λ) (η διαδικασία Poisson θα εξετασθεί αναλυτικότερα σε ε-πόμενο κεφάλαιο). Αν Nt είναι το πλήθος των συμβάντων στο χρονικό διάστημα [0,t], και Χ1, Χ2, ... είναι οι ενδιάμεσοι χρόνοι μεταξύ συμβάντων, τότε

:max1

tXnNn

iit ≤= ∑

=

.

X1 X2 X3

t 0

. . . Xk

1 2 3 k−1 k

Επομένως, αν Χ1, Χ2,... ~ Exp(λ), η τ.μ. :max 1 tXnN init ≤∑= = ~ Po(λt). Αυτό μπο-

ρεί να αποδειχθεί και άμεσα. Πράγματι,

∫∑ −−

= Γ=≤=≥

t xkkk

iit dxex

ktXkN

0

1

1 )()Pr()Pr( λλ ,

(η τ.μ. ),(~1 λkGX iki=∑ ) και επομένως,

∫∫ −+

−− −−

=+≥−≥==t xk

kt xkk

ttt dxexk

dxexk

kNkNkN0

1

0

1

!)!1()1Pr()Pr()Pr( λλ λλ

( ) [ ]!)(

!! 00

1

ktexe

kdxxkxe

k

kttkx

kt kxk λλλλ λλλ −−−− ==−= ∫ .

Άρα τελικά, αν U1, U2,... ~ U(0,1), η τ.μ.

1ln1:0max1ln1:0max11

1 ≤−≥=≤−≥= ∏∑==

n

ii

n

ii UnUnN

λλ

:0max1

λ−

=

≥≥= ∏ eUnn

ii .

ακολουθεί την κατανομή Poisson με παράμετρο λ ( )1,0 01

01 ≡∏≡∑ == iiii UU . Ο αντί-

στοιχος αλγόριθμος θα είναι:

ΒΗΜΑ 1. Θέτουμε i = 0 και P = 1. ΒΗΜΑ 2. Παράγουμε ένα τυχαίο αριθμό U από την U(0,1) και θέτουμε P = P⋅U. ΒΗΜΑ 3. Εάν λ−< eP τότε θέτουμε N = i και σταματάμε. Διαφορετικά, θέτουμε i = i + 1

και γυρίζουμε στο βήμα 2.

Page 6: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 31

3.2. Η μέθοδος απόρριψης.

Η μέθοδος απόρριψης που χρησιμοποιήθηκε για την παραγωγή τυχαίων αριθ-μών από διακριτές κατανομές μπορεί να τροποποιηθεί ώστε να εφαρμόζεται και για την συνεχή περίπτωση. Έστω λοιπόν ότι επιθυμούμε την παραγωγή τυχαίων αριθμών από μία συνεχή κατανομή με σ.π.π. f (x), x∈R. Έστω επίσης ότι μπορούμε εύκολα να παράγουμε τυχαίους αριθμούς από μία άλλη συνεχή κατανομή με σ.π.π g(x), x∈R. Απαιτούμε και πάλι να ισχύει ότι αν g(x) = 0 τότε και f (x) = 0.

Όπως και στη διακριτή περίπτωση, παράγουμε (με οποιοδήποτε τρόπο) έναν τυχαίο αριθμό Y από την κατανομή με σ.π.π. g και στη συνέχεια τον αποδεχόμαστε (θέτουμε X = Υ) με πιθανότητα ανάλογη του πηλίκου f (Y) / g(Y). Εάν δεν γίνει απο-δεκτός, παράγουμε έναν άλλο τυχαίο αριθμό από την κατανομή με σ.π.π. g κ.ο.κ. Πιο συγκεκριμένα, θεωρούμε και πάλι ότι υπάρχει μία σταθερά c < ∞ για την οποία ισχύει

cxgxf

≤)()( για κάθε x: g(x) ≠ 0.

ο αλγόριθμος αποδοχής - απόρριψης είναι ο εξής:

ΒΗΜΑ 1. Παράγουμε έναν τυχαίο αριθμό Y από κατανομή με σ.π.π. g. ΒΗΜΑ 2. Παράγουμε έναν τυχαίο αριθμό U ~ U(0,1).

ΒΗΜΑ 3. Εάν )()(

YcgYfU ≤ τότε θέτουμε X = Y και σταματάμε.

Εάν όχι, επιστρέφουμε στο 1.

Ο τυχαίος αριθμός Χ που παράγεται από τον παραπάνω αλγόριθμο έχει συ-νάρτηση πυκνότητας πιθανότητας f. Η απόδειξη αυτού του ισχυρισμού είναι ανάλογη με τη διακριτή περίπτωση: αρχικά παρατηρούμε ότι σε κάθε επανάληψη δεχόμαστε ή απορρίπτουμε την τιμή Υ ανεξάρτητα από τις προηγούμενες επαναλήψεις και με πι-θανότητα,

∫ ≤=≤R

dyygycgyfU

YcgYfU )()

)()(Pr()

)()(Pr(

cdy

cyfdyyg

ycgyf

RR

1)()()()(

=== ∫∫

(επειδή f (y)/cg(y) ≤ 1 θα είναι Pr(U < f (y)/cg(y)) = f (y)/cg(y)) και άρα

∑∞

=

=≤1

Pr()Pr(n

xX η Υ έγινε δεκτή στην n-οστή επανάληψη και Y ≤ x)

∑∞

=

=1

Pr(n

n−1 απορρίψεις, η n-οστή επανάληψη δεκτή και Y ≤ x)

),)()(Pr()11(

1

1 xYYcgYfU

cn

n ≤≤−=∑∞

=

dyygycgyf

cdyyg

ycgyfU

cx

n

nx

n

n )()()()11()()

)()(Pr()11(

1

1

1

1 ∫∑∫∑ ∞−

=

∞−

=

− −=≤−=

dyyfdyyfcc

xx

n

n ∫∫∑ ∞−∞−

=

− =−= )()(1)11(1

1 .

Tο πλήθος Ν των επαναλήψεων του αλγορίθμου (μέχρι την αποδοχή μιας τιμής) προ-φανώς ακολουθεί και πάλι τη γεωμετρική κατανομή με πιθανότητα επιτυχίας 1/c. Eπομένως χρειάζονται κατά μέσο όρο Ε(Ν) = c επαναλήψεις και άρα θα πρέπει να πάρουμε όσο το δυνατό μικρότερο c. Το μικρότερο c που μπορούμε να πάρουμε είναι

Page 7: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 32

0)(:,)()(sup ≠= xgx

xgxfc .

Η μέθοδος απόρριψης είναι πολύ ισχυρή στην συνεχή περίπτωση διότι μας βοηθά να παράγουμε τυχαίους αριθμούς από κατανομές των οποίων η F-1 δεν μπορεί να γραφεί σε κλειστή μορφή (και άρα δεν θα μπορούσαμε να χρησιμοποιήσουμε τη μέθοδο της αντιστροφής).

Δ. H Κατανομή Βήτα (Be(a,b)). Έστω ότι θέλουμε να παράγουμε τυχαίους αριθμούς από την κατανομή Βήτα με παραμέτρους a, b η οποία έχει συνάρτηση πυκνότητας πιθανότητας:

)1,0(,)1()()()()( 11 ∈−

ΓΓ+Γ

= −− xxxbabaxf ba , a, b > 0.

Η σ.π.π. λαμβάνει γνήσια θετικές τιμές μόνο στο (0,1) οπότε μπορούμε ως βοηθητική κατανομή να χρησιμοποιήσουμε την U(0,1), δηλαδή g(x) = 1, x∈(0,1). Η σ.π.π. της κατανομής βήτα για διάφορες τιμές των παραμέτρων (a, b) δίνεται στα παρακάτω γραφήματα:

0.2 0.4 0.6 0.8 1

1

2

3

4

5 b = 0.5

a = 0.5

f

x

a = 1

a = 5

a = 2

0.2 0.4 0.6 0.8 1

1

2

3

4

5 b = 1

a = 0.5

f

x

a = 1

a = 5

a = 2

0.2 0.4 0.6 0.8 1

1

2

3

4

5 b = 2

a = 0.5

f

x

a = 1

a = 5

a = 2

0.2 0.4 0.6 0.8 1

1

2

3

4

5b = 5 a = 0.5

f

x

a = 1

a = 5 a = 2

Η σταθερά c θα πρέπει να ικανοποιεί την

)1,0(,)()()(

∈≤= xcxfxgxf ,

και άρα αρκεί να βρούμε το μέγιστο της f στο (0,1). Αν a < 1 ή b < 1 τότε η f δεν είναι άνω φραγμένη στο (0,1) (αν a < 1 τότε ∞=↓ )(lim 0 xfx και αν b < 1 τότε

∞=↑ )(lim 1 xfx ) και άρα δεν μπορούμε να εφαρμόσουμε τη μέθοδο. Αν τώρα a = 1,

b > 1 τότε η 1)1()( −−= bxbxf είναι φθίνουσα στο (0,1) και άρα c = f(0) = b. Αντί-στοιχα, αν a > 1, b = 1 τότε η )1,0(,)( 1 ∈= − xaxxf a είναι αύξουσα στο (0,1) και άρα c = f(1) = a.

Page 8: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 33

Τέλος, θα εξετάσουμε την πιο ενδιαφέρουσα περίπτωση όπου a, b >1. Αρκεί να βρούμε σε ποιο σημείο λαμβάνει μέγιστη τιμή η ln f (x) για x∈(0,1). Θα ισχύει ότι

⎟⎟⎠

⎞⎜⎜⎝

⎛−−+−+

ΓΓ+Γ

= )1ln()1(ln)1()()()(ln)(ln xbxa

baba

dxdxf

dxd

xb

xa

−−

−−

=1

11

και άρα τα πιθανά σημεία μεγίστου της lnf (και ισοδύναμα της f ) θα ικανοποιούν την

2

10)1()1)(1(01

110 −+

−=⇔=−−−−⇔=

−−

−−

baaxbxax

xb

xa .

Το σημείο αυτό ανήκει στο (0,1) (διότι (a > 1, b > 1)) ενώ

0)1(

111

11)(ln 222

2

<−−

−−

−=⎟⎠⎞

⎜⎝⎛

−−

−−

=x

bx

ax

bx

adxdxf

dxd ,

και επομένως )1,0(),()( 0 ∈∀≥ xxfxf ( 0)(lim,0)(lim 10 == ↑↓ xfxf xx ). Άρα, για a > 1, b > 1 θέτουμε

2

11

0 )2()1()1(

)()()()( −+

−−

−+−−

ΓΓ+Γ

== ba

ba

baba

babaxfc .

Ο αλγόριθμος παραγωγής για a > 1, b > 1 θα είναι :

ΒΗΜΑ 1. Παράγουμε τυχαίους αριθμούς U1, U2 ~ U(0,1).

ΒΗΜΑ 2. Εάν 11

1111

21

2 )1()1()1(

)2()( −−−−

−+

−−−

−+=≤ ba

ba

ba

UUba

bacUfU τότε θέτουμε X = U1 και

σταματάμε. Εάν όχι, επιστρέφουμε στο 1.

Ο μέσος αριθμός επαναλήψεων του αλγορίθμου θα είναι c.

Έστω π.χ. ότι επιθυμούμε να παράγουμε n = 100 τυχαίους αριθμούς από την κατανομή Βήτα (5,2). Υλοποιώντας των παραπάνω αλγόριθμο μέσω του Mathematica θα έχουμε:

a = 5; b = 2; n = 100; randomnumbers = Table[0, n]; i=1; While[i<=n, U1 = Random[]; U2 = Random[]; If[U2<=(a+b-2)^(a+b-2)*(a-1)^(-a+1)*(b-1)^(-b+1)* U1^(a - 1)*(1 - U1)^(b - 1) ,randomnumbers[[i]] = U1; i = i+1] ]; Print[randomnumbers];

0.759498, 0.81979, 0.823811, 0.637114, 0.355404, 0.91475, 0.750441, 0.723501, 0.808751, 0.878366, 0.904057, 0.689245, 0.788969, 0.947713, 0.798094, 0.332956, 0.414015, 0.625046, 0.576042, 0.851257, 0.79076, 0.839522, 0.55356, 0.425507, 0.586123, 0.800461, 0.921378, 0.63077, 0.633065, 0.84001, 0.793543, 0.368036, 0.700327, 0.89904, 0.768867, 0.781653, 0.620075, 0.621066, 0.852199, 0.738742, 0.714101, 0.957088, 0.296402, 0.471996, 0.905696, 0.832831, 0.689889, 0.900452, 0.838577, 0.907269, 0.422799, 0.992572, 0.659708, 0.594195, 0.75244, 0.885707, 0.745623, 0.733561, 0.878685, 0.654904, 0.662332, 0.479637, 0.719524, 0.840839, 0.882098, 0.675263, 0.693687, 0.553509, 0.445673, 0.712671, 0.526736, 0.547671, 0.770722, 0.721128, 0.900819, 0.478587, 0.930916, 0.754604, 0.656278, 0.93515, 0.658833, 0.926692, 0.758014, 0.37919, 0.441829, 0.782996, 0.517348, 0.625654, 0.691335, 0.794805, 0.729947, 0.769823, 0.657571, 0.551578, 0.698829, 0.6792, 0.789719, 0.542425, 0.812477, 0.536771

Ο μέσος αριθμός επαναλήψεων για την παραγωγή κάθε αριθμού στη συγκεκριμένη περίπτωση θα είναι

Page 9: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 34

==−+

−−ΓΓ+Γ

= −+

−−

5

41

2

11

541

!4!1!6

)2()1()1(

)()()(

ba

ba

baba

babac 2.4576.

Οι παραπάνω αριθμοί μπορεί να θεωρηθεί ότι αποτελούν ένα τυχαίο δείγμα από την κατανομή Βήτα (5, 2). Όπως και στην περίπτωση της κατανομής Γάμμα που εξετά-σαμε παραπάνω, μπορούμε να δούμε πως το ιστόγραμμα συχνοτήτων ενός μεγάλου δείγματος (n = 10000) προσεγγίζει την συνάρτηση πυκνότητας πιθανότητας της Βήτα (5,2):

<<Graphics`Graphics`; h = Histogram[randomnumbers, HistogramScale -> 1]; p = Plot[Gamma[a+b]/(Gamma[a]*Gamma[b])*x^(a-1)*(1-x)^(b-1) ,x, 0, 1]; Show[h, p];

0.2 0.4 0.6 0.8 1.

0.5

1

1.5

2

2.5

Επίσης, μπορούμε να συγκρίνουμε την συνάρτηση κατανομής της κατανομής Βήτα (5,2) με την εμπειρική συνάρτηση κατανομής του δείγματος (εδώ, χρησιμοποιούμε «τυχαίο» δείγμα μεγέθους 1000 από την Βήτα (5,2)):

a = 5; b = 2; sr = Sort[randomnumbers]; ta = Table[sr[[i]], i/1000., i, 1, 1000]; L = ListPlot[ta]; p = Plot[Integrate[Gamma[a + b]/(Gamma[a]*Gamma[b]) *x^(a - 1)*(1 - x)^(b - 1), x, 0, t] , t, 0, 1]; Show[L, p];

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

Σε αυτό το σημείο αξίζει να δούμε πιο παραστατικά πως περίπου λειτουργεί η μέθοδος της απόρριψης. Θα το κάνουμε αυτό χρησιμοποιώντας το παραπάνω παρά-δειγμα. Έστω λοιπόν και πάλι ότι θέλουμε να παράγουμε τυχαίους αριθμούς από την κατανομή Βήτα με παραμέτρους α=5 και β=2 χρησιμοποιώντας τυχαίους αριθμούς από την U(0,1). Οι σ.π.π. της κατανομής Βήτα (5,2) και της U(0,1) έχουν την ακό-λουθη μορφή:

Page 10: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 35

0 1

1

2

3

4

5 f (x): σ.π.π. της Bήτα (5,2)

g

g (x): σ.π.π. της U (0,1)

f

c⋅g

αποδεκτοί τυχαίοι αριθμοί

πιθανότητα αποδοχής του Ui

Ui

Αν τώρα παράγουμε k τυχαίους αριθμούς U1,U2,…,Uk από την U(0,1) τότε αυτοί προφανώς θα κατανέμονται ομοιόμορφα στο διάστημα (0,1) (βλ. παραπάνω σχήμα). Αντίθετα, εάν θέλαμε τυχαίους αριθμούς από την κατανομή Βήτα (5,2) τότε οι αριθ-μοί αυτοί θα έπρεπε να κατανέμονται πιο πυκνά γύρω από το 0.8 περίπου και πιο α-ραιά «κοντά» στο 0 και στο 1 (σύμφωνα και με την μορφή της σ.π.π. f που φαίνεται παραπάνω). Η ιδέα εδώ είναι να «απορρίψουμε» κάποιους από τους k ομοιόμορφα κατανεμημένους αριθμούς που προέρχονται από την U(0,1) έτσι ώστε αυτοί που θα μείνουν (γίνουν αποδεκτοί) να είναι πιο πυκνοί γύρω από το 0.8 και πιο αραιοί κοντά στο 0 και στο 1. Ο κάθε ένας λοιπόν από τους k αρχικούς αριθμούς, π.χ. ο Ui, γίνεται δεκτός με πιθανότητα ανάλογη του πηλίκου f (Ui)/(c⋅g(Ui)). Eπομένως θα γίνονται δεκτοί περισσότεροι αριθμοί στις περιοχές που η f είναι μεγαλύτερη (δηλ. «κοντά» στο 0.8), λαμβάνοντας ένα τελικό δείγμα το οποίο μπορεί να θεωρηθεί ότι προέρχεται από την Βήτα (5,2).

Με το ίδιο σκεπτικό μπορούμε γενικότερα (όπως αποδεικνύεται και αυστηρά παραπάνω) να παράγουμε τυχαίους αριθμούς από μία κατανομή με σ.π.π. f χρησιμο-ποιώντας τυχαίους αριθμούς από μία κατανομή με σ.π.π. g. Αν για το σκοπό αυτό χρησιμοποιηθούν k τυχαίοι αριθμοί από την κατανομή g, τότε κάθε ένας από αυτούς θα γίνει αποδεκτός με πιθανότητα 1/c, ανεξάρτητα από τους υπόλοιπους, και επομέ-νως θα γίνουν αποδεκτοί κατά μέσο όρο k/c αριθμοί (μάλιστα, το πλήθος των αριθ-μών που θα γίνουν αποδεκτοί ακολουθεί την διωνυμική κατανομή με παραμέτρους k και 1/c).

Ε. Η κατανομή Γάμμα (G(a,λ) με τη μέθοδο απόρριψης). Σε προηγούμενη παρά-γραφο είδαμε πως μπορούμε να παράγουμε τυχαίους αριθμούς από τη συγκεκριμένη κατανομή όταν a∈1,2,... χρησιμοποιώντας τυχαίους αριθμούς από την εκθετική κατανομή. Σε αυτή την παράγραφο θα δούμε πως μπορούμε εναλλακτικά να αξιο-ποιήσουμε τη μέθοδο απόρριψης για την παραγωγή τυχαίων αριθμών από την G(a,λ) για οποιοδήποτε a > 1. Υπενθυμίζεται ότι η G(a,λ) έχει σ.π.π.:

0,)(

)( 1 >Γ

= −− xexa

xf xaa

λλ (a > 0, λ > 0) .

Είναι εύκολο να δούμε ότι αν Z ~ G(a,1) τότε η X = Z/λ ~ G(a,λ). Πράγματι, αν Z ~ G(a,1), δηλαδή )(/)( 1 aexxf xa

Z Γ= −− τότε

Page 11: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 36

)(1)()(

1)()()Pr()Pr()( xaZZX ex

axfxF

dxdxZ

dxdxX

dxdxf λλλλλλλ −−

Γ===≤=≤= ,

και άρα η X = Z/λ ~ G(a,λ). Επομένως, για να παράγουμε ένα τυχαίο αριθμό από τη G(a,λ) αρκεί να παραχθεί πρώτα ένα Ζ ~ G(a,1) και στη συνέχεια να πάρουμε Χ = Ζ/λ.

Ας δούμε αρχικά λοιπόν πως μπορούμε να πάρουμε τυχαίους αριθμούς από τη G(a,1). Η σ.π.π. της κατανομής γάμμα λαμβάνει γνήσια θετικές τιμές στο (0,∞) οπότε δεν μπορούμε να χρησιμοποιήσουμε ως βοηθητική κατανομή την U(0,1). Παρατη-ρούμε ότι η σ.π.π. της εκθετικής κατανομής (από την οποία μπορούμε εύκολα να πα-ράγουμε τυχαίους αριθμούς) είναι θετική στο (0,∞). Θα εξετάσουμε λοιπόν αν μπορεί να χρησιμοποιηθεί η εκθετική κατανομή Exp(θ). Αρκεί να υπάρχει σταθερά c < ∞ η οποία να ικανοποιεί την σχέση

0,)()()(

)()()1(11

>≤Γ

==−−

−−

xcaex

eaex

xgxfxh

xa

x

xa

θθ

θ

θ .

Εάν θ > 1 ή a < 1 η συνάρτηση h προφανώς δεν μπορεί να φραχθεί άνω. Για θ < 1, a > 1 πιθανά σημεία μεγίστου της h ικανοποιούν την

))1()1(()(

1)(

1)( )1(1)1(2)1(1 xaxaxa exexaa

exdxd

axh

dxd −−−−−− −+−

Γ=

Γ= θθθ θ

θθ

xa

exaa

x )1(2

))1(1()(

−−

−+−Γ

= θθθ

=0,

και άρα πιθανό μέγιστο λαμβάνεται όταν

θθ

−−

=⇔=−+−1

10)1(1 axxa > 0.

Είναι εύκολο να δούμε ότι η δεύτερη παράγωγος είναι αρνητική για x0 = (a−1)/(1−θ) και τελικά η h μεγιστοποιείται στο x0 ( 0)(,0)( 0 ∞→↓ →→ xx xhxh ). Άρα μπορούμε ως c να θεωρήσουμε το

θθθ )(11

11)(

)1(1

0 aeaahxhc

aa

Γ⎟⎠⎞

⎜⎝⎛−−

=⎟⎠⎞

⎜⎝⎛−−

==−−−

.

Ως βοηθητική κατανομή λοιπόν μπορούμε να χρησιμοποιήσουμε οποιαδήποτε εκθε-τική κατανομή με παράμετρο θ < 1. Επειδή όμως ο μέσος αριθμός επαναλήψεων για την παραγωγή ενός αριθμού με τη μέθοδο αυτή είναι c, προφανώς είναι προτιμότερο να χρησιμοποιήσουμε το θ < 1 που ελαχιστοποιεί το c = c(θ) ή ισοδύναμα ελαχιστο-ποιεί το ac −− −= 11 )1()(' θθθ . Επειδή,

aaac

dd a

aa 10)1(1)1()1)(1()(' 22

111

=⇔=−−

=−−−−−

= −−−−

θθθθ

θθθθθ

θ

και 1/a < 1 , 0)/1('2

2>ac

ddθ

, το c θα ελαχιστοποιείται για θ = 1/a. Άρα, ως βοηθητική κατανομή θα χρησιμοποιήσουμε την εκθετική με παράμετρο θ = 1/a (δηλαδή την εκ-θετική που έχει ίδια μέση τιμή με την γάμμα G(a,1) που θέλουμε να παράγουμε) και ως σταθερά c την

)()/1)((/111 )1()1(1

aea

aae

aac

aaaa

Γ=

Γ⎟⎠⎞

⎜⎝⎛−−

=−−−−−

.

Page 12: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 37

(η οποία είναι περίπου ίση με π2/)1( −ae για μεγάλο α).

Άρα τελικά, ο αντίστοιχος αλγόριθμος παραγωγής τυχαίων αριθμών Χ από την G(a,λ) θα είναι o εξής:

ΒΗΜΑ 1. Παράγουμε U1 ~ U(0,1) και θέτουμε 1lnUaY −= (δηλ. Υ ~ Exp(1/a)) ΒΗΜΑ 2. Παράγουμε U2 ~ U(0,1).

ΒΗΜΑ 3. Εάν ( ) 1/12 /

)()( −−=≤

aaY aYeYcgYfU τότε θέτουμε Ζ = Y και πάμε στο 4.

Εάν όχι, επιστρέφουμε στο 1.

ΒΗΜΑ 4. Θέτουμε Χ = Ζ / λ.

Ή πιο σύντομα, (παρατηρώντας και ότι 11/1 ln/ UeUaYe aY −=− ):

ΒΗΜΑ 1. Παράγουμε U1,U2 ~ U(0,1)

ΒΗΜΑ 2. Εάν ( ) 1112 ln −−≤ aUeUU τότε θέτουμε X = 1lnUa

λ− και σταματάμε.

Εάν όχι, επιστρέφουμε στο 1.

Έστω π.χ. ότι επιθυμούμε να παράγουμε n = 100 τυχαίους αριθμούς από την κατανομή G(3.5, 2.5). Υλοποιώντας των παραπάνω αλγόριθμο μέσω του Mathe-matica θα έχουμε:

n=100;a=3.5;l=2.5;randomnumbers=Table[0,n];i=1; While[i<=n,U1=Random[];U2=Random[]; If[U2<(-Exp[1]*U1*Log[U1])^(a-1), randomnumbers[[i]]=-a*Log[U1]/l;i=i+1] ]; Print[randomnumbers]

1.66028, 0.663062, 0.39484, 0.346407, 3.26541, 0.687781, 0.526424, 1.21374, 1.60668, 0.915463, 1.24417, 0.450985, 0.951549, 0.224422, 1.55991, 1.22235, 0.71666, 0.230536, 0.812158, 2.50197, 0.612735, 0.935513, 1.324, 0.658876, 1.31068, 2.09035, 1.62573, 1.04256, 1.22069, 2.38856, 1.01552, 1.27912, 1.21661, 2.42915, 0.496354, 1.15349, 1.7655, 1.64593, 2.09185, 1.88545, 1.14065, 1.52717, 0.943396, 1.18685, 0.490022, 0.565869, 1.67141, 1.79908, 0.936322, 1.45204, 1.47546, 2.07949, 0.438954, 0.979487, 1.60722, 0.53655, 0.878214, 1.4075, 1.65049, 1.43881, 1.52971, 1.47483, 1.48447, 2.47809, 1.36331, 1.55775, 0.691499, 0.36562, 0.715534, 2.10313, 2.17894, 0.636064, 1.85742, 1.82411, 0.556717, 0.482756, 0.550899, 1.25047, 1.2501, 0.394886, 1.4012, 3.28322, 1.20144, 1.36487, 2.04141, 2.16077, 2.05501, 1.48855, 2.41245, 0.255153, 0.669839, 1.11228, 2.11092, 1.9885, 2.58421, 1.25427, 1.27256, 0.934222, 1.52406, 1.30925

Ο μέσος αριθμός επαναλήψεων για την παραγωγή κάθε αριθμού στη συγκεκριμένη περίπτωση θα είναι

≈Γ

=−−−−

)5.3(5.3

)(

)15.3(5.3)1( ea

eacaa

1.98119 (Γ(3.5) = π⋅⋅⋅ 5.05.15.2 )

Όπως και παραπάνω, μπορούμε να δούμε πως το ιστόγραμμα συχνοτήτων ενός μεγά-λου δείγματος (n = 10000) από την G(3.5, 2.5) προσεγγίζει την σ.π.π. της G(3.5, 2.5):

<<Graphics`Graphics`; h = Histogram[randomnumbers, HistogramScale -> 1]; p = Plot[λ^a*x^(a - 1)*Exp[-λ*x]/Gamma[a], x, 0, 3*a/λ]; Show[h, p];

Page 13: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 38

1. 2. 3. 4. 5. 6. 7.

0.1

0.2

0.3

0.4

0.5

0.6

Επίσης, μπορούμε να συγκρίνουμε την συνάρτηση κατανομής της G(3.5, 2.5) με την εμπειρική συνάρτηση κατανομής του δείγματος (εδώ, n = 1000):

a = 3.5; λ = 2.5; sr = Sort[randomnumbers]; ta = Table[sr[[i]], i/1000., i, 1, 1000]; L = ListPlot[ta]; p = Plot[Integrate[λ^a*x^(a-1)*Exp[-λ*x]/Gamma[a],x,0,t] ,t,0,3*a/λ]; Show[L, p];

1 2 3 4 5

0.2

0.4

0.6

0.8

1

ΣΤ. Η κανονική κατανομή με τη μέθοδο απόρριψης. Τυχαίοι αριθμοί από την κα-νονική κατανομή Ν(μ,σ2) είναι πολύ χρήσιμοι γιατί εμφανίζονται σε αρκετές εφαρμο-γές. Σε αυτή την παράγραφο θα δούμε πως μπορούμε να παράγουμε τέτοιους αριθ-μούς χρησιμοποιώντας τη μέθοδο της απόρριψης. Αρχικά παρατηρούμε ότι αρκεί να επιτύχουμε την παραγωγή τυχαίων αριθμών από την N(0,1) διότι αν Ζ ~ Ν(0,1) τότε μ + σΖ ~ Ν(μ,σ2). Υπενθυμίζεται ότι η Ν(0,1) έχει σ.π.π.:

2/2

21)( xex −=π

φ , x ∈ R .

Η συγκεκριμένη σ.π.π. είναι γνήσια θετική σε όλο τον άξονα των πραγματικών και συνεπώς δεν μπορούμε άμεσα να χρησιμοποιήσουμε ως βοηθητική την εκθετική κα-τανομή όπως π.χ. στην περίπτωση της κατανομής γάμμα. Για τον λόγο αυτό, θα πρέ-πει να χρησιμοποιήσουμε έναν έμμεσο τρόπο. Αρχικά παρατηρούμε ότι αν Ζ ~ Ν(0,1) τότε η απόλυτη τιμή της |Ζ| θα έχει σ.π.π. f :

Page 14: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 39

))()(()Pr()|Pr(|)()( || xxdxdxZx

dxdxZ

dxdxfxf Z −Φ−Φ=≤≤−=≤==

0,22)(2)1)(2( 2/2

≥==−Φ= − xexxdxd x

πφ ,

η οποία είναι γνήσια θετική μόνο για x ≥ 0. Συνεπώς, μπορούμε να διερευνήσουμε αν είναι δυνατή η παραγωγή τυχαίων αριθμών από τη κατανομή της |Ζ| (με σ.π.π. f ) βα-σιζόμενοι στην εκθετική κατανομή Exp(θ). Αρκεί να υπάρχει σταθερά c < ∞ η οποία να ικανοποιεί την σχέση

0,2

2)()()(

2/2/22 22

>≤===−

xcee

e

xgxfxh

xx

x

x

πθθ

θ

θπ .

Είναι πολύ εύκολο να διαπιστώσουμε ότι η h μεγιστοποιείται στο x = θ και συνεπώς θέτουμε

πθθ

θ

22)()(max

2/

0

2

ehxhcx

===>

,

το οποίο με τη σειρά του ελαχιστοποιείται όταν θ = 1 (έτσι ώστε να έχουμε ελάχιστο αριθμό επαναλήψεων του αλγορίθμου). Άρα είναι δυνατή η παραγωγή τυχαίων αριθ-μών με τη μέθοδο της απόρριψης από την κατανομή με σ.π.π. f . Τελικός μας όμως σκοπός είναι η παραγωγή αριθμών από την Ν(0,1). Παρατηρούμε λοιπόν ότι αν W είναι μία τ.μ. με σ.π.π. την f και Ι μία δίτιμη τ.μ. (ανεξ. από την W) με Pr(I = 1) = 1 − Pr(I = −1) = 0.5, τότε η τ.μ. Χ = ΙW είναι τυπική κανονική. Πράγματι,

)1Pr()1|Pr()1Pr()1|Pr()Pr()Pr( −=−=≤+==≤=≤=≤ IIxIWIIxIWxIWxX

⎩⎨⎧

<−<−

≥≤+=−<−+≤=

0)),Pr(1(0)),Pr(1(

))Pr(1)(Pr(21

2121

xxWxxW

xWxW

και συνεπώς,

Rxexxf

xxfxX

dxdxf x

W

WX ∈=

⎩⎨⎧

<−

≥=≤= − ,

21

0),(0),(

)Pr()( 2/

2121

2

π

Συνοψίζοντας, ο αντίστοιχος αλγόριθμος παραγωγής τυχαίων αριθμών Χ από την N(μ,σ2) θα είναι o εξής:

ΒΗΜΑ 1. Παράγουμε U1 ~ U(0,1) και θέτουμε 1lnUY −= (δηλ. Υ ~ Exp(1))

ΒΗΜΑ 2. Παράγουμε U2 ~ U(0,1).

ΒΗΜΑ 3. Εάν 2/)1(2

2

)()( −−=≤ Ye

YcgYfU τότε θέτουμε W = Y και πάμε στο 4. Εάν όχι, επι-

στρέφουμε στο 1.

ΒΗΜΑ 4. Παράγουμε U3 ~ U(0,1) και θέτουμε Z = W αν U3 ≥ 0.5 ή Z = −W αν U3 < 0.5. ΒΗΜΑ 5. Θέτουμε Χ = μ + σΖ (Χ ~ Ν(μ,σ2))

Ή πιο σύντομα, (παρατηρώντας και ότι Z = sgn(U3−0.5)W):

ΒΗΜΑ 1. Παράγουμε U1, U2, U3 ~ U(0,1). ΒΗΜΑ 2. Εάν 2

12 )ln1(ln2 UU +−≤ τότε θέτουμε 13 ln)5.0sgn( UUX −+= σμ και στα-ματάμε. Εάν όχι, επιστρέφουμε στο 1.

Page 15: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 40

Ο μέσος αριθμός επαναλήψεων για την παραγωγή ενός αριθμού είναι

≈==π2

2)1(2/1ehc 1.31549.

Έστω π.χ. ότι επιθυμούμε να παράγουμε n = 100 τυχαίους αριθμούς από την κατανο-μή N(2,4). Υλοποιώντας τoν παραπάνω αλγόριθμο μέσω του Mathematica θα έχουμε:

n = 100; μ = 2; σ = 2; randomnumbers = Table[0, n]; Do[repeat = True; While[repeat, U1=Random[]; U2=Random[]; U3=Random[]; If[2*Log[U2] < -(1 + Log[U1])^2, repeat = False] ]; randomnumbers[[i]] = μ + σ*Sign[U3 - 0.5]*Log[U1]; , i, 1, n]; Print[randomnumbers]

6.05944, 5.13896, 1.99975, 4.9995, 0.825598, -2.71307, -0.443652, 4.00613, 1.48317, -1.44919, 2.47897, 2.59286, 1.62236, 10.6031, 2.74569, 1.20387, 0.652295, 1.08438, 2.30433, 2.22001, 4.13486, 4.19229, 0.740321, 4.12148, 4.00765, 2.73269, 0.962144, -1.16822, 4.4408, 3.17613, 2.90473, 2.48433, 2.22367, 0.164222, 3.43868, 2.60604, -1.80435, 2.66497, -0.462671, 2.79025, 1.69255, 1.57014, 5.36012, 2.10971, 5.42354, 1.15321, 2.27942, 4.98451, 3.16328, -0.136056, 4.73969, 2.07309, 4.58561, 1.20622, -2.02751, 3.45213, -2.06747, 1.60846, -0.248557, -6.68284, 2.96751, -2.18501, -5.48496, -1.08914, 2.74364, 2.39905, 6.60052, -0.184928, 1.64183, 2.50478, 1.4487, 9.93836, 2.40647, 3.34947, 4.94307, -7.30136, -1.38475, -1.99128, 2.58133, 1.62462, 0.754796, -0.226502, 3.67189, 1.50569, 1.69772, 0.475035, 1.76521, 9.43132, 6.37221, 6.0192, 2.44655, 4.29628, 5.86359, 0.803598, 6.08335, 1.3943, 3.92414, 1.14738, 5.2172, 3.66751

Μπορούμε επίσης να δούμε πως το ιστόγραμμα συχνοτήτων ενός μεγάλου δείγματος (n = 10000) από την N(2, 4) προσεγγίζει την σ.π.π. της N(2, 4):

<<Graphics`Graphics`; h = Histogram[randomnumbers, HistogramScale -> 1]; p = Plot[Exp[-(x - μ)^2/(2*σ^2)]/(2*Pi*σ^2)^0.5 , x, μ - 4*σ, μ + 4*σ]; Show[h, p];

-5. -2.5 0. 2.5 5. 7.5 10.

0.05

0.1

0.15

0.2

Τέλος, μπορούμε να συγκρίνουμε την συνάρτηση κατανομής της Ν(2, 4) με την ε-μπειρική συνάρτηση κατανομής του δείγματος (εδώ, n = 1000):

sr = Sort[randomnumbers]; ta = Table[sr[[i]], i/1000., i, 1, 1000]; L = ListPlot[ta]; p = Plot[ Integrate[Exp[-(x - μ)^2/(2*σ^2)]/(2*Pi*σ^2)^0.5 ,x, -Infinity, t], t, μ - 4*σ, μ + 4*σ]; Show[L, p];

Page 16: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 41

-5 -2.5 2.5 5 7.5 10

0.2

0.4

0.6

0.8

1

Ζ. Η πολική (ή Box-Muller) μέθοδος παραγωγής κανονικών τ.μ. Μία άλλη μέθο-δος παραγωγής κανονικών τ.μ. είναι η γνωστή ως πολική μέθοδος. Η μέθοδος αυτή βασίζεται στον μετασχηματισμό σε πολικές συντεταγμένες μιας διδιάστατης κανονι-κής (μετασχηματισμός Box-Muller). Συγκεκριμένα, αν Χ,Υ είναι ανεξάρτητες τ.μ. από την Ν(0,1) με σ.π.π

)(21

21

21

),(

2222

21

21

21)()(),(

yxyx

YXYX eeeyfxfyxf+−−−

===πππ

, x, y∈R,

τότε οι πολικές συντεταγμένες (R2,Θ) (R:ακτίνα, Θ:γωνία) του σημείου (Χ,Υ) στο επί-πεδο, αποδεικνύεται ότι είναι ανεξάρτητες τ.μ. με R2~ Exp(1/2) και Θ ~ U(0,2π).

(X, Y)R

Θ

0

Ας δούμε τις λεπτομέρειες της μεθόδου αυτής. Είναι γνωστό ότι η θέση (Χ,Υ) ενός σημείου στο επίπεδο μπορεί να καθοριστεί μονοσήμαντα2 και από το ζεύγος (R2,Θ) όπου R είναι η απόσταση του σημείου από την αρχή των αξόνων και Θ η γωνία που σχηματίζει ο οριζόντιος άξονας με την ευθεία που περνάει από την αρχή των αξόνων και το σημείο. Συγκεκριμένα, αν (Χ,Υ) είναι οι καρτεσιανές συντεταγμένες του ση-μείου, τότε οι πολικές του συντεταγμένες θα είναι

)/arctan(,222 YXΘYXR =+= και αντίστροφα,

ΘRYΘRX sin,cos == .

Όπως αναφέρθηκε και παραπάνω, αν οι ανεξάρτητες τ.μ. Χ, Υ ~ Ν(0,1), τότε και οι τ.μ. R2, Θ είναι ανεξάρτητες και μάλιστα R2 ~ Exp(1/2) και Θ ~ U(0,2π). Πράγματι, θεωρώντας τον μετασχηματισμό

))/arctan(,()),(),,((),( 2221 yxyxyxgyxgr +==θ ( g:R2\(0,0) → (0,∞)×[0,2π) )

2 Εκτός από το σημείο (0,0), το οποίο όμως έχει μηδενική πιθανότητα να εμφανιστεί.

Page 17: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 42

με αντίστροφο μετασχηματισμό τον )sin,cos()),(),,((),( 21 θθθθ rrrhrhyx == , προκύπτει (βλέπε υποσημείωση3) ότι η σ.π.π. του ζεύγους (R2, Θ) θα είναι

θ

θθθθ∂∂

∂∂

∂∂

∂∂

⋅=22

11

2 )),(),,((),( 21),(),( hr

h

hrh

YXΘR rhrhfrf

θθθθ

θθθ

θ

sinsincoscos

)sin,cos(2

1

),( rrrr

rrf hr

hrh

YX∂∂

∂∂

∂∂

∂∂

⋅=

=θθθθ

πθθ

cossinsincos

21

2/12/121

2/12/121)sincos(

21 22

rrrr

err

−+− −

)sinsincoscos(21 2/12/1

212/12/1

212 θθθθ

πrrrre

r

⋅+⋅⋅= −−−

)()(21

21

22 θ

π ΘR

r

frfe ⋅=⋅=−

, r > 0, θ∈[0,2π).

Άρα, R2 ~ Exp(1/2), Θ ~ U(0,2π) και R2, Θ ανεξάρτητες. Συνεπώς, αν πάρουμε τυχαία ένα σημείο στο επίπεδο με πολικές συντεταγμένες (R,Θ) ώστε R2 ~ Exp(1/2), Θ ~ U(0,2π) ανεξάρτητες τ.μ., τότε το σημείο αυτό έχει καρτεσιανές συντεταγμένες (Χ,Υ) = (RcosΘ, RsinΘ) οι οποίες κατανέμονται στο επίπεδο σύμφωνα με τη διδιάστατη τυ-πική κανονική. Η συγκεκριμένη παρατήρηση μας υποδεικνύει έναν εναλλακτικό τρό-πο παραγωγής τυχαίων αριθμών από την κανονική κατανομή χρησιμοποιώντας τυ-χαίους αριθμούς από την εκθετική και την ομοιόμορφη. Ο σχετικός αλγόριθμος πα-ραγωγής τυχαίων αριθμών από την Ν(μ,σ2), σύμφωνα με τα παραπάνω, θα είναι:

ΒΗΜΑ 1. Παράγουμε U1 ~ U(0,1) και θέτουμε 12 ln2 UR −= (δηλ. Υ ~ Exp(1/2))

ΒΗΜΑ 2. Παράγουμε U2 ~ U(0,1) και θέτουμε Θ = 2πU2 (δηλ. Θ ~ U(0,2π)) ΒΗΜΑ 3. Θέτουμε X = RcosΘ και Υ= RsinΘ. (Χ, Υ ~ Ν(0,1)) ΒΗΜΑ 4. Θέτουμε Χ1 = μ + σΧ, Χ2 = μ + σΥ.

Η πιο συνοπτικά:

ΒΗΜΑ 1. Παράγουμε U1 , U2~ U(0,1) ΒΗΜΑ 2. Θέτουμε )2sin(ln2),2cos(ln2 212211 UUXUUX πσμπσμ −+=−+= .

Είναι αξιοπρόσεκτο το γεγονός ότι ο παραπάνω αλγόριθμος παράγει δύο τυχαίους αριθμούς από την Ν(μ,σ2) και χρειάζεται μόνο δύο τυχαίους αριθμούς από την ομοιό-

3 Υπενθυμίζεται ότι αν ένα τυχαίο διάνυσμα X = (X1,X2,...,Xn) με συνεχή n-διάστατη κατανομή έχει σ.π.π. fX(x) > 0 για x∈A⊆Rn, και ο μετασχηματισμός y = g(x) (g:A→Β⊆Rn) είναι αντιστρέψιμος (g: 1-1, επί) με αντίστροφο μετασχηματισμό τον x = h(y) (h:B→A), τότε το τυχαίο διάνυσμα Υ = g(X) έχει σ.π.π.

dydhyhy XY ⋅= ))(()( ff

όπου |dh/dy| είναι το απόλυτο της ορίζουσας του (n×n) πίνακα Jacobi που ως i,j στοιχείο έχει την με-ρική παράγωγο ji yh ∂∂ / , i=1,2,...,n, j=1,2,...,n (αρκεί φυσικά να υπάρχουν και να είναι συνεχείς όλες

οι μερικές παράγωγοι ji yh ∂∂ / ).

Page 18: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 43

μορφη. Συγκρινόμενος με τον αλγόριθμο που προκύπτει από τη μέθοδο αντιστροφής, ο συγκεκριμένος απαιτεί λιγότερα βήματα αλλά προϋποθέτει τον υπολογισμό ενός ημίτονου και ενός συνημίτονου (που θεωρείται χρονοβόρος). Για το λόγο αυτό έχει προταθεί μία τροποποίηση του παραπάνω αλγορίθμου ώστε να παρακάμπτονται οι συγκεκριμένοι υπολογισμοί. Συγκεκριμένα, αν παράγουμε ζεύγη V1, V2 ανεξάρτητων τ.μ. ώστε V1, V2 ~ U(−1,1) μέχρι να βρεθεί ότι 12

22

1 ≤+VV (δηλαδή μέχρι το (V1,V2) να ανήκει στον μοναδιαίο κύκλο), τότε είναι εύκολο να δειχθεί ότι το σημείο (V1,V2) είναι ομοιόμορφα κατανεμημένο στον μοναδιαίο κύκλο. Συνεπώς, αν (R΄,Θ΄) οι πολι-κές του συντεταγμένες, θα ισχύει ότι

θ

θθθθ∂∂

∂∂

∂∂

∂∂

⋅=22

11

212 )),(),,((),( 21),()','( h

rh

hrh

VVΘR rhrhfrf

)1,0(),2,0(,21

21)sin,cos(),( 21

∈∈=⋅= rrrf VV πθπ

θθ .

και άρα οι R΄,Θ΄ είναι ανεξάρτητες τ.μ. με 2R′ ~ U(0,1), Θ΄ ~ U(0,2π). Στον παραπά-νω αλγόριθμο είδαμε ότι χρειαζόμαστε το ημίτονο και το συνημίτονο μιας ομοιόμορ-φα κατανεμημένης στο (0,2π) γωνίας. Η Θ΄ είναι μία τέτοια γωνία, και μπορούμε να υπολογίσουμε το ημίτονο και συνημίτονό της εύκολα επειδή γνωρίζουμε τις καρτεσι-ανές συντεταγμένες (V1,V2) του σημείου που προέρχεται. Συγκεκριμένα, θα είναι (βλ. σχήμα)

22

21

112

22

1

22 cos,sinVV

VRVΘ

VV

VRVΘ

+=′

=′+

=′

=′

0 V1

V2 Rθ

1

-1

-11

Άρα συνοψίζοντας, αν παράγουμε V1,V2 ομοιόμορφα κατανεμημένους στο (−1,1) τυ-χαίους αριθμούς έως ότου το (V1,V2) βρεθεί εντός του μοναδιαίου κύκλου, και στη συνέχεια θέσουμε

22

21

2 VVR +=′ , 2

22

1

12

22

1

2 cos,sinVV

VΘVV

VΘ+

=′+

=′

τότε οι ΘR ′′, είναι ανεξάρτητες με 2R′ ~ U(0,1), και Θ′~ U(0,2π), δηλαδή μπορούν να χρησιμοποιηθούν στον αλγόριθμο που παρουσιάσαμε παραπάνω στη θέση των U1 και Θ αντίστοιχα. Ο νέος αλγόριθμος τώρα θα έχει τη μορφή

ΒΗΜΑ 1. Παράγουμε U1 , U2 ~ U(0,1) και θέτουμε 12,12 2211 −=−= UVUV . ΒΗΜΑ 2. Αν 12

22

1 ≤+VV τότε προχωράμε στο 3. Διαφορετικά, πάμε πάλι στο 1. ΒΗΜΑ 3. Θέτουμε 2

22

12 VVR += ,

ΒΗΜΑ 4. Θέτουμε RVRX

RVRX 22

212

1 ln2,ln2 −+=−+= σμσμ .

Page 19: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 44

Η παραπάνω μέθοδος καλείται πολική μέθοδος. Ο νέος αυτός αλγόριθμος είναι τώρα φανερά καλύτερος από τον αντίστοιχο της μεθόδου απόρριψης. Χρειάζεται κατά μέσο όρο 4/π ≈ 1.273 επαναλήψεις ( 4/)1Pr( 2

22

1 π=≤+VV ) και για κάθε δύο τυχαίους α-ριθμούς από την ομοιόμορφη, παράγει δύο τυχαίους αριθμούς από την κανονική. Η μέθοδος της απόρριψης χρειαζόταν κατά μέσο όρο 1.31549 επαναλήψεις και για κάθε τρεις τυχαίους αριθμούς από την ομοιόμορφη, παρήγαγε έναν τυχαίο αριθμό από την κανονική.

Έστω π.χ. ότι επιθυμούμε να παράγουμε και πάλι n = 100 τυχαίους αριθμούς από την κατανομή N(2,4). Υλοποιώντας των παραπάνω αλγόριθμο μέσω του Mathe-matica θα έχουμε:

n = 100; μ = 2; σ = 2; randomnumbers = Table[0, n]; Do[repeat = True; While[repeat, U1=Random[];U2=Random[]; V1 = 2 U1-1; V2 = 2 U2-1; R2 = V1^2 + V2^2; If[R2 < 1, repeat = False] ]; randomnumbers[[2i - 1]] = μ + σ*V1*(-2*Log[R2]/R2)^0.5; randomnumbers[[2i]] = μ + σ*V2*(-2*Log[R2]/R2)^0.5; , i, 1, n/2]; Print[randomnumbers];

1.52282, 0.941032, 3.73299, 3.42321, 1.35582, 0.808474, 1.46857, -3.18707, 1.92706, 2.96438, 3.24337, 0.00171094, 2.40271, 1.21727, 0.452057, 1.82027, -0.393663, 4.99949, 4.97537, 1.05589, 1.95655, 2.66958, 0.743877, -1.94439, 3.67209, -0.213289, 0.830964, 1.06787, 1.23036, 2.87065, 3.73759, -0.143765, 2.27026, 6.44388, 4.79481, 2.65517, 1.66594, 3.62306, -0.178127, 1.07442, -0.341851, 3.69997, 2.62761, 4.74938, 4.14427, 2.21821, 2.46679, -0.633348, 3.55883, 1.17508, 4.70405, 3.19368, 3.55277, 2.09953, 0.049626, 4.65581, 3.00978, 0.664971, 1.03754, 4.75671, 0.895513, -2.09666, 1.26464, 1.60455, 2.72869, 4.59794, 2.09614, 0.247999, 5.60591, 1.96716, 5.22161, 1.63964, 1.01166, 4.85912, 3.2025, -1.78377, 4.61117, 3.04549, 2.97424, 2.03445, -1.40011, 2.35793, 2.00865, 0.647457, 1.87989, 0.762279, 0.94331, 1.44499, 1.02975, -0.983604, 0.921344, 1.46696, -1.69131, 4.9269, -0.847253, 1.065, 3.33241, 1.05741, 1.49305, 4.78957

Μπορούμε και πάλι να δούμε πως το ιστόγραμμα συχνοτήτων ενός μεγάλου δείγμα-τος (n = 10000) από την N(2, 4) προσεγγίζει την σ.π.π. της N(2, 4):

<<Graphics`Graphics`; h = Histogram[randomnumbers, HistogramScale -> 1]; p = Plot[Exp[-(x - μ)^2/(2*σ^2)]/(2*Pi*σ^2)^0.5 , x, μ - 4*σ, μ + 4*σ]; Show[h, p];

-5. -2.5 0. 2.5 5. 7.5

0.05

0.1

0.15

0.2

Τέλος, μπορούμε και πάλι να συγκρίνουμε την συνάρτηση κατανομής της Ν(2, 4) με την εμπειρική συνάρτηση κατανομής του δείγματος (εδώ, n = 1000):

Page 20: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 45

sr = Sort[randomnumbers]; ta = Table[sr[[i]], i/1000., i, 1, 1000]; L = ListPlot[ta]; p = Plot[ Integrate[Exp[-(x - μ)^2/(2*σ^2)]/(2*Pi*σ^2)^0.5 ,x, -Infinity, t], t, μ - 4*σ, μ + 4*σ]; Show[L, p];

-5 -2.5 2.5 5 7.5 10

0.2

0.4

0.6

0.8

1

Παρατήρηση. Αξίζει να αναφέρουμε ότι αρκετοί ερευνητές και υπολογιστικά προ-γράμματα χρησιμοποιούν κάποιες άλλες (προσεγγιστικές) μεθόδους για την παραγω-γή τυχαίων αριθμών από την N(0,1):

(i) Παράγουμε 12 τυχαίους αριθμούς U1,U2,…,U12 από την U(0,1) και στη συνέχεια θέτουμε

612

1−=∑

=iiUX .

Από το κεντρικό οριακό θεώρημα αποδεικνύεται εύκολα ότι η παραπάνω τ.μ. ακο-λουθεί (προσεγγιστικά) Ν(0,1). Η μέθοδος αυτή δεν είναι ακριβής αλλά υλοποιείται πολύ εύκολα (απαιτείται μόνο πρόσθεση).

(ii) Μία άλλη μέθοδος βασίζεται στη μέθοδο της αντιστροφής, δηλαδή από το γεγο-νός ότι Φ-1(U) ~ N(0,1) αν U ~ U(0,1) (Φ: σ.κ. της Ν(0,1)). Μπορεί να μην υπάρχει κλειστός τύπος για την Φ-1, αλλά μπορούν εναλλακτικά να χρησιμοποιηθούν αρκετά ακριβείς προσεγγιστικές εκφράσεις. Συγκεκριμένα, για 0.5 ≤ u ≤ 1, αποδεικνύεται ότι

)1log(2,1

)( 221

101 uttbtb

taatu −−=+++

−≈Φ− ,

για συγκεκριμένες σταθερές a0,a1,b1,b2. Το σφάλμα στον παραπάνω τύπο είναι μικρό-τερο του 0.003. Το πλεονέκτημα του παραπάνω αλγορίθμου είναι ότι είναι αρκετά γρήγορος.

Παρατήρηση. Σε αρκετές περιπτώσεις είναι αναγκαία η παραγωγή τυχαίων αριθμών από μία πολυδιάστατη κανονική κατανομή. Συγκεκριμένα, έστω ότι επιθυμούμε την παραγωγή τυχαίων διανυσμάτων Χ = (Χ1,Χ2,...,Χk) από μία k-διάστατη κανονική κα-τανομή με διάνυσμα μέσων τιμών μ = (μ1,μ2,...,μk) και πίνακα διασποράς Σ = [Cov(Xi,Xj)]i,j. Η παραγωγή τέτοιων τυχαίων διανυσμάτων μπορεί να γίνει χρησιμο-ποιώντας k ανεξάρτητες τ.μ. Ζ1, Ζ2, ..., Ζk ~ Ν(0,1). Συγκεκριμένα, είναι εύκολο να αποδειχθεί ότι αν Ζ ~ Ν(0,Ι) (όπου Ι: μοναδιαίος πίνακας) το τ.δ.

Χ = Σ1/2Ζ + μ ~ Ν(μ,Σ).

Page 21: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 46

Η ρίζα του Σ που εμφανίζεται παραπάνω είναι Σ1/2 = PΛ1/2P-1 όπου P είναι ο πίνακας των ιδιοδιανυσμάτων του Σ και Λ ο πίνακας που έχει στη διαγώνιο τις ιδιοτιμές του Σ (από το θεώρημα φασματικής ανάλυσης, Σ = PΛP-1) ενώ Λ1/2 = diag[λ1/2]. Στην περί-πτωση που

⎥⎦

⎤⎢⎣

⎡=

2

1

vccv

Σ ,

(διδιάστατη κανονική) τότε υπολογίζεται εύκολα ότι ο Σ1/2 είναι ίσος με

⎥⎦

⎤⎢⎣

⎡++−++−−

−+−+++−=

)()()(2)(2)()(

221

21221112

122122112/1

avvaavvaaacaacavvaavva

όπου avvaavvacvva ++=−+=+−= 21221122

21 ,,4)( . Για μεγαλύτερες δια-στάσεις μπορούμε να χρησιμοποιήσουμε το Mathematica για να βρούμε τον Σ1/2, π.χ.:

Sigma = 1, 1, 1, 1, 3, 2, 1, 2, 2; l = Eigenvalues[N[Sigma]]; W = Transpose[Eigenvectors[N[Sigma]]]; SqRootSigma = W.DiagonalMatrix[l^0.5].Inverse[N[W]]

0.871119, 0.301417, 0.387685, 0.301417, 1.56022, 0.689101, 0.387685, 0.689101, 1.17254

Στη συνέχεια παράγουμε k το πλήθος τυχαίους αριθμούς Ζ1,...,Ζk ~ Ν(0,1) (π.χ. με τη μέθοδο Box-Muller) και εκτελούμε τον μετασχηματισμό Χ = Σ1/2Ζ + μ. Το τυχαίο διάνυσμα Χ ~ Ν(μ,Σ).

Ασκήσεις

1. Περιγράψτε κατάλληλες μεθόδους για την παραγωγή τυχαίων αριθμών από τις κα-τανομές με σ.κ. ή σ.π.π.

(α) 10),1/()( ≤≤−= xeexf x , (β) 10,2/)()( 2 ≤≤+= xxxxF ,

(γ) ∞<<−−= xaxxF 0),exp(1)( β (κατανομή Weibull)

(δ) Rxexf x ∈= − ,2

)( ||λλ (διπλή εκθετική), (ε) 0,)( ≥= − xxexf x .

2. Εάν Χ ~ Exp(λ), περιγράψτε έναν αλγόριθμο παραγωγής τυχαίων αριθμών από την δεσμευμένη κατανομή της Χ δεδομένου ότι Χ < α. Χρησιμοποιώντας 10000 τέτοιους αριθμούς εκτιμήστε την δεσμευμένη μέση τιμή Ε(Χ|Χ < α) και συγκρίνετέ την με την ακριβή τιμή.

3. Χρησιμοποιήστε την μέθοδο της σύνθεσης (βλ. Κεφ 2) για να παράγετε τυχαίους αριθμούς από τις κατανομές με σ.κ.

(α) 10,3

)(53

≤≤++

= xxxxxF , (β) 1,0,10,)(11

=≥≤≤= ∑∑==

n

iii

n

i

ii aaxxaxF

4. Έστω ότι μία σ.π.π. μπορεί να γραφεί ως μίξη στη μορφή

∫= dyyfyxfxf YYXX )()|()( | .

Page 22: simulation ch3 v2 - unipi.gr · Boutsikas M.V. (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές

B o u t s i k a s M . V . (2004) Σημειώσεις μαθήματος «Μέθοδοι Προσομοίωσης και Στατιστικές Υπολογιστικές Τεχνικές» 47

Πως μπορούμε να παράγουμε τυχαίους αριθμούς από την κατανομή της Χ όταν είναι δυνατή η παραγωγή τυχαίων αριθμών από την κατανομή της Χ|Υ = y και της Υ; Ως εφαρμογή, αποδείξτε ότι αν Χ|Y = y ~ N(0,n/y) και Υ ~ 2

nχ τότε Χ ~ tn (κατανομή stu-dent με n β.ε.). Χρησιμοποιώντας το γεγονός αυτό, παράγετε τυχαίους αριθμούς από την tn. Πως αλλιώς μπορούμε να παράγουμε αριθμούς από αυτή την κατανομή;

5. Αν είναι δυνατή η παραγωγή τυχαίων αριθμών από τις κατανομές με σ.κ. Fi, i = 1, 2,...,n, πως μπορούμε να παράγουμε τυχαίους αριθμούς από τις κατανομές

(a) ∏=

=n

ii xFxF

1

)()( , (b) ∏=

−−=n

ii xFxF

1

))(1(1)( .

6. (α) Έστω U1, U2, …, Un+m-1 ανεξάρτητες τ.μ. από την U(0,1). Αν συμβολίσουμε με U(1),U(2),…,U(n+m-1) τις διατεταγμένες U1, U2, …, Un+m-1 (U(1): μικρότερη, ... , U(n+m-1): μεγαλύτερη από τις Ui) να αποδείξετε ότι η n-διατεταγμένη τ.μ. U(n) ακολουθεί κατα-νομή Βήτα με παραμέτρους (α = n, b = m). (β) Αν X, Y είναι δύο ανεξάρτητες τ.μ. που ακολουθούν την κατανομή Γάμμα με πα-ραμέτρους (n,1) και (m,1) αντίστοιχα, αποδείξτε ότι η τ.μ. Χ/(Χ+Υ) ακολουθεί κατα-νομή Βήτα με παραμέτρους (α = n, b = m). (γ) Κατασκευάστε δύο προγράμματα (χρησιμοποιώντας το Μathematica) που παρά-γουν τυχαίους αριθμούς από την Βήτα (n,m) χρησιμοποιώντας τις παρατηρήσεις (α) και (β) αντίστοιχα.