# Test against non-Poisson (in-)homogeneous models

### Description

Functions to automate testing of 'univariate' and 'bivariate' point pattern hypothesis against non-Poisson (in-)homogeneous models.

### Usage

1 2 3 4 5 6 7 8 9 10 11 | ```
Kci(mod1, mod2, correction="trans", nsim=99, ngrid=200, nrep=1e+05,
r=NULL, simu="both", spctype=1)
Ki(mod1, correction="trans", nsim=99, ngrid=200, nrep=1e+05, r=NULL,
spctype=1)
## S3 ploth method for objects of class 'ecespa.kci':
## S3 method for class 'ecespa.kci'
plot(x, type=1, q=0.025, kmean=TRUE, add=FALSE, maine=NULL,
xlabe=NULL, ylabe=NULL, xlime=NULL, ylime=NULL,
lty=c(1,2,3), col=c(1,2,3), lwd=c(1,1,1), ...)
``` |

### Arguments

`mod1` |
Fitted model. An object of class |

`mod2` |
Fitted model. An object of class |

`correction` |
A character item selecting any of the options "border", "bord.modif", or "translate". It specifies the edge correction to be applied when computing K-functions. |

`nsim` |
Number of simulated point patterns to be generated when computing the envelopes. |

`ngrid` |
Dimensions (ngrid by ngrid) of a rectangular grid of locations where |

`nrep` |
Total number of steps (proposals) of Metropolis-Hastings algorithm that should be run by |

`r` |
Numeric vector. The values of the argument |

