Performs a test of Complete Spatial Randomness for a given point pattern on a linear network, based on quadrat counts. Alternatively performs a goodness-of-fit test of a fitted inhomogeneous Poisson model on a network. By default performs chi-squared tests; can also perform power-divergence tests and Monte Carlo tests.
# S3 method for lpp
quadrat.test(X, ...,
tess=NULL,
nx=5, ny=nx,
xbreaks=NULL, ybreaks=NULL,
alternative=c("two.sided", "regular", "clustered"),
method=c("Chisq", "MonteCarlo"),
conditional=TRUE, CR=1,
lambda=NULL, df.est=NULL,
nsim=1999)
# S3 method for lppm
quadrat.test(X,...,
tess=NULL,
nx=5, ny=nx,
xbreaks=NULL, ybreaks=NULL,
alternative=c("two.sided", "regular", "clustered"),
method=c("Chisq", "MonteCarlo"),
conditional=TRUE, CR=1, df.est=NULL,
nsim=1999)
# S3 method for linearquadratcount
quadrat.test(X, ...,
alternative=c("two.sided", "regular", "clustered"),
method=c("Chisq", "MonteCarlo"),
conditional=TRUE, CR=1,
lambda=NULL, df.est=NULL,
nsim=1999)An object of class "htest". See chisq.test
for explanation.
The return value is also an object of the special class
"quadrattest", and there is a plot method for this class.
See the examples.
A point pattern on a network (object of class "lpp")
to be subjected to the goodness-of-fit test.
Alternatively a fitted point process model on a network (object of class
"lppm") to be tested.
Alternatively X can be the result of applying
quadratcount to a point pattern on a network.
Tessellation (object of class "tess" or "lintess")
determining the quadrats. Incompatible with nx,ny,xbreaks,ybreaks.
Numbers of quadrats in the \(x\) and \(y\) directions.
Incompatible with xbreaks and ybreaks.
Optional. Numeric vector giving the \(x\) coordinates of the
boundaries of the quadrats. Incompatible with nx.
Optional. Numeric vector giving the \(y\) coordinates of the
boundaries of the quadrats. Incompatible with ny.
Character string (partially matched) specifying the alternative hypothesis.
Character string (partially matched) specifying the test to use:
either method="Chisq" for the chi-squared test (the default),
or method="MonteCarlo" for a Monte Carlo test.
Logical. Should the Monte Carlo test be conducted
conditionally upon the observed number of points of the pattern?
Ignored if method="Chisq".
Optional. Numerical value. The exponent for the Cressie-Read test statistic. See Details.
Optional. Pixel image (object of class "im" or "linim")
or function (class "funxy") giving the predicted
intensity of the point process.
Optional. Advanced use only. The number of fitted parameters, or the number of degrees of freedom lost by estimation of parameters.
Ignored.
The number of simulated samples to generate when
method="MonteCarlo".
Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner rolfturner@posteo.net and Ege Rubak rubak@math.aau.dk.
These functions perform \(\chi^2\) tests or Monte Carlo tests of goodness-of-fit for a point process model on a linear network, based on quadrat counts.
The function quadrat.test is generic, with methods for
many classes. This page documents the methods for data on a linear
network.
if X is a point pattern on a network (object of class
"lpp"),
we test the null hypothesis
that the data pattern is a realisation of Complete Spatial
Randomness (the uniform Poisson point process) on the network.
Marks in the point
pattern are ignored. (If lambda is given then the null
hypothesis is the Poisson process with intensity lambda.)
If X is a fitted point process model on a network (object of
class "lppm"), then it should be
a Poisson point process model. The
data to which this model was fitted are extracted from the model
object, and are treated as the data point pattern for the test.
We test the null hypothesis
that the data pattern is a realisation of the (inhomogeneous) Poisson point
process specified by X.
First the network is divided into pieces to form a
tessellation (object of class "lintess") as follows:
By default, if none of the arguments
nx, ny, xbreaks, ybreaks, tess is given,
every segment of the network is taken as a separate piece.
The number of points in each segment of the network is counted.
If nx, ny are given, the window containing
the point pattern X is divided into
an nx * ny grid of rectangular tiles or `quadrats'.
These tiles are then intersected with the network on which X
is defined. The number of points falling in each rectangle
is counted.
If xbreaks is given,
the window containing the point pattern X will be divided
into rectangles, with xbreaks and ybreaks
giving the \(x\) and \(y\) coordinates of the rectangle
boundaries, respectively.
The lengths of xbreaks and ybreaks may be different.
The argument tess can be a tessellation on the network
(object of class "lintess") whose tiles will serve as the
quadrats.
Alternatively tess can be a two-dimensional tessellation
(object of class "tess") which will be intersected with the
network to determine the tessellation of the network.
Next the number of data points in each tile of the tessellation is counted.
The expected number of points in each quadrat is also calculated, as determined by CSR (in the first case) or by the fitted model (in the second case).
Then the Pearson \(X^2\) statistic $$ X^2 = sum((observed - expected)^2/expected) $$ is computed.
If method="Chisq" then a \(\chi^2\) test of
goodness-of-fit is performed by comparing the test statistic
to the \(\chi^2\) distribution
with \(m-k\) degrees of freedom, where m is the number of
quadrats and \(k\) is the number of fitted parameters
(equal to 1 for quadrat.test.ppp). The default is to
compute the two-sided \(p\)-value, so that the test will
be declared significant if \(X^2\) is either very large or very
small. One-sided \(p\)-values can be obtained by specifying the
alternative. An important requirement of the
\(\chi^2\) test is that the expected counts in each quadrat
be greater than 5.
If method="MonteCarlo" then a Monte Carlo test is performed,
obviating the need for all expected counts to be at least 5. In the
Monte Carlo test, nsim random point patterns are generated
from the null hypothesis (either CSR or the fitted point process
model). The Pearson \(X^2\) statistic is computed as above.
The \(p\)-value is determined by comparing the \(X^2\)
statistic for the observed point pattern, with the values obtained
from the simulations. Again the default is to
compute the two-sided \(p\)-value.
If conditional is TRUE then the simulated samples are
generated from the multinomial distribution with the number of “trials”
equal to the number of observed points and the vector of probabilities
equal to the expected counts divided by the sum of the expected counts.
Otherwise the simulated samples are independent Poisson counts, with
means equal to the expected counts.
If the argument CR is given, then instead of the
Pearson \(X^2\) statistic, the Cressie-Read (1984) power divergence
test statistic
$$
2nI = \frac{2}{CR(CR+1)}
\sum_i \left[ \left( \frac{X_i}{E_i} \right)^CR - 1 \right]
$$
is computed, where \(X_i\) is the \(i\)th observed count
and \(E_i\) is the corresponding expected count.
The value CR=1 gives the Pearson \(X^2\) statistic;
CR=0 gives the likelihood ratio test statistic \(G^2\);
CR=-1/2 gives the Freeman-Tukey statistic \(T^2\);
CR=-1 gives the modified likelihood ratio test statistic \(GM^2\);
and CR=-2 gives Neyman's modified statistic \(NM^2\).
In all cases the asymptotic distribution of this test statistic is
the same \(\chi^2\) distribution as above.
The return value is an object of class "htest".
Printing the object gives comprehensible output
about the outcome of the test.
The return value also belongs to
the special class "quadrat.test". Plotting the object
will display the quadrats, annotated by their observed and expected
counts and the Pearson residuals. See the examples.
Cressie, N. and Read, T.R.C. (1984) Multinomial goodness-of-fit tests. Journal of the Royal Statistical Society, Series B 46, 440--464.
quadrat.test,
quadratcount.lpp,
lintess.
X <- runiflpp(100, simplenet)
quadrat.test(X)
quadrat.test(X, nx=2)
Run the code above in your browser using DataLab