R: Nonparametric Estimate of Spatially-Varying Relative Risk

relrisk.ppp {spatstat.core} | R Documentation

## Nonparametric Estimate of Spatially-Varying Relative Risk

### Description

Given a multitype point pattern, this function estimates the spatially-varying probability of each type of point, or the ratios of such probabilities, using kernel smoothing. The default smoothing bandwidth is selected by cross-validation.

### Usage

    ## S3 method for class 'ppp'
    relrisk(X, sigma = NULL, ...,
               at = c("pixels", "points"),
               weights = NULL, varcov = NULL,
               relative=FALSE,
               adjust=1, edge=TRUE, diggle=FALSE, se=FALSE,
               casecontrol=TRUE, control=1, case)

### Arguments

`X` | A multitype point pattern (object of class `"ppp"` which has factor valued marks).
`sigma` | Optional. The numeric value of the smoothing bandwidth (the standard deviation of isotropic Gaussian smoothing kernel). Alternatively `sigma` may be a function which can be used to select a different bandwidth for each type of point. See Details.
`...` | Arguments passed to `bw.relrisk` to select the bandwidth, or passed to `density.ppp` to control the pixel resolution.
`at` | Character string specifying whether to compute the probability values at a grid of pixel locations (`at="pixels"`) or only at the points of `X` (`at="points"`).
`weights` | Optional. Weights for the data points of `X`. A numeric vector, an `expression`, or a pixel image.
`varcov` | Optional. Variance-covariance matrix of anisotopic Gaussian smoothing kernel. Incompatible with `sigma`.
`relative` | Logical. If `FALSE` (the default) the algorithm computes the probabilities of each type of point. If `TRUE`, it computes the relative risk, the ratio of probabilities of each type relative to the probability of a control.
`adjust` | Optional. Adjustment factor for the bandwidth `sigma`.
`edge` | Logical value indicating whether to apply edge correction.
`diggle` | Logical. If `TRUE`, use the Jones-Diggle improved edge correction, which is more accurate but slower to compute than the default correction.
`se` | Logical value indicating whether to compute standard errors as well.
`casecontrol` | Logical. Whether to treat a bivariate point pattern as consisting of cases and controls, and return only the probability or relative risk of a case. Ignored if there are more than 2 types of points. See Details.
`control` | Integer, or character string, identifying which mark value corresponds to a control.
`case` | Integer, or character string, identifying which mark value corresponds to a case (rather than a control) in a bivariate point pattern. This is an alternative to the argument `control` in a bivariate point pattern. Ignored if there are more than 2 types of points.

### Details

The command `relrisk` is generic and can be used to estimate relative risk in different ways.

This function `relrisk.ppp` is the method for point pattern datasets. It computes nonparametric estimates of relative risk by kernel smoothing.

If `X` is a bivariate point pattern (a multitype point pattern consisting of two types of points) then by default, the points of the first type (the first level of `marks(X)`) are treated as controls or non-events, and points of the second type are treated as cases or events. Then by default this command computes the spatially-varying probability of a case, i.e. the probability p(u) that a point at spatial location u will be a case. If `relative=TRUE`, it computes the spatially-varying relative risk of a case relative to a control, r(u) = p(u)/(1- p(u)).

If `X` is a multitype point pattern with m > 2 types, or if `X` is a bivariate point pattern and `casecontrol=FALSE`, then by default this command computes, for each type j, a nonparametric estimate of the spatially-varying probability of an event of type j. This is the probability p[j](u) that a point at spatial location u will belong to type j. If `relative=TRUE`, the command computes the relative risk of an event of type j relative to a control, r[j](u) = p[j](u)/p[k](u), where events of type k are treated as controls. The argument `control` determines which type k is treated as a control.

If `at = "pixels"` the calculation is performed for every spatial location u on a fine pixel grid, and the result is a pixel image representing the function p(u) or a list of pixel images representing the functions p[j](u) or r[j](u) for j = 1,...,m. An infinite value of relative risk (arising because the probability of a control is zero) will be returned as `NA`.

