# Gres

##### Residual G Function

Given a point process model fitted to a point pattern dataset, this function computes the residual $G$ function, which serves as a diagnostic for goodness-of-fit of the model.

##### Usage

`Gres(object, ...)`

##### Arguments

- object
- Object to be analysed.
Either a fitted point process model (object of class
`"ppm"`

), a point pattern (object of class`"ppp"`

), a quadrature scheme (object of class`"quad"`

), or the value returned by a pr - ...
- Arguments passed to
`Gcom`

.

##### Details

This command provides a diagnostic for the goodness-of-fit of a point process model fitted to a point pattern dataset. It computes a residual version of the $G$ function of the dataset, which should be approximately zero if the model is a good fit to the data.

In normal use, `object`

is a fitted point process model
or a point pattern. Then `Gres`

first calls `Gcom`

to compute both the nonparametric estimate of the $G$ function
and its model compensator. Then `Gres`

computes the
difference between them, which is the residual $G$-function.
Alternatively, `object`

may be a function value table
(object of class `"fv"`

) that was returned by
a previous call to `Gcom`

. Then `Gres`

computes the
residual from this object.

##### Value

- A function value table (object of class
`"fv"`

), essentially a data frame of function values. There is a plot method for this class. See`fv.object`

.

##### References

Baddeley, A., Rubak, E. and Moller, J. (2011)
Score, pseudo-score and residual
diagnostics for spatial point process models.
To appear in *Statistical Science*.

##### See Also

Related functions:
`Gcom`

,
`Gest`

.

Alternative functions:
`Kres`

,
`psstA`

,
`psstG`

,
`psst`

.

Model-fitting:
`ppm`

.

##### Examples

```
data(cells)
fit0 <- ppm(cells, ~1) # uniform Poisson
G0 <- Gres(fit0)
plot(G0)
# Hanisch correction estimate
plot(G0, hres ~ r)
# uniform Poisson is clearly not correct
fit1 <- ppm(cells, ~1, Strauss(0.08))
plot(Gres(fit1), hres ~ r)
# fit looks approximately OK; try adjusting interaction distance
plot(Gres(cells, interaction=Strauss(0.12)))
# How to make envelopes
E <- envelope(fit1, Gres, interaction=as.interact(fit1), nsim=39)
plot(E)
# For computational efficiency
Gc <- Gcom(fit1)
G1 <- Gres(Gc)
```

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