# Kres

##### Residual K Function

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

##### Usage

`Kres(object, ...)`

##### Arguments

##### 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 \(K\) 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 `Kres`

first calls `Kcom`

to compute both the nonparametric estimate of the \(K\) function
and its model compensator. Then `Kres`

computes the
difference between them, which is the residual \(K\)-function.

Alternatively, `object`

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

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

. Then `Kres`

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.
*Statistical Science* **26**, 613--646.

##### See Also

Related functions:
`Kcom`

,
`Kest`

.

Alternative functions:
`Gres`

,
`psstG`

, `psstA`

, `psst`

.

Point process models: `ppm`

.

##### Examples

```
# NOT RUN {
data(cells)
fit0 <- ppm(cells, ~1) # uniform Poisson
# }
# NOT RUN {
K0 <- Kres(fit0)
K0
plot(K0)
# isotropic-correction estimate
plot(K0, ires ~ r)
# uniform Poisson is clearly not correct
fit1 <- ppm(cells, ~1, Strauss(0.08))
# }
# NOT RUN {
K1 <- Kres(fit1)
if(interactive()) {
plot(K1, ires ~ r)
# fit looks approximately OK; try adjusting interaction distance
plot(Kres(cells, interaction=Strauss(0.12)))
}
# How to make envelopes
# }
# NOT RUN {
E <- envelope(fit1, Kres, model=fit1, nsim=19)
plot(E)
# }
# NOT RUN {
# For computational efficiency
Kc <- Kcom(fit1)
K1 <- Kres(Kc)
# }
```

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