MultiStraussHard.Rd
\name{MultiStraussHard}
\alias{MultiStraussHard}
\title{The Multitype/Hard Core Strauss Point Process Model}
\description{
Creates an instance of the multitype/hard core Strauss point process model
which can then be fitted to point pattern data.
}
\usage{
MultiStraussHard(iradii, hradii, types=NULL)
}
\arguments{
\item{iradii}{Matrix of interaction radii}
\item{hradii}{Matrix of hard core radii}
\item{types}{Optional; vector of all possible types (i.e. the possible levels
of the \code{marks} variable in the data)}
}
\value{
An object of class \code{"interact"}
describing the interpoint interaction
structure of the multitype/hard core Strauss process with
interaction radii \eqn{iradii[i,j]}
and hard core radii \eqn{hradii[i,j]}.
}
\details{
This is a hybrid of the multitype Strauss process
(see \code{\link{MultiStrauss}}) and the hard core process
(case \eqn{\gamma=0}{gamma = 0} of the Strauss process).
A pair of points
of types \eqn{i} and \eqn{j}
must not lie closer than \eqn{h_{ij}}{h[i,j]} units apart;
if the pair lies more than \eqn{h_{ij}}{h[i,j]} and less than
\eqn{r_{ij}}{r[i,j]} units apart, it
contributes a factor
\eqn{\gamma_{ij}}{gamma[i,j]} to the probability density.
The argument \code{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 \code{\link{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 \code{iradii} and \code{hradii}.
The matrices \code{iradii} and \code{hradii}
must be symmetric, with entries
which are either positive numbers or \code{NA}.
A value of \code{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 \code{MultiStraussHard}.
The canonical parameters \eqn{\log(\beta_j)}{log(beta[j])}
and \eqn{\log(\gamma_{ij})}{log(gamma[i,j])}
are estimated by \code{\link{ppm}()}, not fixed in
\code{MultiStraussHard()}.
}
\seealso{
\code{\link{ppm}},
\code{\link{pairwise.family}},
\code{\link{ppm.object}},
\code{\link{MultiStrauss}},
\code{\link{MultiHard}},
\code{\link{Strauss}}
}
\examples{
r <- matrix(3, nrow=2,ncol=2)
h <- matrix(c(1,2,2,1), nrow=2,ncol=2)
MultiStraussHard(r,h)
# prints a sensible description of itself
r <- 0.04 * matrix(c(1,2,2,1), nrow=2,ncol=2)
h <- 0.02 * matrix(c(1,NA,NA,1), nrow=2,ncol=2)
X <- amacrine
\testonly{
X <- X[owin(c(0,0.8), c(0,1))]
}
fit <- ppm(X ~1, MultiStraussHard(r,h))
# fit stationary multitype hardcore Strauss process to `amacrine'
}
\section{Warnings}{
In order that \code{\link{ppm}} can fit the multitype/hard core
Strauss model correctly to a point pattern \code{X}, this pattern
must be marked, with \code{markformat} equal to \code{vector}
and the mark vector \code{marks(X)} must be a factor. If the
argument \code{types} is specified it is interpreted as a set of
factor levels and this set must equal \code{levels(marks(X))}.
}
\section{Changed Syntax}{
Before \pkg{spatstat} version \code{1.37-0},
the syntax of this function was different:
\code{MultiStraussHard(types=NULL, iradii, hradii)}.
The new code attempts to handle the old syntax as well.
}
\author{\adrian
,
\rolf
and \ege
}
\keyword{spatial}
\keyword{models}