StraussPointProcess[μ,γ,rs,d]
represents a Strauss point process with constant intensity μ, interaction parameter γ and interaction radius rs in d.
StraussPointProcess
StraussPointProcess[μ,γ,rs,d]
represents a Strauss point process with constant intensity μ, interaction parameter γ and interaction radius rs in d.
Details
- StraussPointProcess models point configurations with a constant repulsive pairwise interaction for points within radius rs of each other but that are otherwise uniformly distributed.
- The Strauss model is typically used when the process interaction has a constant penalty for points within radius rs, including for locations of plants, birds nests and biological cells.
-

- The Strauss point process can be defined as a GibbsPointProcess in terms of its intensity μ and the pair potential ϕ or pair interaction h, which are both parametrized by γ and rs as follows:
-

pair potential 
pair interaction - A point configuration
from a Strauss point process StraussPointProcess[μ,γ,rs,d] in an observation region reg has density function
proportional to
, where
with respect to PoissonPointProcess[1,d]. - The Papangelou conditional density
for adding a point
to a point configuration
is
where
. - StraussPointProcess allows μ, γ and
to be any positive numbers such that
, and d to be any positive integer. - StraussPointProcess simplifies to HardcorePointProcess when
and to PoissonPointProcess when
. Smaller values of
inhibit points being closer than
. - Possible Method settings in RandomPointConfiguration for StraussPointProcess are:
-
"MCMC" Markov chain Monte Carlo birth and death "Exact" coupling from the past - Possible PointProcessEstimator settings in EstimatedPointProcess for StraussPointProcess are:
-
Automatic automatically choose the parameter estimator "MaximumPseudoLikelihood" maximize the pseudo-likelihood - StraussPointProcess can be used with such functions as RipleyK and RandomPointConfiguration.
Examples
open all close allBasic Examples (2)
Sample from a Strauss point process:
domain = Rectangle[{0, 0}, {10, 10}];pts = RandomPointConfiguration[StraussPointProcess[30, 0.1, 1., 2], domain]Visualize the points in the sample:
ListPlot[pts]reg = Entity["Country", "Switzerland"]pts = RandomPointConfiguration[StraussPointProcess[Quantity[1., "Kilometers" ^ -2], .5, Quantity[50., "Kilometers"], 2], reg]GeoListPlot[pts]Scope (4)
Generate several realizations from a Strauss point process in
:
proc = StraussPointProcess[100, 0.5, 0.1, 2];
reg = Rectangle[];sample = RandomPointConfiguration[proc, reg, 3]ListPlot[sample]Clear[μ, γ, R];EstimatedPointProcess[sample, StraussPointProcess[μ, γ, R, 2]]Generate several realizations from a Strauss point process on the surface of the Earth:
μ = Quantity[10. ^ -2, "Kilometers" ^ -2];
rs = Quantity[5., "Kilometers"];
γ = .5;proc = StraussPointProcess[μ, γ, rs, 2];
reg = GeoDisk[Entity["Island", "Santorini"], Quantity[30, "Kilometers"]];sample = RandomPointConfiguration[proc, reg, 2]GeoListPlot[sample]Clear[μ, γ, rs];
EstimatedPointProcess[sample, StraussPointProcess[μ, γ, rs, 2]]Generate samples with an increasing interacting radius:
proc = StraussPointProcess[10, 0.3, r, 2];sample[r_] := RandomPointConfiguration[proc, Rectangle[{0, 0}, {10, 10}]]range = {.5, 1, 2};Table[ListPlot[sample[r], PlotLabel -> Row[{"r = ", r}]], {r, range}]Generate samples with increasing interacting parameter γ:
proc = StraussPointProcess[10, γ, 1, 2];sample[γ_] := RandomPointConfiguration[proc, Rectangle[{0, 0}, {10, 10}]];gammas = {0.01, 0.1, 0.9};samples = Table[sample[γ], {γ, gammas}];Table[ListPlot[sample[γ], PlotLabel -> Row[{"γ = ", γ}]], {γ, gammas}]Options (4)
Method (4)
Use the Markov chain Monte Carlo simulation method:
proc = StraussPointProcess[10 ^ 3, .2, .1, 2];
reg = Disk[];RandomPointConfiguration[proc, reg, Method -> "MCMC"]Specify the number of recursive calls to the sampler:
RandomPointConfiguration[proc, reg, Method -> {"MCMC", MaxRecursion -> 6}]RandomPointConfiguration[proc, reg, Method -> {"MCMC", "LengthOfRun" -> 5000}]Provide an initial state for the simulation:
proc = StraussPointProcess[50, 0.3, .1, 2];
reg = Disk[];RandomPointConfiguration[proc, reg, Method -> {"MCMC", "InitialState" -> RandomPoint[reg, 100]}]Visualize the birth and death process at different stages:
proc = StraussPointProcess[50, 0.3, .1, 2];
reg = Disk[];path = Table[
BlockRandom[
SeedRandom[1];
RandomPointConfiguration[proc, reg, Method -> {"MCMC", "InitialState" -> {{0., 0.4}, {-0.3, -0.2}}, "LengthOfRun" -> len}]["Points"]]
, {len, 1, 100}];Animate[
Graphics[{Lighter[GrayLevel[.4], .8], Disk[{0, 0}, 1.02], Black, PointSize[0.02], Point[path[[i]]]}]
, {i, 1, Length[path], 1}, TrackedSymbols :> i, SaveDefinitions -> True, AnimationRate -> 2, AnimationRunning -> False]Use coupling from the past for exact sampling:
proc = StraussPointProcess[8, 0.4, 0.2, 2];pts = RandomPointConfiguration[proc, Rectangle[{0, 0}, {5, 5}], Method -> "Exact"]ListPlot[pts]Applications (1)
Possible Issues (2)
By default, the simulation will run until the number of points converges to a steady state, or until the default number of iterations is reached:
proc = StraussPointProcess[10 ^ 3, .2, .01, 2];
reg = Disk[];RandomPointConfiguration[proc, reg]Raise the number of recursive calls to the sampler:
RandomPointConfiguration[proc, reg, Method -> {"MCMC", MaxRecursion -> 6}]Specify a larger length of run:
RandomPointConfiguration[proc, reg, Method -> {"MCMC", "LengthOfRun" -> 5 * 10 ^ 4}]The objective function for estimating the parameters is the pseudo log-likelihood:
proc = StraussPointProcess[50, 0.5, 0.1, 2];
reg = Rectangle[];BlockRandom[sample = RandomPointConfiguration[proc, reg], RandomSeeding -> 4]est = EstimatedPointProcess[sample, StraussPointProcess[μ, γ, r, 2]]The estimated process has a higher pseudo log-likelihood:
sample["PseudoLogLikelihood", est]sample["PseudoLogLikelihood", proc]Both processes generate data that looks similar:
sample2 = RandomPointConfiguration[est, reg]ListPlot[{sample["Points"], sample2["Points"]}]Related Guides
History
Text
Wolfram Research (2020), StraussPointProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/StraussPointProcess.html.
CMS
Wolfram Language. 2020. "StraussPointProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/StraussPointProcess.html.
APA
Wolfram Language. (2020). StraussPointProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StraussPointProcess.html
BibTeX
@misc{reference.wolfram_2026_strausspointprocess, author="Wolfram Research", title="{StraussPointProcess}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/StraussPointProcess.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_strausspointprocess, organization={Wolfram Research}, title={StraussPointProcess}, year={2020}, url={https://reference.wolfram.com/language/ref/StraussPointProcess.html}, note=[Accessed: 13-June-2026]}