spatstat.core (version 2.1-2)

Softcore: The Soft Core Point Process Model


Creates an instance of the Soft Core point process model which can then be fitted to point pattern data.


Softcore(kappa, sigma0=NA)



The exponent \(\kappa\) of the Soft Core interaction


Optional. Initial estimate of the parameter \(\sigma\). A positive number.


An object of class "interact" describing the interpoint interaction structure of the Soft Core process with exponent \(\kappa\).


The (stationary) Soft Core point process with parameters \(\beta\) and \(\sigma\) and exponent \(\kappa\) is the pairwise interaction point process in which each point contributes a factor \(\beta\) to the probability density of the point pattern, and each pair of points contributes a factor $$ \exp \left\{ - \left( \frac{\sigma}{d} \right)^{2/\kappa} \right\} $$ to the density, where \(d\) is the distance between the two points. See the Examples for a plot of this interaction curve.

Thus the process has probability density $$ f(x_1,\ldots,x_n) = \alpha \beta^{n(x)} \exp \left\{ - \sum_{i < j} \left( \frac{\sigma}{||x_i-x_j||} \right)^{2/\kappa} \right\} $$ where \(x_1,\ldots,x_n\) represent the points of the pattern, \(n(x)\) is the number of points in the pattern, \(\alpha\) is the normalising constant, and the sum on the right hand side is over all unordered pairs of points of the pattern.

This model describes an ``ordered'' or ``inhibitive'' process, with the strength of inhibition decreasing smoothly with distance. The interaction is controlled by the parameters \(\sigma\) and \(\kappa\).

  • The spatial scale of interaction is controlled by the parameter \(\sigma\), which is a positive real number interpreted as a distance, expressed in the same units of distance as the spatial data. The parameter \(\sigma\) is the distance at which the pair potential reaches the threshold value 0.37.

  • The shape of the interaction function is controlled by the exponent \(\kappa\) which is a dimensionless number in the range \((0,1)\), with larger values corresponding to a flatter shape (or a more gradual decay rate). The process is well-defined only for \(\kappa\) in \((0,1)\). The limit of the model as \(\kappa \to 0\) is the hard core process with hard core distance \(h=\sigma\).

  • The “strength” of the interaction is determined by both of the parameters \(\sigma\) and \(\kappa\). The larger the value of \(\kappa\), the wider the range of distances over which the interaction has an effect. If \(\sigma\) is very small, the interaction is very weak for all practical purposes (theoretically if \(\sigma = 0\) the model reduces to the Poisson point process).

The nonstationary Soft Core process is similar except that the contribution of each individual point \(x_i\) is a function \(\beta(x_i)\) of location, rather than a constant beta.

The function ppm(), which fits point process models to point pattern data, requires an argument of class "interact" describing the interpoint interaction structure of the model to be fitted. The appropriate description of the Soft Core process pairwise interaction is yielded by the function Softcore(). See the examples below.

The main argument is the exponent kappa. When kappa is fixed, the model becomes an exponential family with canonical parameters \(\log \beta\) and $$ \log \gamma = \frac{2}{\kappa} \log\sigma $$ The canonical parameters are estimated by ppm(), not fixed in Softcore().

The optional argument sigma0 can be used to improve numerical stability. If sigma0 is given, it should be a positive number, and it should be a rough estimate of the parameter \(\sigma\).


Ogata, Y, and Tanemura, M. (1981). Estimation of interaction potentials of spatial point patterns through the maximum likelihood procedure. Annals of the Institute of Statistical Mathematics, B 33, 315--338.

Ogata, Y, and Tanemura, M. (1984). Likelihood analysis of spatial point patterns. Journal of the Royal Statistical Society, series B 46, 496--518.

See Also

ppm,, ppm.object


   # fit the stationary Soft Core process to `cells' 
   fit5 <- ppm(cells ~1, Softcore(kappa=0.5), correction="isotropic")

   # study shape of interaction and explore effect of parameters
   fit2 <- update(fit5, Softcore(kappa=0.2))
   fit8 <- update(fit5, Softcore(kappa=0.8))
   plot(fitin(fit2), xlim=c(0, 0.4),
        main="Pair potential (sigma = 0.1)", 
        xlab=expression(d), ylab=expression(h(d)), legend=FALSE)
   plot(fitin(fit5), add=TRUE, col=4)
   plot(fitin(fit8), add=TRUE, col=3)
   legend("bottomright", col=c(1,4,3), lty=1,
          legend=expression(kappa==0.2, kappa==0.5, kappa==0.8))
# }