Δειγματοληψία από discrete uiform Έστω τυχαία µεταβλητή Θ που ακολουθεί την διακριτή κατανοµή π ϑ = ϑ = π για i i i και π i= i =, σχηµατικά ϑ ~ π ϑ ϑ ϑ 2 = π π2 K π Το samplig scheme για την παραπάνω διακριτή κατανοµή είναι: ( ) sample u ~ U 0, if u π ϑ = ϑ else if u π+ π2 ϑ = ϑ2 M else if u π + π + L + π ϑ = ϑ M 2 i i K else if u π + π + L + π ϑ = ϑ else ϑ = ϑ ed if 2 Πράγµατι σύµφωνα µε το παραπάνω σχήµα δειγµατοληψίας Fi Fi P{ ϑ = ϑi = P π+ L+ πi < U π+ L+ πi = 0 ( < u < ) du = du = πi 4243 4243 F Fi Fi i F i iid Έτσι εάν j ~ ( 0,) u U, j N iid τότε j ~ ϑ π, j N
## plot a discrete distributio: state=c(,2,3,4,5); p=c(0., 0., 0.2, 0.2, 0.4) plot(state, p, type="h", lwd=2, col="red", ylim=c(0,0.5)) poits(state, p, pch=6, cex=, col="black") samplediscrete<-fuctio(n=00, p=c(0., 0., 0.2, 0.2, 0.4), state=c(,2,3,4,5)) { sample<-c() for(i i :N) { s<-0; u<-ruif() for(j i :legth(p)) { s<-s+p[j] if(u<s) {sample<-apped(sample, state[j]); break retur(sample) 2
getsampledistr<-fuctio(sample) { D<-c();P<-c();L<-sample while(legth(l)!= 0){D <- apped(d, L[]); L <- L[L!=L[]] for(i i :legth(d)) { x<-d[i];couter=0 for(j i :legth(sample)) if(x==sample[j]) couter<-couter+ P<-apped(P, couter/legth(sample)) v<-c(d, P) retur(v) > mysample<-samplediscrete() > mysample [] 4 3 5 3 5 3 3 3 5 3 2 5 5 2 2 2 5 2 5 5 4 5 4 3 3 3 2 4 2 4 5 2 5 [38] 2 2 5 5 5 4 2 4 5 3 4 2 3 4 5 4 4 3 3 3 4 4 2 4 5 4 5 2 4 4 4 4 [75] 5 5 3 5 4 4 5 5 5 5 3 5 5 4 3 4 4 4 4 5 3 5 > getsampledistr(mysample) [] 4 3 5 2 [] 0.26 0.8 0.29 0.3 0.4 3
Δειγματοληψία με την μέθοδο του αντίστροφου μετασχηματισμού (Iverse Trasform Method) Συνεχής περίπτωση Εάν θ ~ π ( ) = fθ ( ) και η F Θ ( ) αντιστρέφεται (δηλαδή F Θ : ΘΩ [ 0,] είναι ) τότε u ~ U( 0,) F ( u) ~ π ( ) Το παραπάνω ισχύει διότι θέτοντας Θ= F ( U) Θ FΘ ϑ Θ % θα έχουµε F ( ϑ) { { 0 F ϑ = P F U ϑ = P U F ϑ = < u < du = du = F ϑ. ηλαδή F Θ% Θ Θ Θ 0 % ( ϑ ) F ( ϑ ) και έτσι % F ( U) Θ = Θ iid Έτσι εάν j ~ ( 0,) Θ= ~ Θ u U, j N Θ iid τότε ϑ F ( u ) π j Θ j ~ =, j N Θ Άσκηση είξτε ότι ισχύει και το αντίστροφο. ηλαδή εάν F ( U) Θ U F ( Θ ) Έστω ότι Y = Θ τότε F Θ Θ d d = = Θ 4
( y) dfθ fy ( y) = fθ( FΘ ( y) ), 0 y. dy Επειδή = F F y = F F y F y F y = > { o Θ Θ Θ Θ Θ Θ 0 fθ F y παίρνουµε Y =, 0 = U ( 0,) f y y f y y Y ( Θ ), ειγµατοληψία από την εκθετική κατανοµή λ ( ) x λx = λ = λ ( > 0 ), λ > 0 = { ( > 0) f x Exp x e x F x e x F x = log x, 0 < x< λ Εάν u ~ U( 0,) u ~ U ( 0,) log ( u) ~ Exp( λ ) λ Άσκηση είξτε ότι εάν ~ Exp () τότε Y = / λ ~ Exp( λ ) d fy y Exp y y e y dy = ( λ ) ( λ ) = λ λ y ( > 0) 5
## sample from the expoetial distributio SampleExpoetial<-fuctio(SS, lambda) { v<-c() for(i i :SS) v <- apped(v, (-/lambda)*log(ruif())) retur(v) # here =0000, ad lambda= v<- SampleExpoetial (0000, ) # plot a probability histogram (here freq=false) hist(v, breaks=50, freq=false, ylim=c(0, ), xlim=c(0, 8), mai="=0000, lambda=", col="red") curve(dexp(x, rate = ), col="blue", lwd=3, add=true) # here =0000, ad lambda=3 v<- SampleExpoetial (0000, 3) 6
# plot a probability histogram (here freq=false) hist(v, breaks=50, freq=false, ylim=c(0, 3), xlim=c(0, 2), mai="=0000, lambda=3", col="red") curve(dexp(x, rate = 3), col="blue", lwd=3, add=true) ειγµατοληψία από την Weibull κ ( λx) f x = Wei x λκ, = λκ λx e x> 0, λ> 0 { x κ λ F x = e x> 0 κ F x = log x, 0 < x< λ { / u ~ 0, u ~ 0, log u ~ Wei, λ Εάν U U κ / κ { ( λ κ ) Παρατήρηση Είναι εµφανές ότι Wei ( λ,) = Exp ( λ ) 7
Άσκηση / κ είξτε ότι εάν ~ Exp () τότε Y = ~ Wei( λ, κ ) λ κ d κ ( λ ) ( λ ) ( λ, κ) fy y = Exp y y = Wei y dy ειγµατοληψία από την Pareto λ λc f ( x) = Pa( x λ, c) = ( x> c), λ > 0, c R λ + x λ c F x = x> c x / F x = c x, 0< x< Εάν u ~ U( 0,) u ~ U ( 0, ) u / λ ~ Pa( λ, c) λ λ Άσκηση / λ είξτε ότι εάν ~ Exp () τότε Y = ce ~ Pa( λ, c) d λ log ( y/ c) λ fy ( y) = Exp( λlog ( y/ c) ) ( λlog ( y/ c) ) = e ( λlog ( y/ c) > 0) dy y λ λc = > =, λ + x ( x c) Pa( x λ c) ειγµατοληψία από την Logistic xµ s e f ( x) = Logi( x µ, s) =, x R xµ 2 s s + e 8
F ( x) = + e xµ s µ F x = slog, 0 < x< x u Εάν u ~ U ( 0,) µ s log ~ Logi ( µ, s) Άσκηση Y είξτε ότι εάν ~ Exp () και Y ~ Exp ανεξάρτητες τότε µ s log ~ Logi ( µ, s) Διακριτή περίπτωση ϑ ϑ2 L Εάν ϑ ~ π ( ) = π π2 L και F Θ η αντίστοιχη αθροιστική συνάρτηση κατανοµής ορίζουµε σαν την γενικευµένη αντίστροφη (geeralized iverse) της F Θ ( ) την συνάρτηση F ( u) if ϑ: F ( ϑ) u. Σηµειώστε ότι εάν η ( ) αντιστρέφεται έχουµε Ισχύει ότι Θ { Θ F Θ { ϑ ϑ { ϑ ϑ F u = if : F u = if : F u = F u. Θ Θ Θ Θ u ~ U ( 0,) { Θ ϑi Θ ( ϑi ) Θ ( ϑi) { ϑ Θ ϑ π F u = if : F u ~ Θ FΘ ( ϑi ) { 0 P F U = = P F < U F = < u < du F = F ϑ ϑ = π ϑ = ϑ = π. Θ i Θ i i i FΘ ( ϑ ) i Παράδειγµα Να γίνει δειγµατοληψία από την µε την µέθοδο της αντιστροφής εάν 9
. ~ Geo( p ) 2. ~ NBi(, p ) 3. ~ Bi(, p ). Για την γεωµετρική κατανοµή έχουµε ότι εάν θεωρήσουµε = αριθµός των αποτυχιών έως την πρώτη επιτυχία µε πιθανότητα p, τότε j= 0 x+ ( p) ( p) x x P{ = x = ( p) p, x N 0 F ( x) = P{ = j = p = p { x { + F u = if x : F x u = if x : p u ( ) ( p) log u = if x : x+ log, έτσι ένα δείγµα από την γεωµετρική µε παράµετρο p είναι: log log ( u) ( p) ~ Geo( p), u ~ U ( 0,). x+ iid 2. Γνωρίζουµε ότι: i ~ Geo( p), i ~ (, ) i i NBi p = την αρνητική διωνυµική µε παράµετρο (, p ) είναι: έτσι ένα δείγµα από log ( u ) i iid ~ NBi(, p), ui ( 0, ), log ( ) ~ i i= p U. iid 3. 4. Γνωρίζουµε ότι: i ~ Beroulli ( p) Bi(, p), i i ~ Bi(, p) = Ένα δείγµα από την Beroulli µε παράµετρο p είναι: ( u p) ~ Beroulli ( p) i= < έτσι 0
iid ( ui < p) ~ Bi(, p), ui ~ U ( 0, ), i. i= Άσκηση Να γραφτεί R script που να προσοµοιώνει δείγµα µεγέθους N από την διωνυµική κατανοµή. ## Samplig a vector v ( v v ) ## v ~ Beroulli ( p ) i =,, K N of idepedet Beroulli radom deviates BerSampler<-fuctio(p=0.5, N=00){ v<-c() for(i i :N) if(ruif()<p) v<-apped(v, ) else v<-apped(v, 0) retur(v) ## Here we sample a vector of idepedet biomial radom ## deviates Bi(, pp) BiSampler<-fuctio(p=0.5, =20, N=20000){ v<-c() for(i i :N){ sum<-0 for(j i :) sum<-sum+bersampler(p=p, N=) v<-apped(v, sum) retur(v) getsampledistr<-fuctio(sample){
D<-c();P<-c();L<-sample while(legth(l)!=0){d<-apped(d, L[]); L<-L[L!=L[]] for(i i :legth(d)){ x<-d[i];couter<-0 for(j i :legth(sample)) if(x==sample[j]) couter<-couter+ P<-apped(P, couter/legth(sample)) prit(d);prit(p) plot(d, P, type="h", lwd=2, col="red", ylim=c(0,0.20), xlim=c(0,20)) poits(d, P, pch=6, cex=, col="black") > w<-bisampler(p=0.5, =20, N=40000); getsampledistr(w) > w<-bisampler(p=0.75, =20, N=40000); getsampledistr(w) 2
ειγµατοληψία από διακριτές µίξεις κατανοµών χρησιµοποιώντας την µέθοδο της αντιστροφής Θέλουµε να κάνουµε δειγµατοληψία από την τ.µ. µε CDF όπου οι CDF F j j ~ p F, p > 0, p = j j j j= j= µπορούν να αντιστραφούν Πρώτα θα κάνουµε δειγµατοληψία από την τ.µ. J τέτοια ώστε P{ J = j = pj για j και στην συνέχεια από την τ.µ. J τέτοια ώστε [ = ] ~ ( ) { = {, = = { = { = P x P x J j P J j P x J j j= j= P{ J j P{ j x pjf ( x) j = = = j= j= J j F j Παράδειγµα Να γίνει δειγµατοληψία από την πυκνότητα x 0 2 x f x p e λ λ λ x p λ e x 0 όπου λ i > 0 3 = < +, 2 Παρατηρούµε ότι η πιο πάνω πυκνότητα µπορεί να γραφτεί υπό την µορφή µίξης των λ x λ2 x πυκνοτήτων f ( x) = λ e x< 0 και f ( x) = λ 2 2e x 0
x x λ x λt λ2t e x 0 F ( x) = pλ e ( t < 0) dt+ ( p) λ2 e ( t 0) dt = λ2x ( p) e x 0 λ x e x 0 0 x 0 = p + ( p) λ2x x 0 e x 0 έτσι το σχήµα δειγµατοληψίας γίνεται: iid geerate i ~ U u 0,, i =, 2 log ( u2) u < p λ retur( x) = log ( u2) u p λ 2 Παρατήρηση Όταν p = /2 και λ λ λ2 = = η πυκνότητα της γίνεται είναι η κατανοµή του Laplace ή Double expoetial. λ x f x = e λ για x R που 2 ## sample from the geeralized Double expoetial distributio De(0.5,, ) Dexpoetial<-fuctio(SS=0000, p=0.5, lambda=, lambda2=) { v<-null for(i i :SS) { u<-ruif();u2<-ruif() if(u<p) { v <- apped(v, (/lambda)*log(u2)) else{ 4
v <- apped(v, (-/lambda2)*log(u2)) retur(v) ## The fuctio of the desity of the geeralized Double expoetial distributio DDEP<-fuctio(x, p=0.5, lambda=, lambda2=) { v<-c() for(i i :legth(x)) { if(x[i]<0) { brach<-p*lambda*exp(lambda*x[i]) else { brach<-(-p)*lambda2*exp(-lambda2*x[i]) v<-apped(v, brach) retur(v) 5
## EPERIMENT ## Take a idepedet sample of size SS=0000, from the Double Expoetial distributio De(0.5,,) ## that is: Dexpoetial(SS=0000, p=0.5, lambda=, lambda2=) v<-dexpoetial() # plot the probability histogram of v hist(v, breaks=00, freq=false, ylim=c(0, 0.5), xlim=c(-8, 8), mai="ss=0000, De(0.5,, )", col="red") 6
# Add the graph of the Double Expoetial desity to the probability histogram curve(ddep(x), from=-8,to=8, col="blue", lwd=2, add=true) ## EPERIMENT 2 ## Take a idepedet sample of size SS=0000, from De(/3,, 3) ## that is: Dexpoetial(SS=0000, p=/3, lambda=, lambda2=3) v<-dexpoetial(p=/3, lambda2=3) # plot the probability histogram of v hist(v, breaks=00, freq=false, ylim=c(0, 2), xlim=c(-5, 5), mai="ss=0000, De(/3,, 3)", col="red") # Add the graph of the Double Expoetial desity to the probability histogram curve(ddep(x, p=/3, lambda2=3), from=-5, to=5, col="blue", lwd=2, add=true) 7
Accept Reject Method Ι Θέλουµε να κάνουµε δειγµατοληψία από την f και γνωρίζουµε ότι sup x ( Ω) <, ( Ω ) f x m <, όπου το µέτρο Lebesgue στο R. Έστω u και u ανεξάρτητα δείγµατα από τις <, uiforms µε support τα σύνολα ( Ω ) και ( 0, m ) αντιστοίχως. Εάν ισχύει ότι u f ( u) τότε θα έχουµε ότι u { u f ( u) ~ f u < f ( u) είναι δειγµατοληψία από την uiform που ορίζεται στο χωρίο κάτω από το γράφηµα G της, ~ τότε u f ( ). f <. Στην ουσία αυτό που κάνουµε όταν ισχύει ότι u u U G f f. ηλαδή εάν έχουµε ~ Το accept reject samplig scheme είναι simulate idepedetly ( ) u < f ( u) u ~ U Ω u ~ f u ~ U 0, m 8
Συµβολίζουµε το σύνολο αποδοχής (acceptace regio) ή ενδεχόµενο αποδοχής µε A { ω : U ( ω) f ( U( ω) ) U f ( U) { A = Ω < = < Ω Η πιθανότητα αποδοχής για U ( a, b) Ω = Ω = θα είναι ( A) = { < = { < = U ( ( Ω) ) P P U f U P U f U U u u du ( Ω) ( Ω) = PU { < f ( u) U= udu Ω επειδή U U παίρνουµε P( A ) = P{ U < f ( u) du ( Ω) ( Ω) U < f U m παίρνουµε ότι και επειδή ( Ω) P( A ) = f u du =. m ( Ω) m( Ω) Θα δείξουµε τώρα ότι ( ) { x A u A~ f U A ({ A) P( A) d = {, P( A) P U x P U x U < f U PU = = = PU { xu, < f ( U) U= u ( u ( Ω) ) du P U ( A) ( A) ( Ω) = ( u x) P{ U < f ( u) ( u ( Ω) ) du P U ( Ω) x x f u du = = f u du = F x P( A) m a ( Ω) a δηλαδή PU { x = F ( x) A που αποδεικνύει το ζητούµενο., 9
Παρατήρηση Αναγκαστικά θα πρέπει να έχουµε ( Ω ) < εφόσον u ~ U( ) Ω. Accept Reject Method ΙΙ (ifiite support) Έστω ότι γνωρίζουµε πώς να κάνουµε δειγµατοληψία από την πυκνότητα fy είναι δύσκολο να κάνουµε δειγµατοληψία από την πυκνότητα f ( ). Και οι δύο πυκνότητες έχουν το ίδιο support S δηλαδή S = ( Ω ) = Y( Ω ), που µπορεί όµως να αλλά είναι και άπειρο. Ακόµα υποθέτουµε ότι µπορούµε να βρούµε θετική σταθερά a f ( z) τέτοια ώστε f ( z) a fy ( z), z S, ή ισοδύναµα sup a. Τότε παίρνουµε δείγµα z S f z y από την fy ( ), δηλαδή ~ Y support ( 0, afy ( y )) δηλαδή u y ~ U( 0, a fy ( y) ) αποδεχόµαστε το y σαν δείγµα από την f ( ). Y y f. Στην συνέχεια δείγµα u από την uiform µε. Εάν ισχύει ότι u< f ( y), Ουσιαστικά αυτό που κάνουµε είναι δειγµατοληψία από την uiform που ορίζεται στο χωρίο f που όµως σε αυτήν την περίπτωση µπορεί G f κάτω από το γράφηµα της να έχει άπειρο support. Εάν ( y, u) ~ U( G f ) θα έχουµε ~ το παρακάτω σχήµα δειγµατοληψίας για την f ( ) y f. ηλαδή παίρνουµε y ~ f ( ) u< f ( y) ( Y ) ( ) Y u y ~ U 0, a f y y ~ f 20
Ορίζουµε σαν acceptace regio A Η πιθανότητα αποδοχής είναι ( A ) { ω :[ U Y]( ω) f ( Y( ω) ) [ U Y] f ( Y) { A = Ω < = < Ω. { {[ ] Y {[ ] Y P = P U < f Y = P U Y < f Y Y = y P dy = P U y < f y P dy επειδή U f ( Y) a f ( y) ( A ) 0 Y S < < < παίρνουµε ( y) ( y) ( Y ) P = f y dy = a f y dy = a S f af Y Θα δείξουµε τώρα ότι ( ) { y A S y A~ f Y A ({ A) P( A) d = {, P( A) P Y y P Y y U < f Y PY = = = PY y U< f Y Y= yp dy P ( A) Εάν S ( S, S) S {, Y = είναι ένα ifiite subset του R, το παραπάνω ολοκλήρωµα γίνεται S ( y) y y { { f P Y y A = P U < f y PY dy = fy y dy P( A) P S ( A) a f S Y y = f y dy = f y dy = P y = F y ap ( A) y y S { ( ) S ( ) Άσκηση Να βρεθεί η κατανοµή της τ.µ.. Όπου είναι ο αριθµός των δοκιµών σε ένα σχήµα δειγµατοληψίας AR έως ότου επιτευχθεί acceptace. Επίσης να βρεθεί η µέση τιµή της. 2
Έχουµε δείξει ότι η πιθανότητα αποδοχής είναι P( A ) = P{ U < f ( Y) = a ( ( A )) = µε { ~ Geo P Geo a E x P = x =, x N a a x x = x = x = = a 2 x= a a a x= a a a. Έτσι Majorizig a samplig desity (or uifyig AR schemes I ad II) Έστω ότι θέλουµε να κάνουµε δειγµατοληψία από την πυκνότητα f ( x ) και για κάθε x S ισχύει ότι f ( x) t( x) = ch( x) όπου η h( x ) είναι πυκνότητα. Επειδή f ( x) dx t( x) dx= c h( x) dx c και c= t( x) dx. Εάν ορίσουµε, έχουµε ότι S S S = / θα έχουµε ισοδύναµα f ( x) = cg( x) h( x) και φυσικά g( x) g x f x t x S 0. Τότε δεν είναι δύσκολο να διαπιστώσουµε ότι το παρακάτω σχήµα δειγµατοληψίας ενοποιεί τα σχήµατα δειγµατοληψίας AR I και ΙΙ ( ) ( ) { u g( y) y ~ h u ~ U 0, y A ~ f A = < Για παράδειγµα θέτοντας f ( ) = f ( ), f h ~ h( ) { c h( y) u f ( y) Y ( ) y u y ~ c h y U 0, y A ~ f A = <. = και a = c το σχήµα AR II δίνει f ( x) f ( x) και επειδή g( x) = ch( x) = t ( x) παίρνουµε = { ch ( y ) u < f ( y ) = { u < g ( y) u ~ U( 0,) A όπου, 22
Παράδειγµα 3 Να γίνει AR δειγµατοληψία της τ.µ. µε πυκνότητα f ( x) = 60x ( x) 2 ( 0 < x< ) 60 3 ( ) 2 60 2 ( 5 2 8 3) 60 2 ( 0.6) f x = x x = x x x+ = x x x επειδή f ( 0.6) < 0 έχουµε sup f ( x) = f ( 0.6) όπου ( 0,) x S S =. Έτσι f ( x) t( x) = ch( x) µε t( x) = f ( 0.6) ( 0 < x< ), h( x) 0 ( x ) U( x 0,) 3 2 f ( x) 60x ( x) c= t( x) dx= f ( 0.6) = 2.0736 που δίνουν g( x) 0 ( x ) t( x) 2.0736 S σχήµα δειγµατοληψίας γίνεται Το R Script είναι: ( ) ( ) g( y) y ~ U 0, u ~ U 0, y A ~ f A = < { u mydesity<-fuctio(x) retur(60*x^3*(-x)^2) = < < = και = = < <. Το ( ) sampledesity<-fuctio(ss=00){ thesample<-null for(i i :SS){ repeat{ y<-ruif() u<-ruif() if(u<=mydesity(y)/mydesity(0.6)){break thesample<-apped(thesample, y) 23
retur(thesample) w<-sampledesity(ss=2000) hist(w, freq=false, breaks=30) curve(mydesity(x), add=true, xlim=c(0, ), col="red") Δειγματοληψία από την gamma κατανομή Να γίνει AR δειγµατοληψία της τ.µ. G ~ f ( ) = Ga ( shape = a, rate = λ ) όπου shape=/rate. Πρώτα θα κάνουµε δειγµατοληψία από την fractioal gamma κατανοµή ~ Ga ( shape = α, rate = ) όπου 0< α = a a < Παρατηρούµε ότι: Γ Γ α x f x = x e t x = l x ( α) α, όπου, α 0 l x x x e x x = < < +, διότι εάν 0< x < έχουµε x e x e = supe Γ 0< x< α x α x x ( α) Γ( α), και εάν x έχουµε α x x α x e e x x. Γ ( α) Γ( α) 24
Έστω πυκνότητα h( x) t( x). Τότε h( x) A t( x) = ή ότι A α { x A α + e αeγ α x 0 ( < x< ) + e ( x ) = = A= Γ α + Γ α αe α + e R αe α + e και h( x) = l( x) Έτσι για το AR majorizatio σχήµα δειγµατοληψίας έχουµε: f ( x) t( x) = l x = C h x Γ Θέτοντας α α + e µε C = αeγ ( α ) α x α x 0 ( < < ) + ( ) f x x e x g x = e 0 x x x t x = x x e x = < < +. α έχουµε h( ) ( ) { u g( y) y ~ u ~ U 0, y A ~ f A = < Για δειγµατοληψία από την πυκνότητα h( ), την γράφουµε σαν µίξη των πυκνοτήτων α α x = ( < < ) και h ( x) = e ( x ) δηλαδή h( x) = h ( x) + h ( x) h x x 0 x cdf x 2 α e 2 x ( ) e α e H ( x) = h ( u) du + h ( u) du H x H2 x α + e + = α α + e + α + e όπου H ( x) α x 0< x< = x / = και H ( y) ( y) H y y α και H ( x) 2 = log. 2 x+ e α α + e α + e 2 0 x =, ενώ έχουµε ότι e x µε ## sample from Ga(shape=a, rate=) for 0<a< gammafractio<-fuctio(ss=00, a=0.5) { v<-null for(i i :SS){ 25
while(true){ u<-ruif(); u2<-ruif(); u3<-ruif() if(u < exp()/(a+exp())) y=u2^(/a) else y=-log(u2) if(((y<) & u3<exp(-y)) ((y>=) & u3<y^(a-))) break v<-apped(v, y) retur(v) Για να κάνουµε δειγµατοληψία από την G ~ f Ga( a, λ ) = a και α = a τότε ~ Ga( α,) Y / λ ~ Ga( αλ, ) =, ( λ ) = µε iid i Zi ~ Ga, λ Exp λ Z ~ Ga, Z µε αποτέλεσµα i= =, = παρατηρούµε ότι εάν d d d = / λ + i = ( αλ, ) + (, λ) = (, λ) G Z Ga Ga Ga a i= ## Sample a vector of Exp ( λ ) radom deviates my_exp<-fuctio(ss=00, lambda=2) retur((-/lambda)*log(ruif(ss))) ## sample from Ga(shape=a, rate=b) for a>0, b>0 my_gamma<-fuctio(ss=00, a=.5, lambda=2){ <-floor(a) v<-gammafractio(ss=ss, a=a-)/lambda if(==0) 26
retur(v) else{ w<-rep(0, SS) for(i i :) w<-w+my_exp(ss=ss, lambda=lambda) retur(v+w) ## Experimet I w<-my_gamma(ss=0000, a=.5, lambda=2.5) hist(w, breaks=200, freq=false, ylim=c(0, 2), xlim=c(0, 2.5)) curve(dgamma(x, shape=.5, scale=/2.5), from=0, to=2.5, col="blue", lwd=2.2, add=true) ## Experimet II w<-my_gamma(ss=0000, a=0.5, lambda=0.5) hist(w, breaks=200, freq=false, ylim=c(0, 3), xlim=c(0, 4)) curve(dgamma(x, shape=0.5, scale=/0.5), from=0, to=4, col="blue", lwd=2.2, add=true) 27
Δειγματοληψία από την beta κατανομή id είχνουµε ότι εάν xi ~ Ga ( ai, b ) για i =, 2 τότε u = x + x ~ Ga a + a, b, 2 2 v= x x + x 2 ~ Be a, a 2 και u v. Πράγµατι T u = x + x x = uv v = x2 = u( v) x x + 2 2 : x T : Jac T v u = = u v u ενώ 0 < u = x + x < 2 x < = < x + x 0 v 2 (, ) π x x x e x e x x e ( x) a bx a2 bx2 a a2 bx+ 2 2 2 = 2 a a { a2 bu 2 ( a + a bu a ) { 2 π u, v uv u v e Jac T = u e v v 28
(, ) (, ) Ga u a + a b Be v a a. 2 2 v Be a a για οποιοδήποτε a > 0 και ηλαδή για να πάρουµε ένα δείγµα από την ~ (, 2) a 2 > 0 αρκεί να προσοµοιώσουµε ανεξάρτητα x ~ Ga ( a, b ) και 2 ~, 2 συνήθως θέτουµε το rate b =. Τότε θα έχουµε: x Ga a b, όπου v= x x + x 2 ~ Be a, a. 2 2 Δειγματοληψία από (, ) N µ σ με majorizatio Η τυπική θετική half ormal κατανοµή έχει πυκνότητα + + 2 x 2 /2 f x = N x = N x 0, = e ( x 0). 2π Μία majorizig συνάρτηση είναι η t( x) = e x ( x 0) εφόσον ( x) t( x) 2e x 0. Επειδή c= t( x) dx=.355 + π R f ( x) 2 g x = = exp ( x) ( x 0) t x 2 ότι Παρατηρούµε ότι: 2e π και x h x e Exp x 2 2 x /2 x /2 N ( x 0,) = e ( < x< ) = e ( x 0) + ( x 0) 2π 2π N + για κάθε t x = = = ( ). Έτσι έχουµε c { 2 2 2 x /2 2 /2 + = e x 0 + e x 0 = x + x 2 2π 2 2π 2 2 όπου N ( x) x N N η τυπική αρνητική half ormal κατανοµή. + Εµφανώς x~ N ( ) y =x~ N ( ) Πράγµατι N ( y) + d 2 y 2 /2 fy y = y = e y 0 = x dy 2π N 29
Έτσι εάν έχουµε δείγµα x από την N + ( ) και ~ ( 0,) u U τότε 2 = ( < /2) ( /2 ) ~ ( 0,) και z µ σ y ~ N( µ, σ ) y x u x u N αποδοχής P c π A = = 0.7602. 2e = + µε πιθανότητα Δειγματοληψία από N ( 0,) με την μέθοδο των Box Muller simulate idepedetly ϑ ~ 0, 2 ρ ~ /2 U ( ) Exp ( ) iid ~ N ( ) ( πϑ ) ( πϑ ) xy, 0, x = ρ cos 2 y = ρ si 2 iid Αν αρχίσουµε από τα δεξιά, υποθέσουµε δηλαδή ότι, ~ ( 0,) 2 2 f Y ( xy, ) = N( x 0, ) N( y 0,) = exp ( x y) 2π + 2 και ρ = ρ( x, y) T : ϑ = ϑ( x, y) xy N έχουµε ότι τότε T ( πϑ) ( πϑ) x = ρcos 2 : y = ρsi 2 0 < ρ <, 0< ϑ < (, ϑ ) = (, ) (, ) frθ r fy x y Jac T x y r= r( x, y) ϑ= ϑ( xy, ) = f Y ( ρcos( 2 πϑ), ρsi ( 2πϑ) ) 2 R Θ ( ϑ ) = rexp r / 2 = f r f ( πϑ) πρ ( πϑ) ( πϑ) πρ ( πϑ) cos 2 2 si 2 si 2 2 cos 2 2 Όπου f ( r) rexp ( r / 2) I( r 0) R = > και f ( ϑ) U ( ϑ 0,) I( 0 ϑ ) Θ = = < < Το µόνο που µας αποµένει να δείξουµε είναι ότι εάν ρ f ( ) τότε y ρ 2 ~ Exp( /2 ) που ισχύει εφόσον ~ R =, 30
d y y/2 fy ( y) = fr( ρ) Jac( T ( ρ) ) = fr y = e = Exp y / 2 y= y( ρ ) dy 2 ρ> 0 Το R Script είναι: sampleormal<-fuctio(mu=0, sigma=, SS=000){ sample<-null for(i i :SS/2){ theta<-ruif() u<-ruif() z<--2*log(u) x=z^(0.5)*cos(2*pi*theta) x2=z^(0.5)*si(2*pi*theta) sample<-apped(sample, mu+sigma*x) sample<-apped(sample, mu+sigma*x2) retur(sample) w<-sampleormal(sigma=3, SS=0000) hist(w, freq=false, breaks=50) curve(dorm(x,mea=0,sd=3), add=true, xlim=c(-0, 0)) 3
> mea(w) [] -0.02287585 > var(w) [] 8.972969 > Δειγματοληψία σπουδαιότητας (importace samplig) Αυτή η µέθοδος υπολογισµού ολοκληρωµάτων και πιθανοτήτων γενικεύει την µέθοδο Mote Carlo κατά την έννοια του ότι µπορούµε να χρησιµοποιήσουµε στη θέση της οµοιόµορφης κατανοµής, οιαδήποτε κατανοµή που ικανοποιεί συγκεκριµένες συνθήκες Για παράδειγµα εάν θέλουµε να υπολογίσουµε το ολοκλήρωµα I = g x dx και ~ f η προτεινόµενη πυκνότητα (proposal desity) µε χώρο καταστάσεων το A, θα έχουµε: g x g x I = g( x) dx= f ( x) dx w( ), w( x). A = E = A f x f x ηλαδή εάν γνωρίζουµε τρόπο δειγµατοληψίας για την f ( ) και µπορούµε να iid ~ παράγουµε δείγµα xi f ( ), i τότε µια εκτίµηση I ˆf, για το I που θα εξαρτάται A 32
από την f ( ) και το µέγεθος του δείγµατος θα είναι, σύµφωνα µε τον ισχυρό νόµο των µεγάλων αριθµών i= ( i ) ˆ g x iid I f, =, xi ~ f ( ), i. f x i Πιο γενικά, θα πρέπει, το σύνολο θετικότητας της g( x ) να είναι υποσύνολο του στηρίγµατος της πυκνότητας f ( ) { I = g x dx = w x f x dx = w x P dx = P w A A A A Παράδειγµα Εάν Z ~ N ( 0,) θέλουµε να υπολογίσουµε την πιθανότητα { 3 ( 0,) Μια απλοϊκή µέθοδος θα ήταν η εξής E I = z > 3 N z 0, dz = z > 3 PZ dz = Z > 3 R R I PZ N z dz = > =. 3 και lim Iˆ έτσι θα είχαµε την εκτίµηση ˆ iid I = ( zi > 3 ), zi ~ N( 0,) i = = I. Μια λύση χρησιµοποιώντας importace samplig και proposal desity ~ N( 4,) θα ήταν: ( 0,) ( 4,) N z I = ( z > 3 ) N z 4, dz = z > 3 w z P dz N z R όπου w( z) Έτσι ( 0,) ( 4,) { N z = = exp( 8 4z). N z I = E { ( > 3) w( ) = lim ( x > 3 ) w( x ), x N 4, R iid { i i i ~ i= 33
Τα R Scripts είναι: ImportaceSamplig<-fuctio(mu=4, sigma=, SS=000){ x<-rorm(ss, mea=mu, sd=sigma) x<-x[x>3] w<-dorm(x, mea=0, sd=)/dorm(x, mea=mu, sd=sigma) retur(sum(w)/ss) EstimatorDistributio<-fuctio(SSEstimator=300, mu=4, sigma=, SSImportace=000){ sample<-null for(i i :SSEstimator) sample<-apped(sample, ImportaceSamplig(mu=mu, sigma=sigma, SS=SSImportace)) retur(sample) w<-estimatordistributio() hist(w, freq=false, breaks=0, xlim=c(0,0.003)) 34
mea(w);var(w) [] 0.00348459 [] 8.988e-09 Στο προηγούµενο R script έχουµε χρησιµοποιήσει την ικανότητα της R για πράξεις µε διανύσµατα. Εναλλακτικά η συνάρτηση ImportaceSamplig() θα µπορούσε να δοθεί µε την πιο παραδοσιακή µορφή ImportaceSamplig<-fuctio(SS=000){ sum<-0 for(i i :SS){ x<-rorm(, mea=4, sd=) if(x>3) sum<sum+exp(8-4*x) retur(sum/ss) Άσκηση ίνεται ότι Y ~ π ( y) ( 3 y 4 ) N( y 0, λ ) < <. Να βρεθεί εκτίµηση της E [ Y ] Πρώτα εκτιµούµε την σταθερά c κανονικοποίησης της π ( ) δηλαδή ( 0, ) ( 3 4) ( 3 4 ) ( 0, ) π y = c N y λ < y< c = < y< N y λ dy ( λ ) c = 3< y< 4 w y N y 3.5, dy R = lim 3 < < 4, 3.5, i= όπου w( y) iid { ( yi ) w( yi) yi ~ N( λ ) ( 0, λ ) ( 3.5, λ ) N y =. Στην συνέχεια N y R 35
E [ ] = 3 ( < < 4 ) ( 0, λ ) = 3 ( < < 4 ) ( 3.5, λ ) Y c y yn y dy c y yw y N y dy R = clim 3 < y < 4 yw y, y N 3.5, i= iid { ( i ) i ( i) i ~ ( λ ) R = { 3 ( < yi < 4) yw i ( yi) { 3 ( < yi < 4) w( yi) ( λ ) i lim = iid, yi ~ N 3.5, i= Προσομοίωση της διαδικασίας Poisso και της διαδικασίας Wieer Θέλουµε να προσοµοιώσουµε τιµές από την διαδικασία Poisso µε ένταση λ ( ) Επειδή sup { : iid Nt = Ti ~ Po( λt) για σταθερό t, όπου Ti ~ Exp ( λ ). i= Παρατηρούµε ότι A { u e λt + u t, log ( u ) t + log ( u = ) i i > = i= i = i= i < i= i λ λ = log ~ θα έχουµε λ iid iid όπου ui ~ U ( 0,). Επειδή T i ( u i ) Exp ( λ ) + ( t) = { i < i = { t = = ( λ ). P A P T t T P N Po t, i= i= Τα R Scripts είναι: samplepoisso<-fuctio(lambda=, t=, SS=00){ sample<-null for(i i :SS){ T<-0 x<-0 repeat{ T<-T+(-/lambda)*log(ruif()) 36 PP λ.
if(t<t) x<-x+ else{ sample<-apped(sample, x) break retur(sample) getsampledistr<-fuctio(sample){ D<-NULL;P<-NULL;L<-sample while(legth(l)!=0){d<-apped(d, L[]); L<-L[L!=L[]] for(i i :legth(d)){ x<-d[i];couter<-0 for(j i :legth(sample)) if(x==sample[j]) couter<-couter+ P<-apped(P, couter/legth(sample)) prit(d);prit(p) plot(d, P, type="h", lwd=2, col="red", ylim=c(0,0.40), xlim=c(0,0)) poits(d, P, pch=6, cex=, col="black") 37
bmp(fileame = "BB.bmp", width = 000, height = 500, uits = "px", poitsize = 2, bg = "white", res = NA, restorecosole = TRUE) par(mfrow = c(,2)) getsampledistr(samplepoisso(lambda=2, SS=0000)) getsampledistr(rpois(0000, lambda=2)) dev.off() Μπορούµε να αναπαραστήσουµε την διαδικασία Poisso σαν: N N N N όπου t = t 0 = i= 0 i N = N N οι προσαυξήσεις της PP ( λ ) πάνω στην i ti+ ti t, διαµέριση Π = { t = 0 < t < < t = t i j 0 NC N για κάθε i j t t = t t =. Από την θεωρία έχουµε ότι d iid N N ~ Po λ t N Po λt/ που L µε i i+ i και i = it i. ηλαδή i ~ Έτσι τα µερικά αθροίσµατα του επαληθεύει ότι N ~ Po( λt/ ) = Po( λt) i= 0 i i= 0 διανύσµατος ( N N K N) θα προσεγγίζουν ω τροχιά της Τα R Scripts είναι:,,, 0 PoissoProcTrajectory<-fuctio(lambda=, t=0, partitio=5000){ dt<-t/partitio x<-samplepoisso(lambda=lambda, t=dt, SS=partitio) 38 PP λ στην t, Π.
path<-c(0) sum<-0 for(i i :legth(x)){ sum<-sum+x[i] path<-apped(path, sum) plot(seq(from=0, to=t, by=dt), path, type='l') bmp(fileame = "PPl.bmp", width = 000, height = 500, uits = "px", poitsize = 2, bg = "white", res = NA, restorecosole = TRUE) par(mfrow = c(2,2)) PoissoProcTrajectory() PoissoProcTrajectory() PoissoProcTrajectory() PoissoProcTrajectory() dev.off() 39
Για την διαδικασία Wieer ισχύουν παρόµοια Wt = Wt W0 = i 0 iw όπου WN = i = Wt W i+ t οι προσαυξήσεις της W i t πάνω στην t, t διαµέριση Π = { t0 = 0 < t < L < t = t µε it = ti+ ti =. Από την θεωρία έχουµε ότι d iid W C W για κάθε i j W W ~ N 0, t W N 0, t/ που i j και i = it i. ηλαδή i ~ i= 0 i Έτσι τα µερικά αθροίσµατα του i= 0 επαληθεύει ότι W ~ N( 0, t/ ) = N( 0, t) διανύσµατος ( W W W) Τα R Scripts είναι:,, K, θα προσεγγίζουν ω τροχιά της W t στην 0 t, Π. WeierProcTrajectory<-fuctio(t=0, partitio=0){ dt<-t/partitio x<-dt^0.5*rorm(partitio) path<-c(0) sum<-0 for(i i :legth(x)){ sum<-sum+x[i] 40
path<-apped(path, sum) plot(seq(from=0, to=t, by=dt), path, type='l', ylab="weier path", xlab="time") WeierProcTrajectory(t=5, partitio=0000) bmp(fileame = "Weier.bmp", width = 000, height = 500, uits = "px", poitsize = 2, bg = "white", res = NA, restorecosole = TRUE) par(mfrow = c(2,2)) WeierProcTrajectory(t=, partitio=20000) WeierProcTrajectory(t=, partitio=20000) WeierProcTrajectory(t=, partitio=20000) WeierProcTrajectory(t=, partitio=20000) dev.off() 4
42