Simulacion de un proceso de Poisson

## Warning: package 'ggplot2' was built under R version 3.6.3

Algoritmo 1.

simulacion_poisson <- function(t,lambda){
  N<- rpois(1,t*lambda) #Paso 1
  tiempos<- cumsum(rexp(N,lambda)) #Paso 2 y 3 
  data.frame(x=c(0,tiempos),y=c(0:N)) 
}
Saltos <- simulacion_poisson(3,6)
qplot(x,y,data=Saltos,xlab="Tiempo",ylab="N(t)",main="Proceso de Poisson",geom=c("step","point"))

Presentamos una variante del algoritmo para n procesos de poisson.

simulacion_poissonN<-function(n,t,lambda){
  tiempos <- lapply(1:n, function(n) data.frame(simulacion_poisson(t,lambda),simulacion=n)) 
  tiempos <-ldply(tiempos, data.frame) 
  tiempos$simulacion<-factor(tiempos$simulacion) 
  qplot(x,y,data=tiempos,geom=c("step","point"),color=simulacion,xlab="Tiempo",ylab="N(t)",main=sprintf("%d Simulaciones del Proceso de Poisson de parametros lambda = %.2f",n,lambda))
}
simulacion_poissonN(5,3,6) 

Algoritmo 2.

Para el algoritmo 2, solo deberemos realizar unas modificaciones en el primer algoritmo, asi, tenemos:

simulacion_poisson2 <- function(t,lambda){
  N<- rpois(1,t*lambda) 
  tiempos<- sort(runif(N,0,t)) 
  data.frame(x=c(0,tiempos),y=c(0:N)) 
}
Saltos2 <- simulacion_poisson2(3,6)
qplot(x,y,data=Saltos2,xlab="Tiempo",ylab="N(t)",main="Proceso de Poisson",geom=c("step","point"))

Presentamos una variante del algoritmo para n procesos de poisson.

simulacion_poisson2N<-function(n,t,lambda){
  tiempos <- lapply(1:n, function(n) data.frame(simulacion_poisson2(t,lambda),simulacion=n)) 
  tiempos <-ldply(tiempos, data.frame) 
  tiempos$simulacion<-factor(tiempos$simulacion) 
  qplot(x,y,data=tiempos,geom=c("step","point"),color=simulacion,xlab="Tiempo",ylab="N(t)",main=sprintf("%d Simulaciones del Proceso de Poisson de parametros lambda = %.2f",n,lambda))
}
simulacion_poisson2N(5,3,6)