Simulación Proceso Puntual Poisson Homogeneo

###
##Generación del Proceso Poisson Homogeneo
###
require(spatstat)

ppois_homogeneo=function(x,y,intensidad){
  
##Paso 1 - Espacio del Patron (S)
  
cuadrado=owin(x,y)

##Realización v.a. poisson con intensidad 
sim=rpois(n = 1,lambda = intensidad)

##Distribuir Valores de Acuerdo con Distribucción Uniforme
sim_x=runif(n = sim,min = x[1],max = x[2])
sim_y=runif(n = sim,min = y[1],max = y[2])

coords=data.frame(sim_x,sim_y)

##Crear Patron Puntual con los valores
require(spatstat)
ppois_homo=ppp(x = coords[,1],y = coords[,2],window = cuadrado)

return(ppois_homo)

}

A continuación se usa la función:

##Usar la función

x=c(0,10)
y=c(0,15)
intensidad=50
sim_pois_homo=ppois_homogeneo(x,y,intensidad)
sim_pois_homo
## Planar point pattern: 57 points
## window: rectangle = [0, 10] x [0, 15] units
plot(sim_pois_homo)

Simulación Proceso Puntual Inhomogeneo - Thinning

x=c(0,1)
y=c(0,1)
intensidad=100
retencion=0.6
sim_pois_homo=ppois_homogeneo(x,y,intensidad)

tot_puntos=dim(data.frame(sim_pois_homo))[1]

f = ifelse(runif(n = tot_puntos)<retencion, 1, 0) 
sim_pois_thin_inhomo=sim_pois_homo[f==1]

par(mfrow=c(1,2))
plot(sim_pois_homo)
plot(sim_pois_thin_inhomo)

Simulación Proceso Puntual Inhomogeneo - Función Exponencial

x=c(0,1)
y=c(0,1)
intensidad=100
param=-10.6
sim_pois_homo=ppois_homogeneo(x,y,intensidad)

coords=data.frame(sim_pois_homo)
coords$y=exp(param*coords$y)

ppois_inhomo_exp=ppp(x = coords[,1],y = coords[,2])

par(mfrow=c(1,2))
plot(sim_pois_homo)
plot(ppois_inhomo_exp)