## Warning: package 'ggplot2' was built under R version 3.6.3
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)
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)