Question:
Quel est le PDF pour la différence minimale entre un nombre aléatoire et un ensemble de nombres aléatoires
Steven Sagona
2019-12-15 10:35:53 UTC
view on stackexchange narkive permalink

J'ai une liste (appelons-la $ \ {L_N \} $ ) de N nombres aléatoires $ R \ dans (0,1) $ (choisi dans une distribution uniforme). Ensuite, je lance un autre nombre aléatoire de la même distribution (appelons ce nombre "b"). Maintenant, je trouve l'élément dans la liste $ \ {L_N \} $ qui est le plus proche du nombre "b" et trouve cette distance.

Si je répète ce processus, je peux tracer la distribution des distances obtenues grâce à ce processus.

Quand $ N \ to \ infty $ , qu'est-ce que cette distribution approche?

Quand je simule cela dans Mathematica, il semble que cela approche une fonction exponentielle. Et si la liste était longue d'un élément, alors je pense que cela suivrait exactement une distribution exponentielle.

En regardant le wikipedia pour les distributions exponentielles, je peux voir qu'il y a une discussion sur le sujet:

enter image description here

Mais j'ai du mal à interpréter ce qu'ils disent ici. Qu'est-ce que "k" ici? Mon cas est-il ce qu'ils décrivent ici dans la limite où $ n \ to \ infty $ ?

EDIT: Après une réponse intuitive très utile de Bayequentist, je comprends maintenant que le comportement comme $ N \ to \ infty $ devrait approcher une fonction dirac delta. Mais j'aimerais quand même comprendre pourquoi mes données (qui sont comme le minimum d'un tas de distributions exponentielles), semblent également être exponentielles. Et y a-t-il un moyen de comprendre ce qu'est exactement cette distribution (pour un N grand mais fini)?

Voici une image de ce à quoi ressemble une telle distribution pour N grand mais fini: enter image description here

EDIT2: Voici du code python pour simuler ces distributions:

 % matplotlib en ligne
importer des mathématiques
importer numpy comme np
importer matplotlib comme mpl
importer matplotlib.pyplot comme plt
numpoints = 10000
NBINS = 1 000
randarray1 = np.random.random_sample ((numpoints,))
randarray2 = np.random.random_sample ((numpoints,))

dtbin = []

pour i dans la plage (len (t1)):
    dt = 10 000 000
    pour j dans la plage (len (t2)):
        delta = t1 [i] -t2 [j]
        si abs (delta) < abs (dt):
            dt = delta
    dtbin.append (dt)

plt.figure ()
plt.hist (dtbin, bins = NBINS)
plt.show ()
 
