Learn R Programming

spatstat.model (version 3.3-1)

Pairwise: Generic Pairwise Interaction model

Description

Creates an instance of a pairwise interaction point process model which can then be fitted to point pattern data.

Usage

Pairwise(pot, name, par, parnames, printfun)

Value

An object of class "interact"

describing the interpoint interaction structure of a point process.

Arguments

pot

An R language function giving the user-supplied pairwise interaction potential.

name

Character string.

par

List of numerical values for irregular parameters

parnames

Vector of names of irregular parameters

printfun

Do not specify this argument: for internal use only.

Author

Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner rolfturner@posteo.net

Details

This code constructs a member of the pairwise interaction family pairwise.family with arbitrary pairwise interaction potential given by the user.

Each pair of points in the point pattern contributes a factor \(h(d)\) to the probability density, where \(d\) is the distance between the two points. The factor term \(h(d)\) is $$h(d) = \exp(-\theta \mbox{pot}(d))$$ provided \(\mbox{pot}(d)\) is finite, where \(\theta\) is the coefficient vector in the model.

The function pot must take as its first argument a matrix of interpoint distances, and evaluate the potential for each of these distances. The result must be either a matrix with the same dimensions as its input, or an array with its first two dimensions the same as its input (the latter case corresponds to a vector-valued potential).

If irregular parameters are present, then the second argument to pot should be a vector of the same type as par giving those parameter values.

The values returned by pot may be finite numeric values, or -Inf indicating a hard core (that is, the corresponding interpoint distance is forbidden). We define \(h(d) = 0\) if \(\mbox{pot}(d) = -\infty\). Thus, a potential value of minus infinity is always interpreted as corresponding to \(h(d) = 0\), regardless of the sign and magnitude of \(\theta\).

See Also

ppm, pairwise.family, ppm.object

Examples

Run this code
   #This is the same as StraussHard(r=0.7,h=0.05)
   strpot <- function(d,par) {
         r <- par$r
         h <- par$h
         value <- (d <= r)
         value[d < h] <- -Inf
         value
   }
   mySH <- Pairwise(strpot, "StraussHard process", list(r=0.7,h=0.05),
           c("interaction distance r", "hard core distance h"))
   ppm(cells ~ 1, mySH, correction="isotropic")

   # Fiksel (1984) double exponential interaction
   # see Stoyan, Kendall, Mecke 1987 p 161

   fikspot <- function(d, par) {
      r <- par$r
      h <- par$h
      zeta <- par$zeta
      value <- exp(-zeta * d)
      value[d < h] <- -Inf
      value[d > r] <- 0
      value
   }
   Fiksel <- Pairwise(fikspot, "Fiksel double exponential process",
                      list(r=3.5, h=1, zeta=1),
                      c("interaction distance r",
                        "hard core distance h",
                        "exponential coefficient zeta"))
   fit <- ppm(unmark(spruces) ~1, Fiksel, rbord=3.5)
   fit
   plot(fitin(fit), xlim=c(0,4))
   coef(fit)
   # corresponding values obtained by Fiksel (1984) were -1.9 and -6.0

Run the code above in your browser using DataLab