########################################### #### Proceso de Poisson ########################################### ### Suma de exponenciales ### Partimos del número de eventos, que es el ### número de sumandos ### Graficas 11.50 x 6.95 inches // 7.3 6.95 set.seed(999) par(mfrow=c(3,1)) nev <- 20 # Numero de eventos ttiempos <- c(0,cumsum(rexp(nev,1))) plot(ttiempos,0:nev, type='s',xlim=c(0,20), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 1') abline(h=0,col='red') ttiempos <- c(0,cumsum(rexp(nev,0.5))) plot(ttiempos,0:nev, type='s',xlim=c(0,20), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 0.5') abline(h=0,col='red') ttiempos <- c(0,cumsum(rexp(nev,0.1))) plot(ttiempos,0:nev, type='s',xlim=c(0,20), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 0.1') abline(h=0,col='red') set.seed(999) par(mfrow=c(3,1)) ttiempos <- c(0,cumsum(rexp(nev,1))) plot(ttiempos,0:nev, type='s',ylim=c(0,nev), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 1') abline(h=0,col='red') ttiempos <- c(0,cumsum(rexp(nev,0.5))) plot(ttiempos,0:nev, type='s',ylim=c(0,nev), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 0.5') abline(h=0,col='red') ttiempos <- c(0,cumsum(rexp(nev,0.1))) plot(ttiempos,0:nev, type='s',ylim=c(0,nev), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 0.1') abline(h=0,col='red') par(mfrow=c(1,1)) ### Graficas en un mismo panel set.seed(111) nev <- 40 ttiempos <- c(0,cumsum(rexp(nev,1))) plot(ttiempos,0:nev, type='s',ylim=c(0,nev), xlab='Tiempo',ylab='Eventos',lwd=2, main='Proceso de Poisson de intensidad 1') abline(h=0,col='red') for (i in 2:5) lines(c(0,cumsum(rexp(nev,1))),0:nev,type='s', lwd=2,col=i) ttiempos <- c(0,cumsum(rexp(nev,0.5))) plot(ttiempos,0:nev, type='s',ylim=c(0,30), xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,60), main='Proceso de Poisson de intensidad 0.5') abline(h=0,col='red') for (i in 2:5) lines(c(0,cumsum(rexp(nev,0.5))),0:nev,type='s', lwd=2,col=i) ttiempos <- c(0,cumsum(rexp(nev,0.1))) plot(ttiempos,0:nev, type='s',ylim=c(0,30), xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,250), main='Proceso de Poisson de intensidad 0.1') abline(h=0,col='red') for (i in 2:5) lines(c(0,cumsum(rexp(nev,0.1))),0:nev,type='s', lwd=2,col=i) ### Distribución de Poisson + Uniforme ### Otra manera es generar una va Poisson ### de parametro lambda t ### para el número total de eventos ### y luego ubicar estos eventos con ### una distribucion uniforme. ### En este esquema fijamos el tiempo que ### queremos observar set.seed(1235) par(mfrow=c(3,1)) tt <- 30 # Tiempo en el que observamos el proceso lbd <- 1 # Intensidad nev <- rpois(1,tt*lbd) #Número de eventos observados ttiempos <-sort(runif(nev,max=tt)) # Ubicación de los eventos plot(c(0,ttiempos),0:nev, type='s', xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Proceso de Poisson de intensidad 0.5') abline(h=0,col='red') lbd <- 0.5 nev <- rpois(1,tt*lbd) ttiempos <-sort(runif(nev,max=tt)) plot(c(0,ttiempos),0:nev, type='s', xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Proceso de Poisson de intensidad 0.5') abline(h=0,col='red') lbd <- 0.1 nev <- rpois(1,tt*lbd) ttiempos <-sort(runif(nev,max=tt)) plot(c(0,ttiempos),0:nev, type='s', xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Proceso de Poisson de intensidad 0.1') abline(h=0,col='red') par(mfrow=c(1,1)) ### Graficas en un mismo panel set.seed(1357) tt <- 30 lbd <- 1 nev <- rpois(1,tt*lbd) ttiempos <-sort(runif(nev,max=tt)) plot(c(0,ttiempos),0:nev, type='s', xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Proceso de Poisson de intensidad 1') abline(h=0,col='red') for (i in 2:5) { nev <- rpois(1,tt*lbd) lines (c(0,sort(runif(nev,max=tt))),0:nev,type='s',col=i,lwd=2) } lbd <- 0.5 nev <- rpois(1,tt*lbd) ttiempos <-sort(runif(nev,max=tt)) plot(c(0,ttiempos),0:nev, type='s', xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Proceso de Poisson de intensidad 0.5') abline(h=0,col='red') for (i in 2:5) { nev <- rpois(1,tt*lbd) lines (c(0,sort(runif(nev,max=tt))),0:nev,type='s',col=i,lwd=2) } lbd <- .1 nev <- rpois(1,tt*lbd) ttiempos <-sort(runif(nev,max=tt)) plot(c(0,ttiempos),0:nev, type='s',#ylim=c(0,10), xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Proceso de Poisson de intensidad 0.1') abline(h=0,col='red') for (i in 2:5) { nev <- rpois(1,tt*lbd) lines (c(0,sort(runif(nev,max=tt))),0:nev,type='s',col=i,lwd=2) } ### Proceso de Poisson Compuesto ### A cada evento de un PPoisson asociamos ### una variable N(0,3) nev <- 25 lbd <- 0.5 set.seed(9911) ttiempos <- c(0,cumsum(rexp(nev,lbd))) pcomp <- c(0,cumsum(rnorm(nev,sd=sqrt(3)))) plot(ttiempos,pcomp,type='s',lwd=2,xlab='Tiempos',xlim=c(0,35), main='Proceso de Poisson Compuesto',ylab='',ylim=c(-15,15)) abline(h=0,col='red') for (i in 2:5) { ttiempos <- c(0,cumsum(rexp(nev,lbd))) pcomp <- c(0,cumsum(rnorm(nev,sd=sqrt(3)))) lines(ttiempos,pcomp,type='s',col=i,lwd=2) } ### Descomposición de un PPoisson nev <- 25 lbd <- 0.5 set.seed(9119) ttiempos <- cumsum(rexp(nev,lbd)) plot(c(0,ttiempos),0:nev,type='s',lwd=2,xlab='Tiempos', main='Descomposición de un Proceso de Poisson',ylab='') abline(h=0,col='red') marca <- rbinom(nev,1,0.25) lines(c(0,ttiempos[marca==1]),0:length(marca[marca==1]),type='s', lwd=2,col='darkblue') lines(c(0,ttiempos[marca==0]),0:length(marca[marca==0]),type='s', lwd=2,col='red') ### Superposición de procesos de Poisson. set.seed(8264) tt <- 30 # Tiempo en el que observamos el proceso lbd1 <- 0.6 # Intensidad del primer proceso lbd2 <- 0.3 # Intensidad del segundo proceso nev1 <- rpois(1,tt*lbd1) #Número de eventos proceso 1 nev2 <- rpois(1,tt*lbd2) #Número de eventos proceso 2 tt1 <-sort(runif(nev1,max=tt)) # Ubicación de los eventos P1 tt2 <-sort(runif(nev2,max=tt)) # Ubicación de los eventos P2 ttiempos <- sort(c(tt1,tt2)) plot(c(0,ttiempos),0:(nev1+nev2), type='s', xlab='Tiempo',ylab='Eventos',lwd=2,xlim=c(0,tt), main='Superposición de Procesos de Poisson') abline(h=0,col='red') lines(c(0,tt1),0:(nev1), type='s',col='blue',lwd=2) lines(c(0,tt2),0:(nev2), type='s',col='red',lwd=2)