# MultiStraussHard

##### The Multitype/Hard Core Strauss Point Process Model

Creates an instance of the multitype/hard core Strauss point process model which can then be fitted to point pattern data.

##### Usage

`MultiStraussHard(types=NULL, iradii, hradii)`

##### Arguments

- types
- Optional; vector of all possible types (i.e. the possible levels
of the
`marks`

variable in the data) - iradii
- Matrix of interaction radii
- hradii
- Matrix of hard core radii

##### Details

This is a hybrid of the multitype Strauss process
(see `MultiStrauss`

) and the hard core process
(case $\gamma=0$ of the Strauss process).
A pair of points
of types $i$ and $j$
must not lie closer than $h_{ij}$ units apart;
if the pair lies more than $h_{ij}$ and less than
$r_{ij}$ units apart, it
contributes a factor
$\gamma_{ij}$ to the probability density.

The argument `types`

need not be specified in normal use.
It will be determined automatically from the point pattern data set
to which the MultiStraussHard interaction is applied,
when the user calls `ppm`

.
However, the user should be confident that
the ordering of types in the dataset corresponds to the ordering of
rows and columns in the matrices `iradii`

and `hradii`

.

The matrices `iradii`

and `hradii`

must be symmetric, with entries
which are either positive numbers or `NA`

.
A value of `NA`

indicates that no interaction term should be included
for this combination of types.
Note that only the interaction radii and hardcore radii
are specified in `MultiStraussHard`

.
The canonical parameters $\log(\beta_j)$
and $\log(\gamma_{ij})$
are estimated by `ppm()`

, not fixed in
`MultiStraussHard()`

.

##### Value

- An object of class
`"interact"`

describing the interpoint interaction structure of the multitype/hard core Strauss process with interaction radii $iradii[i,j]$ and hard core radii $hradii[i,j]$.

##### Warnings

In order that `ppm`

can fit the multitype/hard core
Strauss model correctly to a point pattern `X`

, this pattern
must be marked, with `markformat`

equal to `vector`

and the mark vector `marks(X)`

must be a factor. If the
argument `types`

is specified it is interpreted as a set of
factor levels and this set must equal `levels(marks(X))`

.

##### See Also

`ppm`

,
`pairwise.family`

,
`ppm.object`

,
`MultiStrauss`

,
`MultiHard`

,
`Strauss`

##### Examples

```
r <- matrix(3, nrow=2,ncol=2)
h <- matrix(c(1,2,2,1), nrow=2,ncol=2)
MultiStraussHard(iradii=r,hradii=h)
# prints a sensible description of itself
data(betacells)
r <- 30.0 * matrix(c(1,2,2,1), nrow=2,ncol=2)
h <- 15.0 * matrix(c(NA,1,1,NA), nrow=2,ncol=2)
ppm(betacells, ~1, MultiStraussHard(,r,h))
# fit the stationary multitype hardcore Strauss process to `betacells'
# Note the comma; needed since "types" is not specified.
```

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