Выборка из точечного процесса Пуассона
Точечный процесс Пуассона является обобщением одномерного процесса Пуассона и применяется для многомерных случаев. Однородный точечный процесс Пуассона в геометрической области может быть рассмотрен с помощью функции RandomPoint.
Создадим полигон для географического объекта, например, страны.
region = DiscretizeGraphics[CountryData["Mexico", "Polygon"],
ImageSize -> Medium]
Определим функцию, которая делает выборку точечного процесса Пуассона с тремя аргументами: регион, интенсивность и количество реализаций.
ppp[region_, intensity_, n_] := Module[{nlist, pts},
nlist =
RandomVariate[PoissonDistribution[intensity RegionMeasure[region]],
n];
pts = RandomPoint[region, Total[nlist]];
nlist = Accumulate[nlist];
nlist = Transpose[{Prepend[Most[nlist] + 1, 1], nlist}];
Table[Take[pts, ind], {ind, nlist}]
]
Сформируем реализацию точечного процесса Пуассона в данном полигоне с интенсивностью 0,5 и визуализируем результат с помощью функции Graphics.
intensity = 0.5;
sample = ppp[region, intensity, 1];
Show[region, Graphics[{Black, Point @@ sample}]]
Сформируем 10^4 образцов на основе того же процесса. Общее количество точек в каждом образце/выборкe соответствует распределению Пуассона (см. PoissonDistribution) со средним значением, равным произведению плотности и площади полигона.
samples = ppp[region, intensity, 10^4];
counts = Length /@ samples;
htd = PearsonChiSquareTest[counts,
PoissonDistribution[intensity RegionMeasure[region]],
"HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]
Выборка точек в любом субрегионе полигона также распределена по принципу Пуассона. На рисунке ниже это проиллюстрировано с помощью красного круга, лежащего внутри полигона; посчитаем количество точек в данном субрегионе:
disk1 = Disk[{-107, 28}, 1.5];
Show[region, Graphics[{Red, disk1}]]
memberfun1 = RegionMember[disk1];
counts1 = Table[Total[Boole[memberfun1[pts]]], {pts, samples}];
Выполним тест хи-квадрат Пирсона с помощью функции PearsonChiSquareTest с количеством посчитанных точек в распределении Пуассона.
htd = PearsonChiSquareTest[counts1,
PoissonDistribution[intensity RegionMeasure[disk1]],
"HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]
Число точек в любых непересекающихся субрегионах не зависит друг от друга. В следующем примере рассчитаем число точек в двух непересекающихся субрегионах, закрашенных синим и красным цветом, и вычислим коэффициент корреляции Спирмана с помощью функции SpearmanRankTest.
disk2 = Disk[{-100, 20}, 1.3];
Show[region, Graphics[{Red, disk1, Blue, disk2}]]
memberfun2 = RegionMember[disk2];
counts2 = Table[Total[Boole[memberfun2[pts]]], {pts, samples}];
htd = SpearmanRankTest[counts1, counts2, "HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]