rshift.ppp {spatstat.random} | R Documentation |
Randomly Shift a Point Pattern
Description
Randomly shifts the points of a point pattern.
Usage
## S3 method for class 'ppp'
rshift(X, ..., which=NULL, group, nsim=1, drop=TRUE)
Arguments
X |
Point pattern to be subjected to a random shift.
An object of class |
... |
Arguments that determine the random shift. See Details. |
group |
Optional. Factor specifying a grouping of the points of |
which |
Optional. Identifies which groups of the pattern will be shifted,
while other groups are not shifted. A vector of levels of |
nsim |
Number of simulated realisations to be generated. |
drop |
Logical. If |
Details
This operation randomly shifts the locations of the points in a point pattern.
The function rshift
is generic. This function rshift.ppp
is the method for point patterns.
The most common use of this function is to shift the points in a multitype point pattern. By default, points of the same type are shifted in parallel (i.e. points of a common type are shifted by a common displacement vector), and independently of other types. This is useful for testing the hypothesis of independence of types (the null hypothesis that the sub-patterns of points of each type are independent point processes).
In general the points of X
are divided into groups,
then the points within a group are shifted by a common
random displacement vector. Different groups of points are shifted
independently. The grouping is determined as follows:
-
If the argument
group
is present, then this determines the grouping. -
Otherwise, if
X
is a multitype point pattern, the marks determine the grouping. -
Otherwise, all points belong to a single group.
The argument group
should be a factor, of length equal to the
number of points in X
. Alternatively group
may be NULL
,
which specifies that all points of X
belong to a single group.
By default, every group of points will be shifted.
The argument which
indicates that only some of the groups
should be shifted, while other groups should be left unchanged.
which
must be a vector of levels of group
(for example, a vector of types in a multitype pattern)
indicating which groups are to be shifted.
The displacement vector, i.e. the vector
by which the data points are shifted,
is generated at random.
Parameters that control the randomisation
and the handling of edge effects are passed through
the ...
argument. They are
- radius,width,height
-
Parameters of the random shift vector.
- edge
-
String indicating how to deal with edges of the pattern. Options are
"torus"
,"erode"
and"none"
. - clip
-
Optional. Window to which the final point pattern should be clipped.
If the window is a rectangle, the default behaviour is
to generate a displacement vector at random with equal probability
for all possible displacements. This means that the x
and
y
coordinates of the displacement vector are independent random
variables, uniformly distributed over the range of possible coordinates.
Alternatively, the displacement vector can be generated by
another random mechanism, controlled by the arguments
radius
, width
and height
.
- rectangular:
-
if
width
andheight
are given, then the displacement vector is uniformly distributed in a rectangle of these dimensions, centred at the origin. The maximum possible displacement in thex
direction iswidth/2
. The maximum possible displacement in they
direction isheight/2
. Thex
andy
displacements are independent. (Ifwidth
andheight
are actually equal to the dimensions of the observation window, then this is equivalent to the default.) - radial:
-
if
radius
is given, then the displacement vector is generated by choosing a random point inside a disc of the given radius, centred at the origin, with uniform probability density over the disc. Thus the argumentradius
determines the maximum possible displacement distance. The argumentradius
is incompatible with the argumentswidth
andheight
.
The argument edge
controls what happens when
a shifted point lies outside the window of X
.
Options are:
- "none":
-
Points shifted outside the window of
X
simply disappear. - "torus":
-
Toroidal or periodic boundary. Treat opposite edges of the window as identical, so that a point which disappears off the right-hand edge will re-appear at the left-hand edge. This is called a “toroidal shift” because it makes the rectangle topologically equivalent to the surface of a torus (doughnut).
The window must be a rectangle. Toroidal shifts are undefined if the window is non-rectangular.
- "erode":
-
Clip the point pattern to a smaller window.
If the random displacements are generated by a radial mechanism (see above), then the window of
X
is eroded by a distance equal to the value of the argumentradius
, usingerosion
.If the random displacements are generated by a rectangular mechanism, then the window of
X
is (if it is not rectangular) eroded by a distancemax(height,width)
usingerosion
; or (if it is rectangular) trimmed by a margin of widthwidth
at the left and right sides and trimmed by a margin of heightheight
at the top and bottom.The rationale for this is that the clipping window is the largest window for which edge effects can be ignored.
The optional argument clip
specifies a smaller window
to which the pattern should be restricted.
If nsim > 1
, then the simulation procedure is
performed nsim
times; the result is a list of nsim
point patterns.
Value
A point pattern (object of class "ppp"
)
or a list of point patterns.
Author(s)
Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner rolfturner@posteo.net
See Also
Examples
# random toroidal shift
# shift "on" and "off" points separately
X <- rshift(amacrine)
# shift "on" points and leave "off" points fixed
X <- rshift(amacrine, which="on")
# shift all points simultaneously
X <- rshift(amacrine, group=NULL)
# maximum displacement distance 0.1 units
X <- rshift(amacrine, radius=0.1, nsim=2)
# shift with erosion
X <- rshift(amacrine, radius=0.1, edge="erode")