Gcross               package:spatstat               R Documentation

_M_u_l_t_i_t_y_p_e _N_e_a_r_e_s_t _N_e_i_g_h_b_o_u_r _D_i_s_t_a_n_c_e _F_u_n_c_t_i_o_n (_i-_t_o-_j)

_D_e_s_c_r_i_p_t_i_o_n:

     For a multitype point pattern,  estimate the distribution of the
     distance from a point of type i to the nearest point of type j.

_U_s_a_g_e:

     Gcross(X, i=1, j=2)
     Gcross(X, i=1, j=2, r)
     Gcross(X, i=1, j=2, breaks)

_A_r_g_u_m_e_n_t_s:

       X: The observed point pattern,  from which an estimate of the
          cross type distance distribution function Gij(r) will be
          computed. It must be a multitype point pattern (a marked
          point pattern whose marks are a factor). See under Details. 

       i: Number or character string identifying the type (mark value)
          of the points in `X' from which distances are measured. 

       j: Number or character string identifying the type (mark value)
          of the points in `X' to which distances are measured. 

       r: numeric vector. The values of the argument r at which the
          distribution function Gij(r) should be evaluated. There is a
          sensible default. First-time users are strongly advised not
          to specify this argument. See below for important conditions
          on r. 

  breaks: An alternative to the argument `r'. Not normally invoked by
          the user. See the Details section. 

_D_e_t_a_i_l_s:

     This function `Gcross' and its companions `Gdot' and `Gmulti' are
     generalisations of the function `Gest' to multitype point
     patterns. 

     A multitype point pattern is a spatial pattern of points
     classified into a finite number of possible ``colours'' or
     ``types''. In the `spatstat' package, a multitype pattern is
     represented as a single  point pattern object in which the points
     carry marks, and the mark value attached to each point determines
     the type of that point.

     The argument `X' must be a point pattern (object of class `"ppp"')
     or any data that are acceptable to `as.ppp'. It must be a marked
     point pattern, and the mark vector `X$marks' must be a factor. The
     arguments `i' and `j' will be interpreted as levels of the factor
     `X$marks'. (Warning: this means that an integer value `i=3' will
     be interpreted as the 3rd smallest level, not the number 3). 

     The ``cross-type'' (type i to type j) nearest neighbour distance
     distribution function  of a multitype point process  is the
     cumulative distribution function Gij(r) of the distance from a
     typical random point of the process with type i the nearest point
     of type j. 

     An estimate of Gij(r) is a useful summary statistic in exploratory
     data analysis of a multitype point pattern. If the process of type
     i points were independent of the process of type j points, then
     Gij(r) would equal Fj(r), the empty space function of the type j
     points. For a multitype Poisson point process where the type i
     points have intensity lambda[i], we have

              Gij(r) = 1 - exp( - lambda[j] * pi * r^2)

     Deviations between the empirical and theoretical Gij curves may
     suggest dependence between the points of types i and j.

     This algorithm estimates the distribution function Gij(r)  from
     the point pattern `X'. It assumes that `X' can be treated as a
     realisation of a stationary (spatially homogeneous)  random
     spatial point process in the plane, observed through a bounded
     window. The window (which is specified in `X' as `X$window') may
     have arbitrary shape. Biases due to edge effects are treated in
     the same manner as in `Gest'.

     The argument `r' is the vector of values for the distance r at
     which Gij(r) should be evaluated.  It is also used to determine
     the breakpoints (in the sense of `hist') for the computation of
     histograms of distances. The reduced-sample and Kaplan-Meier
     estimators are computed from histogram counts.  In the case of the
     Kaplan-Meier estimator this introduces a discretisation error
     which is controlled by the fineness of the breakpoints.

     First-time users would be strongly advised not to specify `r'.
     However, if it is specified, `r' must satisfy `r[1] = 0',  and
     `max(r)' must be larger than the radius of the largest disc 
     contained in the window. Furthermore, the successive entries of
     `r' must be finely spaced.

     The algorithm also returns an estimate of the hazard rate
     function,  lambda(r), of Gij(r).  This estimate should be used
     with caution as Gij(r) is not necessarily differentiable.

     The naive empirical distribution of distances from each point of
     the pattern `X' to the nearest other point of the pattern,  is a
     biased estimate of Gij. However this is also returned by the
     algorithm, as it is sometimes  useful in other contexts. Care
     should be taken not to use the uncorrected empirical Gij as if it
     were an unbiased estimator of Gij.

_V_a_l_u_e:

     A data frame containing 6 numeric columns  

       r: the values of the argument r  at which the function Gij(r)
          has been  estimated 

      rs: the ``reduced sample'' or ``border correction'' estimator of
          Gij(r) 

      km: the spatial Kaplan-Meier estimator of Gij(r) 

  hazard: the hazard rate lambda(r) of Gij(r) by the spatial
          Kaplan-Meier method 

     raw: the uncorrected estimate of Gij(r), i.e. the empirical
          distribution of the distances from  each point of type i to
          the nearest point of type j 

    theo: the theoretical value of Gij(r) for a marked Poisson process
          with the same estimated intensity (see below). 

_W_a_r_n_i_n_g_s:

     The arguments `i' and `j' are interpreted as levels of the factor
     `X$marks'. Beware of the usual trap with factors: numerical values
     are not interpreted in the same way as character values. See the
     first example.

     The function Gij does not necessarily have a density. 

     The reduced sample estimator of Gij is pointwise approximately 
     unbiased, but need not be a valid distribution function; it may 
     not be a nondecreasing function of r. Its range is always  within
     [0,1].

     The spatial Kaplan-Meier estimator of Gij is always nondecreasing
     but its maximum value may be less than 1.

_A_u_t_h_o_r(_s):

     Adrian Baddeley adrian@maths.uwa.edu.au <URL:
     http://www.maths.uwa.edu.au/~adrian/> and Rolf Turner
     rolf@math.unb.ca <URL: http://www.math.unb.ca/~rolf>

_R_e_f_e_r_e_n_c_e_s:

     Cressie, N.A.C. Statistics for spatial data. John Wiley and Sons,
     1991.

     Diggle, P.J. Statistical analysis of spatial point patterns.
     Academic Press, 1983.

     Diggle, P. J. (1986). Displaced amacrine cells in the retina of a
     rabbit : analysis of a bivariate spatial point pattern.  J.
     Neurosci. Meth. 18, 115-125.

     Harkness, R.D and Isham, V. (1983) A bivariate spatial point
     pattern of ants' nests. Applied Statistics 32, 293-303

     Lotwick, H. W. and Silverman, B. W. (1982). Methods for analysing
     spatial processes of several types of points. J. Royal Statist.
     Soc. Ser. B 44, 406-413.

     Ripley, B.D. Statistical inference for spatial processes.
     Cambridge University Press, 1988.

     Stoyan, D, Kendall, W.S. and Mecke, J. Stochastic geometry and its
     applications. 2nd edition. Springer Verlag, 1995.

     Van Lieshout, M.N.M. and Baddeley, A.J. (1999) Indices of
     dependence between types in multivariate point patterns.
     Scandinavian Journal of Statistics 26, 511-532.

_S_e_e _A_l_s_o:

     `Gdot', `Gest', `Gmulti'

_E_x_a_m_p_l_e_s:

         library(spatstat)
         data(catWaessle)
          # cat retina data: types 0,1 represent off/on
         G01 <- Gcross(catWaessle, "0", "1") # note: "0" not 0
         plot(G01$r, G01$km,
                       xlab="r", ylab="G01(r)",
                       type="l", ylim=c(0,1))
         G10 <- Gcross(catWaessle, "1", "0")
         # Poisson theoretical curve
         lambda1 <-
              table(catWaessle$marks)["1"]/area.owin(catWaessle$window)
         lines(G01$r, 1 - exp( - lambda1 * pi * G01$r^2), lty=2)

         # empty space function of type 1 points

            F1 <- Fest(catWaessle[catWaessle$marks == "1"], r = G01$r, eps=0.01)
            lines(F1$r, F1$km, lty=3)


         # synthetic example    
         pp <- runifpoispp(50)
         pp$marks <- sample(c("a","b"), pp$n, replace=TRUE)
         G <- Gcross(pp, "a", "b")

