# Pairwise

##### Generic Pairwise Interaction model

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)`

##### 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.

##### 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\).

##### Value

An object of class `"interact"`

describing the interpoint interaction
structure of a point process.

##### See Also

##### Examples

```
# NOT RUN {
#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"))
data(cells)
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"))
data(spruces)
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
# }
```

*Documentation reproduced from package spatstat, version 1.52-1, License: GPL (>= 2)*