Échantillonnez à partir d'un processus de Poisson
Un processus de Poisson est une généralisation du processus de Poisson unidimensionnel à un cas multidimensionnel. Un processus de Poisson homogène dans les régions géométriques peut être échantillonné en utilisant RandomPoint.
Créez un polygone des pays.
region = DiscretizeGraphics[CountryData["Mexico", "Polygon"],
ImageSize -> Medium]
Définissez une fonction qui effectue l'échantillonnage du processus de Poisson avec trois arguments : la région, l'intensité et le nombre de réalisations.
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}]
]
Générez une réalisation du processus de Poisson dans le polygone des pays avec une intensité de 0,5 et visualisez-la avec Graphics.
intensity = 0.5;
sample = ppp[region, intensity, 1];
Show[region, Graphics[{Black, Point @@ sample}]]
Générez 104 échantillons provenant du même processus. Le nombre total de points dans chaque échantillon satisfait PoissonDistribution, avec une moyenne égale à l'intensité multipliée par la superficie de la région.
samples = ppp[region, intensity, 10^4];
counts = Length /@ samples;
htd = PearsonChiSquareTest[counts,
PoissonDistribution[intensity RegionMeasure[region]],
"HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]
Le nombre de points dans une sous-région est également distribué selon une loi de Poisson. Cette loi est examinée ici à l'aide d'un disque situé à l'intérieur du polygone, et le nombre de points qu'il contient est compté.
disk1 = Disk[{-107, 28}, 1.5];
Show[region, Graphics[{Red, disk1}]]
memberfun1 = RegionMember[disk1];
counts1 = Table[Total[Boole[memberfun1[pts]]], {pts, samples}];
Effectuez PearsonChiSquareTest sur le nombre avec une loi de Poisson.
htd = PearsonChiSquareTest[counts1,
PoissonDistribution[intensity RegionMeasure[disk1]],
"HypothesisTestData"];
htd["TestDataTable"]
htd["TestConclusion"]
Le nombre de points dans toutes les sous-régions disjointes est indépendant. Ici, le nombre de points dans deux disques disjoints est compté et le SpearmanRankTest est effectué.
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"]