`simu` |
A character item indicating if both models will be simulated for the computation of the envelopes ( |

`spctype` |
Type of 'pre-thinning' method employed by |

`x` |
An object of class 'ecespa.kci'. The result of runing |

`type` |
What to plot. One of 1 ( |

`q` |
Quantile for selecting the simulation envelopes. |

`kmean` |
Logical. Should the mean of the simulated envelopes be ploted? |

`add` |
Logical. Should the kci.plot be added to a previous plot? |

`maine` |
Title to add to the plot. |

`xlabe` |
Text or expression to label the x-axis. |

`ylabe` |
Text or expression to label the y-axis. |

`xlime` |
Max and min coordinates for the x-axis. |

`ylime` |
Max and min coordinates for the y-axis. |

`lty` |
Vector with the line type for the estimated Kmm function, the simulated envelopes and the mean of the simulated envelopes. |

`col` |
Vector with the color for the estimated K-function, the simulated envelopes and the mean of the simulated envelopes. |

`lwd` |
Vector with the line width for the estimated K-function, the simulated envelopes and the mean of the simulated envelopes. |

`...` |
Additional graphical parameters passed to plot. |

### Details

These functions are designed to automate the testing of 'univariate' and(/or) 'bivariate' point pattern hypotheses (based on K-functions) against non-Poisson (in-)homogeneous
models. These non-Poisson (in-)homogeneous models should have been fitted with pseudolikelihood tools (`spatstat`

`ppm`

function)
or with minimum contrast methods (`ecespa.minconfit`

).

Function `Ki`

is designed to test 'univariate' hypotheses. It will compute the (in-)homogeneous K-function (using `spatstat`

`Kinhom`

function)
of the point pattern to which the `ppm`

or `ecespa.minconfit`

model has beeen fitted and will compute 'envelopes' simulating from the fitted model.
The computed envelopes can be considered as a pointwise test of the point pattern been a realisation of the fitted model.

Function `Kci`

is designed to test 'bivariate' hypotheses. It will compute the (in-)homogeneous cross K-function
(using `spatstat`

`Kcross.inhom`

function) and will compute envelopes simulating from the fitted models.
As, when dealing with inhomogeneos patterns *K12* != *K21*, `Kci`

will compute both functions. If `simu = "both"`

(default option),
`Kci`

will simulate from `mod2`

to test K12 and from `mod1`

to test K21. If `simu != "both"`

, only `mod2`

will be simulated. This option
may be useful when only K12 is of interest. Function `Kci`

will also compute univariate (in-) homogeneous K-functions and envelopes for each individual point pattern.

The S3 ploth method will plot the selected K-function and envelopes (actually, it will plot the most usual L-function = *sqrt[K(r)/pi]-r*).
The appropriate K function can be selected with the argument `type`

. If `type = 1`

(default option), it will plot the univariate K function
(of the analized model in `Ki`

or of the first model [mod1] in `Kci`

). If `type = 2`

, it will plot the univariate K function of the second model
(mod2 in `Kci`

). When `type = 12`

or `type = 21`

, it will plot respectively K12 or K21.
Options `type = 112`

or `type = 221`

will graph a kind of 'segregation test' (see `K1K2`

), and will represent de differences
K1-K12, K2-K21 and their envelopes.

### Value

Both `Kci`

and `Ki`

return an object of class `'ecespa.kci'`

, basically a list with the following items:

`r ` |
Numeric vector. The values of the argument |

`kia ` |
Numeric vector. Observed (in-)homogeneous K function for |

`kib ` |
Numeric vector. Observed (in-)homogeneous K function for |

`kci.ab.o ` |
Numeric vector. Observed (in-) homogeneous cross K-function (K12) for |

`kci.ba.o ` |
Numeric vector. Observed (in-) homogeneous cross K-function (K21) for |

`kci.ab.s ` |
Matrix of simulated (in-) homogeneous cross K-function (K12) for |

`kci.ba.s ` |
Matrix of simulated (in-) homogeneous cross K-function (K21) for |

`kib.s ` |
Matrix of simulated (in-)homogeneous K function for |

`kia.s ` |
Matrix of simulated (in-)homogeneous K function for |

`datanamea ` |
Name of |

`datanameb ` |
Name of |

`modnamea ` |
Name of model |

`modnameb ` |
Name of model |

`type ` |
Type of analysis. "Kci" or "Ki". |

### Warning

As this implementation involves the use of images as the means of evaluation of the (inhomogeneous) spatial trend, and a mask based on those images will be used as the point pattern window, the "Ripley's" or "isotropic" edge correction can not be employed.

It is usual that during the simulation process some warnings are produced. They are related to some simulated points being rejected as lying outside the specified window.

### Note

Even when one of the two point patterns is assumed to be homogeneous Poisson (and, apparently not worth of fitting any model), an homogeneous
Poisson model can be easily fitted and passed to `Kci`

with `ppm`

. See the examples.

### Author(s)

Marcelino de la Cruz Rot marcelino.delacruz@upm.es

### References

De la Cruz, M. and Escudero, A. 2008. Null models and tools for multivariate heterogeneous point patterns. *Submitted*.

De Soto, L., Olano, J.M., Rozas, V. and De la Cruz, M. 2009. Release of *Juniperus thurifera* woodlands from herbivore-mediated arrested succession in Spain. *Applied Vegetation Science*. DOI: 10.1111/j.1654-109X.2009.01045.x .

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | ```
## Not run:
require(spatstat)
data(urkiola)
#####################
## univariate case
# get univariate pp
I.ppp <- split.ppp(urkiola)$birch
# estimate inhomogeneous intensity function
I.lam <- predict (ppm(I.ppp, ~polynom(x,y,2)), type="trend", ngrid=200)
# Compute and plot envelopes to Kinhom, simulating from an Inhomogeneous
# Poisson Process:
I2.env <- envelope( I.ppp,Kinhom, lambda=I.lam, correction="trans",
nsim=99, simulate=expression(rpoispp(I.lam)))
plot(I2.env, sqrt(./pi)-r~r, xlab="r (metres)", ylab= "L (r)", col=c(1,3,2,2),legend=FALSE)
# It seems that there is short scale clustering; let's fit an Inhomogeneous
# Poisson Cluster Process:
I.ki <- ipc.estK(mippp=I.ppp, lambda=I.lam, correction="trans")
# Compute and plot envelopes to Kinhom, simulating from the fitted IPCP:
Ipc.env <- Ki(I.ki, correction="trans", nsim=99, ngrid=200)
plot (Ipc.env, xlab="r (metres)", ylab= "L (r)")
#####################
## bivariate case: test independence between birch and quercus in Urkiola
J.ppp <- split.ppp(urkiola)$oak
# We want to simulate oak from a homogeneous Poisson model:
J.ppm <- ppm(J.ppp, trend=~1, interaction=Poisson() )
IJ.env <- Kci (mod1=I.ki, mod2=J.ppm, nsim=99)
plot(IJ.env, type=12)
plot(IJ.env, type=21)
## End(Not run)
``` |