Crie uma amostra de um processo de pontos de Poisson
Um processo de pontos de Poisson é uma generalização do processo de Poisson unidimensional para um caso multidimensional. Um processo homogêneo de Poisson em regiões geométricas podem ser amostrados usando RandomPoint.
Crie um polígono de país.
region = DiscretizeGraphics[CountryData["Mexico", "Polygon"],
ImageSize -> Medium]
Defina uma função que faça uma amostra de um processo de pontos de Poisson com três argumentos: região, intensidade, e número de realizações.
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}]
]
Gere uma realização do processo de Poisson no polígono de país com intensidade de 0,5 e visualize com Graphics.
intensity = 0.5;
sample = ppp[region, intensity, 1];
Show[region, Graphics[{Black, Point @@ sample}]]
Gere 104 amostras do mesmo processo. O número total de pontos em cada amostra satisfaz PoissonDistribution, com a média igual a intensidade vezes a área da região.
samples = ppp[region, intensity, 10^4];
counts = Length /@ samples;
htd = PearsonChiSquareTest[counts,
PoissonDistribution[intensity RegionMeasure[region]],
"HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]
O número de pontos em qualquer sub-região também é uma distribuição de Poisson. Aqui, é examinado com um disco que se encontra dentro do polígono, e o número de pontos nele é contado.
disk1 = Disk[{-107, 28}, 1.5];
Show[region, Graphics[{Red, disk1}]]
memberfun1 = RegionMember[disk1];
counts1 = Table[Total[Boole[memberfun1[pts]]], {pts, samples}];
Faça um PearsonChiSquareTest no número de contagens, com uma distribuição de Poisson.
htd = PearsonChiSquareTest[counts1,
PoissonDistribution[intensity RegionMeasure[disk1]],
"HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]
O número de pontos em quaisquer sub-regiões disjuntas é independente. Aqui, o número de pontos em dois discos disjuntos é contado, e um teste SpearmanRankTest é realizado.
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"]