Following an earlier post here, I have generated a point pattern on the unit square $[0,1]\otimes[0,1]$, which is described by a piecewise constant intensity function constructed so that (in expectation) $2/3$ of the points will fall within a circle of radius $\sqrt{0.1}$ centered on $(0.5,0.5)$. This piecewise intensity function manifests as a visible change in the density of points, forming an "edge" or "boundary" along this circle.
Now, using only the point pattern and no knowledge of the intensity function underlying the process, I am interested in how one could detect this edge, get a formula describing it (assuming we don't know it's a circle with given radius and center...it has to be general) and superimpose the inferred boundary on a ListPlot
illustrating the point pattern. My initial ideas are dividing the x and y axes into bins, or getting a CDF in the x and in the y directions and taking partial derivatives in both directions.
Here's the code for the list plot:
n = 0;
list = {};
r := RandomReal[];
coin := RandomChoice[{True, False}];
While[n < 10000, {x, y} = {r, r};
If[((x - .5)^2 + (y - .5)^2 <= .1 || coin), AppendTo[list, {x, y}];
n++];]
ListPlot[list, PlotStyle -> {PointSize[.005]}, AspectRatio -> 1]