rpp: Generate Poisson point patterns

View source: R/rpp.R

rppR Documentation

Generate Poisson point patterns

Description

Generate one (or several) realisation(s) of the (homogeneous or inhomogeneous) Poisson process in a region S\times T.

Usage

rpp(lambda, s.region, t.region, npoints=NULL, nsim=1, replace=TRUE,
    discrete.time=FALSE, nx=100, ny=100, nt=100, lmax=NULL, ...)

Arguments

lambda

Spatio-temporal intensity of the Poisson process. If lambda is a single positive number, the function generates realisations of a homogeneous Poisson process, whilst if lambda is a function of the form \lambda(x,y,t,\dots) or a 3D-array it generates realisations of an inhomogeneous Poisson process.

s.region

Two-column matrix specifying polygonal region containing all data locations. If s.region is missing, the unit square is considered.

t.region

Vector containing the minimum and maximum values of the time interval. If t.region is missing, the interval [0,1] is considered.

replace

Logical allowing times repeat (should only be used when discrete.time=TRUE).

npoints

Number of points to simulate. If NULL, the number of points is from a Poisson distribution with mean the double integral of lambda over s.region and t.region.

discrete.time

If TRUE, times belong to {\bf N}, otherwise belong to {\bf R}^+.

nsim

Number of simulations to generate. Default is 1.

nx, ny, nt

Define the size of the 3-D grid on which the intensity is evaluated.

lmax

Upper bound for the value of \lambda(x,y,t), if lambda is a function.

...

Additional parameters if lambda is a function.

Value

A list containing:

xyt

Matrix (or list of matrices if nsim>1) containing the points (x,y,t) of the simulated point pattern. xyt (or any element of the list if nsim>1) is an object of the class stpp.

Lambda

nx \times ny \times nt array of the intensity surface at each time.

s.region, t.region, lambda

parameters passed in argument.

Author(s)

Edith Gabriel <edith.gabriel@inrae.fr> and Peter J Diggle.

See Also

plot.stpp, animation and stan for plotting space-time point patterns.

Examples

# Homogeneous Poisson process
# ---------------------------
hpp1 <- rpp(lambda=200,replace=FALSE)

stan(hpp1$xyt)

# fixed number of points, discrete time, with time repeat.
data(northcumbria)
hpp2 <- rpp(npoints=500, s.region=northcumbria, t.region=c(1,1000), 
discrete.time=TRUE)
plot(hpp2$xyt, style="elegant")

polymap(northcumbria)
animation(hpp2$xyt, s.region=hpp2$s.region, t.region=hpp2$t.region, 
runtime=10, add=TRUE)



# Inhomogeneous Poisson process
# -----------------------------

# intensity defined by a function
lbda1 = function(x,y,t,a){a*exp(-4*y) * exp(-2*t)}
ipp1 = rpp(lambda=lbda1, npoints=400, a=3200/((1-exp(-4))*(1-exp(-2))))
stan(ipp1$xyt)

# intensity defined by a matrix
data(fmd)
data(northcumbria)
h = mse2d(as.points(fmd[,1:2]), northcumbria, nsmse=30, range=3000)
h = h$h[which.min(h$mse)]
Ls = kernel2d(as.points(fmd[,1:2]), northcumbria, h, nx=100, ny=100)
Lt = dim(fmd)[1]*density(fmd[,3], n=200)$y
Lst=array(0,dim=c(100,100,200))
for(k in 1:200) Lst[,,k] <- Ls$z*Lt[k]/dim(fmd)[1]
ipp2 = rpp(lambda=Lst, s.region=northcumbria, t.region=c(1,200), 
discrete.time=TRUE)
           
par(mfrow=c(1,1))
image(Ls$x, Ls$y, Ls$z, col=grey((1000:1)/1000)); polygon(northcumbria)
animation(ipp2$xyt, add=TRUE, cex=0.5, runtime=15)


stpp-GitHub/stpp documentation built on April 14, 2024, 12:21 p.m.