L'exponentielle peut être une approximation raisonnable, mais votre distance minimale ne sera certainement pas vraiment distribuée exponentiellement: l'exponentielle a un support illimité, mais votre distance est limitée entre 0 et 1.
Je suis assez confus en ce moment: / Pouvez-vous également partager le code que vous avez utilisé pour générer cette image?
D'accord, j'ai ajouté du code python qui peut produire ces images.
Il me semble que cela va converger vers le delta de Dirac.Avez-vous essayé des échantillons de plus grande taille (100k, 1m, 10m ...)?(assurez-vous que la plage de l'axe x est cohérente) La seule différence entre mon code et le vôtre est que vous autorisez les distances à être négatives.Si vous prenez la valeur absolue des distances, votre tracé ressemblera au mien.
De plus, le nombre de b (appelons-le nSim) n’a pas besoin d’être aussi grand que N!Si vous faites également nSim = N = 1m, votre code prendra une éternité à s'exécuter.Vous pouvez essayer de corriger nSim = 10k et observer comment la distribution change de forme lorsque N passe de 10k à 100k.
Pour adresser votre modification, regardez (1) la plage sur votre axe x et (2) le fait qu'@Bayequentist utilise la différence absolue pendant que vous utilisez la différence réelle.Si vous utilisez la différence absolue, vous obtiendrez la même forme que Bayequentist, et en regardant la plage de votre axe x, vous regardez ** très ** petits nombres tels qu'ils sont.
Il y a un aspect de la question qui n'est pas vraiment clair.Vous écrivez: "Si je répète ce processus" ... Mais, lorsque vous répétez le processus, gardez-vous la valeur de $ b $ qui a été générée ou générez-vous un nouveau $ b $ à chaque fois?Il semble que vous souhaitiez ce dernier - pouvez-vous s'il vous plaît confirmer.
@wolfies, Je génère une nouvelle valeur de b à chaque fois.Vous pouvez le voir dans le code de simulation: je génère deux listes aléatoires.Ensuite, pour chaque élément de la deuxième liste, je trouve la distance minimale entre tous les éléments de la première liste et un élément de la deuxième liste.Ensuite, je collecte chacune des distances obtenues dans ce processus.(Et c'est ce que je trace sous forme de PDF simulé)
(À Bayequentist & duckmayr): Je suis d'accord avec vous deux.La valeur absolue ne fait pas beaucoup de différence dans le problème, et la fonction devrait approcher une fonction delta pour un N infiniment grand.Mais ce que j'essayais de comprendre, c'était comment je pouvais comprendre le PDF pour un tel système, et j'ai fait leerreur en pensant que je serais satisfait d'une réponse qui montre la limite du pdf pour N infiniment grand, alors que j'en avais vraiment besoin pour un N fini mais grand. Désolé si un tel pivot était une cible mobile, mais j'espère que la discussion étendue sera utile pourautres futurs lecteurs.
Cinq réponses:
Henry
2019-12-15 20:14:10 UTC
view on stackexchange narkive permalink

Si vous recherchiez la distance par rapport à la valeur suivante ci-dessus, et si vous avez inséré une valeur supplémentaire à $ 1 $ donc cela avait toujours une réponse, alors utilisezsymétrie de rotation la distribution de ces distances $ D $ serait la même que la distribution du minimum de $ n + 1 $ variables aléatoires uniformes indépendantes sur $ [0,1] $ .

Cela aurait $ P (D \ le d) = 1- (1-d) ^ {n + 1} $ et donc la densité $ f (d) = (n + 1) (1-d) ^ n $ quand $ 0 \ le d \ le 1 $ .Pour les grands $ n $ et les petits $ d $ , cette densité peut être estimée par $ f (d) \ approx ne ^ {- nd} $ , expliquant la forme exponentielle que vous avez repérée.

Mais votre question est un peu plus compliquée, car vous êtes intéressé par la distance signée à la valeur la plus proche au-dessus de ou ci-dessous. Comme le montre votre lien Wikipédia, le minimum de deux i.i.d. variables aléatoires exponentielles avec taux $ \ lambda $ est une variable aléatoire exponentielle avec taux 2 $ \ lambda $ . Vous devez donc changer l'approximation de la densité pour refléter à la fois le taux doublé et la possibilité de valeurs négatives de $ d $ . L'approximation devient en fait une distribution de Laplace avec $$ f (d) \ approx ne ^ {- 2n | d |} $$ en vous rappelant que c'est pour les grands $ n $ et petit $ d $ (en particulier la densité réelle est $ 0 $ à moins que $ - \ frac12 \ lt d \ lt \ frac12 $ ). Lorsque $ n $ augmente, cela concentre la quasi-totalité de la densité à $ 0 $ comme dans la réponse de Bayequentist à la limite d'une distribution delta de Dirac

Avec $ n = 10 ^ 6 $ , l'approximation de la densité ressemblerait à ceci, correspondant à la forme de vos données simulées.

enter image description here

Donc, si vous multipliez la différence par n (par exemple, redimensionner par le montant approprié pour que l'espérance reste limitée à 0 et à l'infini), alors elle converge vers une distribution exponentielle à deux côtés.
Bayequentist
2019-12-15 12:01:56 UTC
view on stackexchange narkive permalink

Lorsque $ N \ to \ infty $ , $ L_N $ contient tous les nombres réels dans $ (0,1) $ .Ainsi, la distance entre n'importe quel nombre de $ (0,1) $ et le nombre le plus proche de $ L_N $ span> s'approchera de 0 lorsque $ N \ to \ infty $ .La distribution des distances se rapproche de la distribution delta de Dirac comme $ N \ à \ infty $ .

Voici quelques simulations: enter image description here

Voici un extrait de code:

  n <- 100000
Ln <- runif (n)

nSim <- 10000
distances <- rep (0, nSim)
for (i in 1: nSim) {
  b <- runif (1)
  distances [i] <- min (abs (Ln-b))
}
hist (distances, main = "N = 100000")
 
Merci pour la réponse intuitive!Je pense que cela répond à ma question sur ce qui se passe lorsque $ N \ to \ infty $, mais j'espère toujours comprendre pourquoi mes données semblent exponentielles.Je téléchargerai une modification avec une image pour que vous puissiez la voir.
De plus, si ma modification est un peu trop une "cible mobile" pour vous, alors je peux réécrire cette partie particulière comme une question distincte.J'accepterai volontiers votre réponse si tel est le cas.
Quand $ N \ to \ infty $, $ L_N $ contient tous les nombres réels dans $ (0,1) $.Cela me semble douteux, puisque l'ensemble $ \ {L_1, L_2, L_3, \ dots \} $ est dénombrable, donc nous obtenons $ N $ comme "infini dénombrable", alors que l'ensemble de "tous les nombres réels en $ (0, 1) $ "est indénombrable.Alors, peut-être vaut-il mieux dire "contient un nombre arbitraire proche de tout nombre réel dans $ (0, 1) $" (c'est-à-dire un sous-ensemble dense de $ (0, 1) $)?
C'est exact - un sous-ensemble d'un ensemble dénombrable ne peut pas être indénombrable.Cette réponse n'a jamais été censée être une réponse rigoureuse de toute façon.J'essayais juste de fournir une intuition utile et facile à comprendre.La réponse de Henry est beaucoup plus complète et rigoureuse que la mienne.
C'était ma pensée lorsque j'ai lu la question pour la première fois, que la réponse était évidemment 0. La distance moyenne devient évidemment plus petite pour chaque élément ajouté, et il n'y a pas de moyen évident qu'il puisse raisonnablement approcher autre chose que 0
wolfies
2019-12-15 21:35:56 UTC
view on stackexchange narkive permalink

Y a-t-il un moyen de déterminer ce qu'est exactement cette distribution (pour un N grand mais fini)?

La différence entre deux variables aléatoires uniformes standard est triangulaire (-1,0,1) avec pdf $ 1- | x | $ défini sur $ (- 1,1) $ .

La distance est la valeur absolue de la différence qui a pdf dire $ f (x) $ :

enter image description here

Répéter l'exercice $ n $ fois et prendre la distance minimale équivaut à trouver le $ (1 ^ { \ text {st}}) $ ordre statistique par rapport au pdf parent $ f (x) $ , qui est donné par:

enter image description here

où j'utilise la fonction OrderStat du package mathStatica pour Mathematica pour automatiser les détails, et où le domaine de support est (0,1). La solution a une distribution Power Function avec pdf de la forme $ g (x) = a x ^ {a-1} $ .

Le diagramme suivant compare un tracé du pdf exact de la distance minimale juste dérivée $ g (x) $ (courbe en pointillés rouges) ... à un Monte Simulation de Carlo (courbe bleue ondulée), lorsque la taille de l'échantillon est $ n = 10 $ :

enter image description here

Simulation : Comme vous utilisez Mathematica pour la simulation, voici le code que j'utilise pour la simulation de données dans Mathematica :

  data = Table [Min [Abs [RandomReal [{}, 10] - RandomReal []]], 20000];
 
Acccumulation
2019-12-16 03:21:11 UTC
view on stackexchange narkive permalink

Pour que vous obteniez un nombre supérieur à $ d $ comme résultat, tous les nombres de votre échantillon doivent être $ d $ loin de $ b $ . La probabilité que cela se produise pour tout individu $ x_0 $ est simplement la masse de probabilité en dehors de la plage $ b \ pm d $ . Appelez cela $ p_ {outside} $ . La probabilité que cela se produise pour tous les $ x_i $ de votre échantillon est $ (p_ {outside}) ^ N $ span>. Si $ x_i $ est choisi uniformément à partir de l'intervalle unitaire, alors $ p_ {outside} $ pour $ b $ plus de $ d $ de la limite sera 1 $ -2d $ , et cela donne $ p_ {extérieur} ^ N = (1-2d) ^ N $ . Pour les grands $ N $ et les petits $ d $ , qui peuvent être approximés par $ e ^ {- 2Nd} $ .

Yair Daon
2019-12-15 22:46:36 UTC
view on stackexchange narkive permalink

Imaginez que vous dessinez d'abord le dernier et que vous le notez X. Cela ne change pas du tout la formulation du problème. Pour tout $ X_i \ in L_N, i = 1, ..., N $ , nous savons que $ Y_i: = | X-X_i | $ a une certaine distribution (vous pouvez ou non vouloir calculer cela) et que $ Y_i $ est iid donné $ X $ . De Wikipédia, nous savons que le CDF de leur minimum est $$ F_ {min} (y) = 1 - [1-F_Y (y)] ^ N. $$

Pour tout $ y $ fixe, nous connaissons $ F_Y (y) > 0 $ pour tout $ y > 0 $ et $ F (y) = 0 $ sinon. Prenez $ N \ à \ infty $ et vous obtenez un CDF qui est identique pour $ y > 0 $ span > et à l'identique zéro sinon. Il s'agit d'une fonction delta centrée sur zéro, comme toutes les simulations ci-dessus le montrent. Cela vaut pour tout $ x \ in (0,1) $ donc la convergence est toujours valable (bien qu'avec des taux de convergence variables, peut-être).



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...