# quadscheme

##### Generate a Quadrature Scheme from a Point Pattern

Generates a quadrature scheme (an object of class `"quad"`

)
from point patterns of data and dummy points.

##### Usage

`quadscheme(data, dummy, method="grid", ...)`

##### Arguments

- data
- The observed data point pattern.
An object of class
`"ppp"`

or in a format recognised by`as.ppp()`

- dummy
- The pattern of dummy points for the quadrature.
An object of class
`"ppp"`

or in a format recognised by`as.ppp()`

Defaults to`default.dummy(data, ...)`

- method
- The name of the method for calculating quadrature weights: either
`"grid"`

or`"dirichlet"`

. - ...
- Parameters of the weighting method (see below) and parameters for constructing the dummy points if necessary.

##### Details

This is the primary method for producing a quadrature schemes
for use by `ppm`

.
The function `ppm`

fits a point process model to an
observed point pattern using
the Berman-Turner quadrature approximation (Berman and Turner, 1992;
Baddeley and Turner, 2000) to the pseudolikelihood of the model.
It requires a quadrature scheme consisting of
the original data point pattern, an additional pattern of dummy points,
and a vector of quadrature weights for all these points.
Such quadrature schemes are represented by objects of class
`"quad"`

. See `quad.object`

for a description of this class.

Quadrature schemes are created by the function
`quadscheme`

.
The arguments `data`

and `dummy`

specify the data and dummy
points, respectively. There is a sensible default for the dummy
points (provided by `default.dummy`

).
Alternatively the dummy points
may be specified arbitrarily and given in any format recognised by
`as.ppp`

.
There are also functions for creating dummy patterns
including `corners`

,
`gridcentres`

,
`stratrand`

and
`spokes`

.
The quadrature region is the region over which we are
integrating, and approximating integrals by finite sums.
If `dummy`

is a point pattern object (class `"ppp"`

)
then the quadrature region is taken to be `dummy$window`

.
If `dummy`

is just a list of $x, y$ coordinates
then the quadrature region defaults to the observation window
of the data pattern, `data$window`

.

If `dummy`

is missing, then the optional arguments
(for `...`

) include an argument `nd`

.
An `nd[1]`

by `nd[2]`

grid of
dummy points is generated by `default.dummy`

.
If `method = "grid"`

then the optional arguments (for `...`

) are
`(nd, ntile)`

.
The quadrature region (see below) is divided into
an `ntile[1]`

by `ntile[2]`

grid of rectangular tiles.
The weight for each
quadrature point is the area of a tile divided by the number of
quadrature points in that tile.
If `method="dirichlet"`

then the optional arguments are
`(exact=TRUE, nd)`

.
The quadrature points (both data and dummy) are used to construct the
Dirichlet tessellation. The quadrature weight of each point is the
area of its Dirichlet tile inside the quadrature region.
If `exact == TRUE`

then this area is computed exactly
using the package `deldir`

; otherwise it is computed
approximately by discretisation.

##### Value

- An object of class
`"quad"`

describing the quadrature scheme (data points, dummy points, and quadrature weights) suitable as the argument`Q`

of the function`ppm()`

for fitting a point process model.The quadrature scheme can be inspected using the

`print`

and`plot`

methods for objects of class`"quad"`

.

##### References

Baddeley, A. and Turner, R.
Practical maximum pseudolikelihood for spatial point patterns.
*Australian and New Zealand Journal of Statistics*
**42** (2000) 283--322.
Berman, M. and Turner, T.R.
Approximating point process likelihoods with GLIM.
*Applied Statistics* **41** (1992) 31--38.

##### See Also

`ppm`

,
`as.ppp`

,
`quad.object`

,
`gridweights`

,
`dirichlet.weights`

,
`corners`

,
`gridcentres`

,
`stratrand`

,
`spokes`

##### Examples

```
data(simdat)
# grid weights
Q <- quadscheme(simdat)
Q <- quadscheme(simdat, method="grid")
Q <- quadscheme(simdat, nd=50) # 1 dummy point per tile
Q <- quadscheme(simdat, ntile=25, nd=50) # 4 dummy points per tile
# Dirichlet weights
Q <- quadscheme(simdat, method="dirichlet", exact=FALSE)
# random dummy pattern
D <- runifpoint(250, simdat$window)
Q <- quadscheme(simdat, D, method="dirichlet", exact=FALSE)
# polygonal window
data(demopat)
X <- unmark(demopat)
Q <- quadscheme(X)
# mask window
X$window <- as.mask(X$window)
Q <- quadscheme(X)
```

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