If `at = "points"` the calculation is performed only at the data points x[i]. By default the result is a vector of values p(x[i]) giving the estimated probability of a case at each data point, or a matrix of values p[j](x[i]) giving the estimated probability of each possible type j at each data point. If `relative=TRUE` then the relative risks r(x[i]) or r[j](x[i]) are returned. An infinite value of relative risk (arising because the probability of a control is zero) will be returned as `Inf`.

Estimation is performed by a simple Nadaraja-Watson type kernel smoother (Diggle, 2003). The smoothing bandwidth can be specified in any of the following ways:

- `sigma` is a single numeric value, giving the standard deviation of the isotropic Gaussian kernel.

- `sigma` is a numeric vector of length 2, giving the standard deviations in the x and y directions of a Gaussian kernel.

- `varcov` is a 2 by 2 matrix giving the variance-covariance matrix of the Gaussian kernel.

- `sigma` is a `function` which selects the bandwidth. Bandwidth selection will be applied separately to each type of point. An example of such a function is `bw.diggle`.

- `sigma` and `varcov` are both missing or null. Then a common smoothing bandwidth `sigma` will be selected by cross-validation using `bw.relrisk`.

- An infinite smoothing bandwidth, `sigma=Inf`, is permitted and yields a constant estimate of relative risk.

If `se=TRUE` then standard errors will also be computed, based on asymptotic theory, assuming a Poisson process.

The optional argument `weights` may provide numerical weights for the points of `X`. It should be a numeric vector of length equal to `npoints(X)`.

The argument `weights` can also be an `expression`. It will be evaluated in the data frame `as.data.frame(X)` to obtain a vector of weights. The expression may involve the symbols `x` and `y` representing the Cartesian coordinates, and the symbol `marks` representing the mark values.

The argument `weights` can also be a pixel image (object of class `"im"`). numerical weights for the data points will be extracted from this image (by looking up the pixel values at the locations of the data points in `X`).

### Value

If `se=FALSE` (the default), the format is described below. If `se=TRUE`, the result is a list of two entries, `estimate` and `SE`, each having the format described below.

If `X` consists of only two types of points, and if `casecontrol=TRUE`, the result is a pixel image (if `at="pixels"`) or a vector (if `at="points"`). The pixel values or vector values are the probabilities of a case if `relative=FALSE`, or the relative risk of a case (probability of a case divided by the probability of a control) if `relative=TRUE`.

If `X` consists of more than two types of points, or if `casecontrol=FALSE`, the result is:

- (if `at="pixels"`) a list of pixel images, with one image for each possible type of point. The result also belongs to the class `"solist"` so that it can be printed and plotted.

- (if `at="points"`) a matrix of probabilities, with rows corresponding to data points x[i], and columns corresponding to types j.

The pixel values or matrix entries are the probabilities of each type of point if `relative=FALSE`, or the relative risk of each type (probability of each type divided by the probability of a control) if `relative=TRUE`.

If `relative=FALSE`, the resulting values always lie between 0 and 1. If `relative=TRUE`, the results are either non-negative numbers, or the values `Inf` or `NA`.

### Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner r.turner@auckland.ac.nz.

### References

Diggle, P.J. (2003) Statistical analysis of spatial point patterns, Second edition. Arnold.

### See Also

There is another method `relrisk.ppm` for point process models which computes parametric estimates of relative risk, using the fitted model.

See also `bw.relrisk`, `density.ppp`, `Smooth.ppp`, `eval.im`

### Examples

       p.oak <- relrisk(urkiola, 20)
       if(interactive()) {
          plot(p.oak, main="proportion of oak")
          plot(eval.im(p.oak > 0.3), main="More than 30 percent oak")
          plot(split(lansing), main="Lansing Woods")
          p.lan <- relrisk(lansing, 0.05, se=TRUE)
          plot(p.lan$estimate, main="Lansing Woods species probability")
          plot(p.lan$SE, main="Lansing Woods standard error")
          wh <- im.apply(p.lan$estimate, which.max)
          types <- levels(marks(lansing))
          wh <- eval.im(types[wh])
          plot(wh, main="Most common species")
       }

[Package spatstat.core version 1.65-5 Index]