Fiabilité des générateurs de nombres aléatoires
+3
Bertrand_
fanDeDlz
Dlzlogic
7 participants
Fiabilité des générateurs de nombres aléatoires
Mar 8 Sep - 19:34
Bonsoir,
Ce nouveau sujet concerne générateurs.
Message de Sylviel :
"les générateurs aléatoires triches"
Ouvre un autre fil si tu veux. Je veux bien y re-répondre mais si ça t'amuse mais dans ce cas tu dois faire un effort
(parce que des efforts j'en ai fait plein pour t'expliquer tout précisément, pour fouiller dans le livre de Harthong et de Rouaud,
qui sont tout deux assez mal fait et trouver les choses qui justifie exactement ce que je raconte...)
Je te donnes le choix :
- soit tu me donnes un livre qui dise explicitement et précisément que toutes les variables aléatoires ont une répartition des écarts conforme à la loi normale
(pour que cet énoncé que tu répètes ait enfin une forme précise)
- tu me donnes un pseudo-code précis prenant en entrée une liste de nombre issus d'une expérience aléatoire quelconque et renvoyant un nombre censé tendre vers 0
si la liste est grande. Et je veux le pseudo-code complet avec des variables définies et des formules mathématiques (parce que parfois tu mets en classe, parfois non, parfois tu divise par le nombre de classe, parfois tu divise par la taille de la liste, parfois tu groupes les nombres ensemble parfois non...).
Mais sur un autre fil : ici c'est pour répondre à GBZM qui pose une question très simple.
Ce nouveau sujet concerne générateurs.
Message de Sylviel :
"les générateurs aléatoires triches"
Dlzlogic a écrit:
C'est l'un des sujets sur lesquels je n'ai pas eu de réponse. La réponse tient en 3 points
1- définir de façon précise ce que doit produire un générateur
2- comparer avec un fichier résultat d'une expérience réelle
3- comparer les résultats de différents générateurs.
Si tu veux montrer ta bonne foi, traite ces 3 questions, et pas avec "on l'a déjà fait avec untel".
Ouvre un autre fil si tu veux. Je veux bien y re-répondre mais si ça t'amuse mais dans ce cas tu dois faire un effort
(parce que des efforts j'en ai fait plein pour t'expliquer tout précisément, pour fouiller dans le livre de Harthong et de Rouaud,
qui sont tout deux assez mal fait et trouver les choses qui justifie exactement ce que je raconte...)
Je te donnes le choix :
- soit tu me donnes un livre qui dise explicitement et précisément que toutes les variables aléatoires ont une répartition des écarts conforme à la loi normale
(pour que cet énoncé que tu répètes ait enfin une forme précise)
- tu me donnes un pseudo-code précis prenant en entrée une liste de nombre issus d'une expérience aléatoire quelconque et renvoyant un nombre censé tendre vers 0
si la liste est grande. Et je veux le pseudo-code complet avec des variables définies et des formules mathématiques (parce que parfois tu mets en classe, parfois non, parfois tu divise par le nombre de classe, parfois tu divise par la taille de la liste, parfois tu groupes les nombres ensemble parfois non...).
Mais sur un autre fil : ici c'est pour répondre à GBZM qui pose une question très simple.
Re: Fiabilité des générateurs de nombres aléatoires
Mar 8 Sep - 19:34
Ta question constitue le point 2). Le fichier des températures convient très bien. Mais, si t'as pas confiance j'en ai d'autres.
C'est le point 1) qui est important. Les ponts 2) et 3) sont dés vérifications, d'abord que la réalité ne triche pas, puis. parmi les générateurs habituels, lesquels produisent un résultat conforme à l'aléatoire, lesquels non.
Cela fait des années que je demande ça, si tu réponds maintenant, c'est bien.
C'est le point 1) qui est important. Les ponts 2) et 3) sont dés vérifications, d'abord que la réalité ne triche pas, puis. parmi les générateurs habituels, lesquels produisent un résultat conforme à l'aléatoire, lesquels non.
Cela fait des années que je demande ça, si tu réponds maintenant, c'est bien.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Mar 8 Sep - 20:14
Un générateur dois produire une suite de nombre qui a des propriétés statistiques très proche d'une suite de va iid uniforme (généralement sur [0,1])
Les tests de générateurs sont bien connus (voir Diehard par exemple).
Pour plus de détail commence par répondre à ce que je demande depuis des années : un peusdo code précis et/ou une référence détaillant ta formulation floue.
Les tests de générateurs sont bien connus (voir Diehard par exemple).
Pour plus de détail commence par répondre à ce que je demande depuis des années : un peusdo code précis et/ou une référence détaillant ta formulation floue.
Re: Fiabilité des générateurs de nombres aléatoires
Mar 8 Sep - 21:14
Oh ben, j'ai un truc assez simple qui est accepté par un générateur pas très bon.
On tire des 0 et de 1, on les groupe par mots de 6 bits, on obtient des nombres de 0 à 63 en décimal.
Ces nombres ont une répartition d'écarts à la moyenne conforme à la loi normale.
On peut aussi tirer un dé à 100 faces. La répartition du nombres d'écarts à la moyenne est conforme à la loi normale.
Voilà, j'ai répondu à la première question. Sauras-tu faire la deuxième ?
Pour mémoire, pourrais-tu me rappeler les test de Diehard. Je lis trop mal l'anglais pour être sûr de moi.
On tire des 0 et de 1, on les groupe par mots de 6 bits, on obtient des nombres de 0 à 63 en décimal.
Ces nombres ont une répartition d'écarts à la moyenne conforme à la loi normale.
On peut aussi tirer un dé à 100 faces. La répartition du nombres d'écarts à la moyenne est conforme à la loi normale.
Voilà, j'ai répondu à la première question. Sauras-tu faire la deuxième ?
Pour mémoire, pourrais-tu me rappeler les test de Diehard. Je lis trop mal l'anglais pour être sûr de moi.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Mer 9 Sep - 7:54
Voilà, j'ai répondu à la première question.
A quelle question as-tu répondu ?
Si tu parles du pseudo-code qui permet de vérifier que l'écart à la moyenne est conforme à la loi normale
tu n'y as absolument pas répondu :
- ce n'est pas un pseudo code, c'est un texte vague
- ça ne s'applique pas à n'importe quel suites de nombre, mais que à des 0-1 (ou des nombres entre 0 et 63)
- il n'y a pas de définition de "Ces nombres ont une répartition d'écarts à la moyenne conforme à la loi normale."
en terme de valeur numérique censée tendre vers 0
Si tu parles d'autre chose je ne sais pas de quoi tu parles.
https://en.wikipedia.org/wiki/Diehard_testsPour mémoire, pourrais-tu me rappeler les test de Diehard. Je lis trop mal l'anglais pour être sûr de moi.
Les tests de Diehard prennent en entrée une immense suite de nombre entier (32 bits) censés être tiré uniformément (en indépendemment l'un de l'autre).
A partir de cette suite de nombres ils réalisent une série de transformations pour observer si des propriétés satisfaite en théorie par un tirage uniforme iid
se vérifie statistiquement.
Il y en a toute une batterie. Quelques exemples :
Les anniversaires : on tire au hasard m=2^9 dates parmi 2^24 possibilité. On liste les distance entre 2 dates successive. Ces distances sont censées suivre une loi de Poisson de paramètre 2.
On utilise un test du Chi2 pour vérifier que les distances se comportent bien comme une loi de Poisson
Test de rang de matrices 6x8 : On construit 100 000 matrices 6x8. On calcule le rang de chaque matrice (très peu de rang <4, donc aggrégé avec 4). On peut déterminer la loi théorique de la répartition
du rang. On vérifie avec un test du Chi^2 l'adéquation entre les rang obtenus et la théorie.
etc...
Re: Fiabilité des générateurs de nombres aléatoires
Mer 9 Sep - 12:30
Bonjour,
Le schéma actuel des échanges entre Sylviel est moi est simple.
Le problème de fiabilité de générateur de nombres pseudo aléatoire a été remis sur le tapis. Ce problème est simple : on utilise un outil informatique. Chacun dit que le sien est bon. Pourtant ils sont basés sur des principes totalement différents et ne peuvent pas produire des résultats comparables, ou plutôt des résultats également satisfaisants.
Depuis de nombreuses années je demande que ce sujet soit éclairci, c'est à dire qu'on se mette d'accord sur un protocole de fiabilité, c'est à dire expliquer ce que doit faire et produire un générateur. J'ai en face de moi deux matheux qui se prétendent également chercheurs. Il me semble que c'est de leur capacité de produire ce protocole.
J'ai esquissé la procédure en 3 étapes. Sylviel veux bien répondre si je réalise le protocole qu'il me "demande depuis des années". Ce n'est pas du chantage, mais de l'incompétence.
Il est clair qu'il refusera toujours de comprendre ce que représente la théorie des probabilités. Les exemples cités par lui et Gbzm sont caractéristiques, le 3è enfant de la famille est-il un garçon ou une fille, combien vaut la moyenne de {0, 1, 2}.
Le schéma actuel des échanges entre Sylviel est moi est simple.
Le problème de fiabilité de générateur de nombres pseudo aléatoire a été remis sur le tapis. Ce problème est simple : on utilise un outil informatique. Chacun dit que le sien est bon. Pourtant ils sont basés sur des principes totalement différents et ne peuvent pas produire des résultats comparables, ou plutôt des résultats également satisfaisants.
Depuis de nombreuses années je demande que ce sujet soit éclairci, c'est à dire qu'on se mette d'accord sur un protocole de fiabilité, c'est à dire expliquer ce que doit faire et produire un générateur. J'ai en face de moi deux matheux qui se prétendent également chercheurs. Il me semble que c'est de leur capacité de produire ce protocole.
J'ai esquissé la procédure en 3 étapes. Sylviel veux bien répondre si je réalise le protocole qu'il me "demande depuis des années". Ce n'est pas du chantage, mais de l'incompétence.
Il est clair qu'il refusera toujours de comprendre ce que représente la théorie des probabilités. Les exemples cités par lui et Gbzm sont caractéristiques, le 3è enfant de la famille est-il un garçon ou une fille, combien vaut la moyenne de {0, 1, 2}.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Mer 9 Sep - 14:03
Le schéma actuel des échanges entre Sylviel est moi est simple.
Oui, je te demande d'être précis, tu ne l'es pas.
Le problème de fiabilité de générateur de nombres pseudo aléatoire a été remis sur le tapis. Ce problème est simple : on utilise un outil informatique. Chacun dit que le sien est bon. Pourtant ils sont basés sur des principes totalement différents et ne peuvent pas produire des résultats comparables, ou plutôt des résultats également satisfaisants.
Depuis de nombreuses années je demande que ce sujet soit éclairci, c'est à dire qu'on se mette d'accord sur un protocole de fiabilité, c'est à dire expliquer ce que doit faire et produire un générateur. J'ai en face de moi deux matheux qui se prétendent également chercheurs. Il me semble que c'est de leur capacité de produire ce protocole.
Et des chercheurs ont mis en place des batteries de test (par exemple Diehard, Dieharder etc...) pour tester ces générateurs. Les tests sont publics. De nombreux générateurs ont été testés avec. Des scientifiques et industriels de tous domaines les utilise.
Toi tu arrives et dis "j'y crois pas", sans argument.
J'ai esquissé la procédure en 3 étapes. Sylviel veux bien répondre si je réalise le protocole qu'il me "demande depuis des années". Ce n'est pas du chantage, mais de l'incompétence.
Non l'incompétence est de ton côté : tu n'as jamais donné précisément un moyen de vérifier
ce que signifie "que la répartition du nombres d'écarts à la moyenne est conforme à la loi normale."
Je t'ai, a plusieurs reprises, proposé un protocole et ce qu'on devait observer. Tu l'as validé.
Je t'ai démontré que ton affirmation était fausse.
Pour mémoire tu affirmes un truc du genre (mais on ne peut pas préciser) : je tire des entier entre 0 et 99. Je regarde la proportion empirique de chaque entier (p0, ..., p99). Je classe ces 100 proportions dans 10 catégories de taille ep (peu importe en fait). Tu prétends que le nombre de pi dans chaque classe suis des % précis (sans trop préciser dans quel cas, je suppose que c'est quand on a tiré beaucoup d'entiers). Je remarque que dans la classe des extrémités il est censé y avoir 0.3%. Hors il y aura 0 ou 1 pi (ou pire 2), dans tous les cas tu ne pourras pas avoir 0.3% à +/- 0.1
Donc ton affirmation ne peut pas être juste.
Pour mémoire au début tu ne parlais pas de grouper tu disais que c'était vrai pour tout tirage. Je t'ai proposé un tirage de 0 et1, donnant donc p0 et p1 et donc 50% dans 2 de tes 10 classes, et 0 ailleurs. Très loin de ce que ta "théorie" affirme. tu as dis que c'était normal, ça ne vérifiait pas les hypothèses (hypothèses que tu n'as jamais voulut préciser).
Voilà l'incompétence.
Il est clair qu'il refusera toujours de comprendre ce que représente la théorie des probabilités. Les exemples cités par lui et Gbzm sont caractéristiques, le 3è enfant de la famille est-il un garçon ou une fille, combien vaut la moyenne de {0, 1, 2}.
Il est clair que tu ne comprends (et visiblement ne comprendras jamais) rien aux probas. Exemple tu ne comprends pas la définition d'espérance, il a fallut je ne sais combien de message d'explication (avec démonstrations / références / exemples numériques / interprétations) pour que tu comprennes que Var(2X)=4Var(X) "par toi même".
Les exemples qu'on cite sont des exemples simple. Parce qu'avant d'escalader une montagne il faudrait que tu apprennes à marcher...
Mais tu oublies que je t'ai aussi cité :
- des exemples sur la distribution de la vitesse du vent (rapports / articles / analyse qui utilise tous une loi de Weibull)
- des exemples sur les hauteurs de crues (Gumble)
- des exemples sur les accidents de la route utilisant une loi de Poisson
Tout ces exemples de donnés réelles non Gaussienne...
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Jeu 10 Sep - 10:17
Et on noteras qu'une fois de plus Dlz refuse de fournir un protocole précis qui permettrait de montrer que
n'importe qu'elle suite de nombres aléatoires à "ses écarts à la moyenne conforme à la loi normale".
Par protocole précis je demande un pseudo-code prenant en argument une suite quelconque
[attention, je ne demande pas un exemple sur une suite particulière - comme une suite de 0-1 - mais
que l'on puisse appliquer à n'importe quelle suite]
de nombres aléatoires et renvoyant un nombre censé être très proche de 0 si ma suite contient beaucoup d'éléments
tiré selon la même loi.
Ou un document qui explicite cela de manière précise.
n'importe qu'elle suite de nombres aléatoires à "ses écarts à la moyenne conforme à la loi normale".
Par protocole précis je demande un pseudo-code prenant en argument une suite quelconque
[attention, je ne demande pas un exemple sur une suite particulière - comme une suite de 0-1 - mais
que l'on puisse appliquer à n'importe quelle suite]
de nombres aléatoires et renvoyant un nombre censé être très proche de 0 si ma suite contient beaucoup d'éléments
tiré selon la même loi.
Ou un document qui explicite cela de manière précise.
Re: Fiabilité des générateurs de nombres aléatoires
Jeu 10 Sep - 11:59
@ Sylviel,
C'est toi le matheux, toi qui sais, tu l'as assez dit et répété, alors propose un protocole. Quand tu l'auras fait on pourra en discuter. Montre-nous que tu tu sais faire autre-chose que donner des références et un savant mélange entre chiffre et nombre, entre valeur et fonction etc.
C'est toi le matheux, toi qui sais, tu l'as assez dit et répété, alors propose un protocole. Quand tu l'auras fait on pourra en discuter. Montre-nous que tu tu sais faire autre-chose que donner des références et un savant mélange entre chiffre et nombre, entre valeur et fonction etc.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Jeu 10 Sep - 18:38
C'est toi le matheux, toi qui sais, tu l'as assez dit et répété, alors propose un protocole.
Déjà fait, à plusieurs reprise tu as validé puis tu t'es énervé et n'as plus voulut le respecter par la suite...
Mais je peux te retrouver et recopier une nouvelle fois...
Montre-nous que tu tu sais faire autre-chose que donner des références et un savant mélange entre chiffre et nombre, entre valeur et fonction etc.
Où ai-je mélangé quoi que ce soit ?
En plus des références je t'ai donné des exemples, des démonstrations, du code...
Re: Fiabilité des générateurs de nombres aléatoires
Jeu 10 Sep - 18:40
Oui, je veux bien.Mais je peux te retrouver et recopier une nouvelle fois...
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Jeu 10 Sep - 19:07
Des protocoles qui représentent la réalité, entièrement détaillé et fournit avec le code : https://dlz9.forumactif.com/t411p125-justification-de-la-statistique-application-aux-sondages#4730
Maintenant ce que je pense comprendre de ce que tu raconte :
1) j'appelle x1,...,xn les éléments de ma suite de nombre
2) Je note leur moyenne Mn = (x1+...+xn)/n
3) J'appelle les écart e1 = x1 - Mn, ..., en = xn - Mn.
4) Je défini ep = 2/3* \sqrt( e1^2 +... + en^2/(n-1)).
5) Soit pn la proportion de ei qui sont entre 0 et ep = sum_{i=1}^n (1_{ei \in [0,ep])/n.
6) Soit qn la proportion de ei qui sont entre ep et 2*ep = sum_{i=1}^n (1_{ei \in [ep,2*ep])/n.
Tu prétends que, pour toute suite de nombres aléatoire, quand n grandi pn tends vers 0.250 et qn vers 0.1615
Y a-t-il des choses que tu ne comprends pas ?
Est-ce le protocole que tu proposes ?
Mais parfois tu ne veux pas prendre les nombres fournit mais la proportion de chacun de ces nombres, parfois il faut les grouper...
Bref, rien de clair.
Maintenant ce que je pense comprendre de ce que tu raconte :
1) j'appelle x1,...,xn les éléments de ma suite de nombre
2) Je note leur moyenne Mn = (x1+...+xn)/n
3) J'appelle les écart e1 = x1 - Mn, ..., en = xn - Mn.
4) Je défini ep = 2/3* \sqrt( e1^2 +... + en^2/(n-1)).
5) Soit pn la proportion de ei qui sont entre 0 et ep = sum_{i=1}^n (1_{ei \in [0,ep])/n.
6) Soit qn la proportion de ei qui sont entre ep et 2*ep = sum_{i=1}^n (1_{ei \in [ep,2*ep])/n.
Tu prétends que, pour toute suite de nombres aléatoire, quand n grandi pn tends vers 0.250 et qn vers 0.1615
Y a-t-il des choses que tu ne comprends pas ?
Est-ce le protocole que tu proposes ?
Mais parfois tu ne veux pas prendre les nombres fournit mais la proportion de chacun de ces nombres, parfois il faut les grouper...
Bref, rien de clair.
Re: Fiabilité des générateurs de nombres aléatoires
Jeu 10 Sep - 19:19
Je reformule à l'identique et je complète :
1) j'appelle x1,...,xn les éléments de ma suite de nombre OK, si les xi résultent de mesure ou d'observation aléatoires d'une même chose.
2) Je note leur moyenne Mn = (x1+...+xn)/n OK
3) J'appelle les écart e1 = x1 - Mn, ..., en = xn - Mn.
4) Je défini ep = 2/3* \sqrt( e1^2 +... + en^2/(n-1)). OK
5) Soit pn la proportion de ei qui sont entre 0 et ep = sum_{i=1}^n (1_{ei \in [0,ep])/n. OK si les formules sont bonnes
6) Soit qn la proportion de ei qui sont entre ep et 2*ep = sum_{i=1}^n (1_{ei \in [ep,2*ep])/n.
Tu prétends que, pour toute suite de nombres aléatoire, quand n grandi pn tends vers 0.250 et qn vers 0.1615
Oui, sans aucun doute, mais j'écrirais 25% et 16% sans plus de précision.
1) j'appelle x1,...,xn les éléments de ma suite de nombre OK, si les xi résultent de mesure ou d'observation aléatoires d'une même chose.
2) Je note leur moyenne Mn = (x1+...+xn)/n OK
3) J'appelle les écart e1 = x1 - Mn, ..., en = xn - Mn.
4) Je défini ep = 2/3* \sqrt( e1^2 +... + en^2/(n-1)). OK
5) Soit pn la proportion de ei qui sont entre 0 et ep = sum_{i=1}^n (1_{ei \in [0,ep])/n. OK si les formules sont bonnes
6) Soit qn la proportion de ei qui sont entre ep et 2*ep = sum_{i=1}^n (1_{ei \in [ep,2*ep])/n.
Tu prétends que, pour toute suite de nombres aléatoire, quand n grandi pn tends vers 0.250 et qn vers 0.1615
Oui, sans aucun doute, mais j'écrirais 25% et 16% sans plus de précision.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 10:59
mesure ou d'observation aléatoires d'une même chose
Donc ce n'est plus toutes suite de nombre aléatoires, c'est uniquement ceux qui résultent de la mesure d'une même chose ?
Ca réduit drastiquement ton affirmation alors... (c'était censé être valable pour toute suite de nombre aléatoires).
Est-ce que je peux mesurer le nombre de clients rentrant dans un magasin par unité de temps ?
Est-ce que je peux mesurer la durée de vie d'atomes radioactif ?
Est-ce que je peux mesurer la vitesse du vent sur des jours différents ?
Est-ce que je peux mesurer la hauteur maximum des crues ?
Ou est-ce que tous ces exemples ne rentre pas dans ce que tu appelles "mesure ou d'observation aléatoires d'une même chose"?
En fait si pn et qn (et les autres valeurs) tendent vers les % théorique, cela signifie que l'écart est distribuée selon une loi normale,
ce qui est équivalent à dire que les xi sont distribués selon une loi normale. Tous les exemples que je t'ai donné plus haut ne sont généralement
pas modélisé par des lois normales, les % seront donc différents.
Sais tu que si tu prends le résultat de n'importe quel fonction "rand()" par défaut tu n'auras pas 25% et 16% mais 19.2% ?
Je t'ai donné un code avec python (et évidemment j'obtiens le résultat prévu par la théorie),
mais si tu suis exactement le protocole établi ci-dessus (à savoir que les xi sont les résultats de ton rand() par défaut)
et applique les formules ci dessus (la formule de pn est exactement "le nombre de xi qui sont entre 0 et ep" divisé par le nombre de tirages éffectués") tu auras
la même chose. Si ce n'est pas le cas je veux bien voir le code pour vérifier que tu suis bien le protocole.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 11:32
Si tu veux je peux écrire quelques tests basique qu'un générateur de nombre aléatoires par défaut (et donc uniforme) doit vérifier.
Je suppose que je génére une grande (au moins 3*10^6) liste de nombre (que je ramène entre [0,1] par la transformation x -> (x-m)/(M-m) où m est le minimum de la liste et M le maximum)
Je coupe cette liste en 3 de taille égale (on discard le surplus éventuels) que je vais noter xi, yi et zi, pour i allant de 1 à n (donc n est d'au moins 10^6 pour être précis)
[NB : peu importe la manière de couper, on peut le faire d'au moins deux manière simple : chaque triplet consécutif est répartit, ou je coupe en 3 blocs]
[NB : le nombre 3 est purement arbitraire, on peut le faire avec 2, 10, peu importe...]
Premier test : la moyenne et la variance
Soit
mx = 1/n \sum xi
my = 1/n \sum yi
mz = 1/n \sum zi
On peut vérifier que mx, my et mz sont proche de 0.5
Soit
vx = 1/(n-1) \sum (xi-mx)^2
vy = 1/(n-1) \sum (yi-mx)^2
vz = 1/(n-1) \sum (zi-mx)^2
On peut vérifier que vx, vy et vz sont proche de 1/12
Second test : répartition uniforme
Pour chaque liste on compte le nombre d'élements dans les intervalles [0,0.1],[0.1,0.2]...
Ce nombre d'éléments doit être de l'ordre de 0.1*n
Troisième test : indépendance
On calcule
1/n\sum(xi*yi) qui doit être proche de mx*my [proche de 0.25 donc]
1/n\sum(yi*zi) qui doit être proche de my*mz [proche de 0.25 donc]
1/n\sum(xi*zi) qui doit être proche de mx*mz [proche de 0.25 donc]
Bien sûr ces tests sont extrêmement basiques (bien inférieur aux tests de Diehard) et
il vaudrait mieux utiliser des tests statistiques pour renvoyer des p-valeurs plutôt que de se
contenter de dire "proche de".
Je suppose que je génére une grande (au moins 3*10^6) liste de nombre (que je ramène entre [0,1] par la transformation x -> (x-m)/(M-m) où m est le minimum de la liste et M le maximum)
Je coupe cette liste en 3 de taille égale (on discard le surplus éventuels) que je vais noter xi, yi et zi, pour i allant de 1 à n (donc n est d'au moins 10^6 pour être précis)
[NB : peu importe la manière de couper, on peut le faire d'au moins deux manière simple : chaque triplet consécutif est répartit, ou je coupe en 3 blocs]
[NB : le nombre 3 est purement arbitraire, on peut le faire avec 2, 10, peu importe...]
Premier test : la moyenne et la variance
Soit
mx = 1/n \sum xi
my = 1/n \sum yi
mz = 1/n \sum zi
On peut vérifier que mx, my et mz sont proche de 0.5
Soit
vx = 1/(n-1) \sum (xi-mx)^2
vy = 1/(n-1) \sum (yi-mx)^2
vz = 1/(n-1) \sum (zi-mx)^2
On peut vérifier que vx, vy et vz sont proche de 1/12
Second test : répartition uniforme
Pour chaque liste on compte le nombre d'élements dans les intervalles [0,0.1],[0.1,0.2]...
Ce nombre d'éléments doit être de l'ordre de 0.1*n
Troisième test : indépendance
On calcule
1/n\sum(xi*yi) qui doit être proche de mx*my [proche de 0.25 donc]
1/n\sum(yi*zi) qui doit être proche de my*mz [proche de 0.25 donc]
1/n\sum(xi*zi) qui doit être proche de mx*mz [proche de 0.25 donc]
Bien sûr ces tests sont extrêmement basiques (bien inférieur aux tests de Diehard) et
il vaudrait mieux utiliser des tests statistiques pour renvoyer des p-valeurs plutôt que de se
contenter de dire "proche de".
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 13:07
Je ne pense réellement pas avoir écrit cela, et si c'est le cas, c'est à mettre sur le compte de la distraction, de l'inattention, de la précipitation ou je ne sais quoi. Ou alors, on parlait de suite de nombres générés par un système aléatoire.Sylvien a écrit:Donc ce n'est plus toutes suite de nombre aléatoires, c'est uniquement ceux qui résultent de la mesure d'une même chose ?
Ca réduit drastiquement ton affirmation alors... (c'était censé être valable pour toute suite de nombre aléatoires).
Donc, je confirme, la loi normale s'applique dans le cas de mesures ou d'observations d'une même chose. La prudence devrait me faire rajouter "dans les mêmes conditions", bien que ça paraisse évident, mais ça évite de devoir justifier qu'il est normal de faire des corrections climatiques et saisonnières dans le cas de mesures de température.
C'est justement le sujet de ce fil.Sais tu que si tu prends le résultat de n'importe quel fonction "rand()" par défaut tu n'auras pas 25% et 16% mais 19.2% ?
Puis, tu passes directement au point 3) Il faudrait peut-être répondre au point 2) avant de passer au point 3).
Si j'ai bien compris l'idée de ton test, tu génères par une seule opération un nombre de 3*N valeurs aléatoires, et tu sépares en 3 pour avoir 3 fois N. C'est intéressant, je vais le faire.
Moi de vais faire N = 1000.
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 15:22
Voila le résultat avec mon générateur.
J'ai fait 3 fois le calcul.
J'ai fait 3 fois le calcul.
- Code:
Les moyennes mx=490 my=505 mz=503
Les variances vx=0.084 vy=0.083 vz=0.084
les répartitions :
106 106 96 110 103 99 94 93 95 98
97 98 87 108 111 96 98 109 86 110
108 95 87 91 126 92 97 110 86 108
Les indépendances Pxy=249 Pyz=251 Pxz=242
Les moyennes mx=513 my=494 mz=503
Les variances vx=0.085 vy=0.080 vz=0.083
les répartitions :
97 103 92 75 109 104 94 113 100 113
96 102 107 103 100 98 99 118 88 89
92 98 107 93 105 99 114 90 103 99
Les indépendances Pxy=254 Pyz=251 Pxz=257
Les moyennes mx=492 my=501 mz=516
Les variances vx=0.083 vy=0.087 vz=0.083
les répartitions :
103 118 82 95 109 106 102 97 93 95
99 107 96 108 100 81 102 88 114 105
80 103 97 97 106 104 90 105 101 117
Les indépendances Pxy=249 Pyz=257 Pxz=253
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 15:24
Je ne pense réellement pas avoir écrit cela
Mais bien sûr...
http://www.les-mathematiques.net/phorum/read.php?13,894266,895494
Je me permet de préciser le sujet principal de la discussion
1- tout évènement aléatoire, loi uniforme, ne dépendant que du hasard, donne un résultat respectant la répartition des écarts de la loi normale.
2- la répartition des écarts suivant la loi normale est constante, quel que soit le type d'expérence ne dépendant que du hasard, à un changement d'échelle près.
https://www.maths-forum.com/cafe-mathematique/retard-probabilite-statistiques-t117225.html
(je suis sûr qu'on peut trouver des centaines d'autres cas où tu as simplement dis "tout évènement aléatoire", tu as donné et appliqué au tirages de dés, à pile ou face...Etant donné un grand nombre d'évènement indépendants et aléatoires, tels que le jeu de pile ou face, le tirage de boules dans un sac, le tir au pistolet, la fermeture de triangles en géodésie, est-il vrai que la répartition des écarts à la moyenne est toujours identique et connue sous le nom de courbe de Gauss ?
Bref, soyons clair, ce dont tu parles c'est uniquement pour les erreurs de mesure ?
Ou ça s'applique à toute suite de nombre aléatoires ?
Est-ce que ça s'applique à
Est-ce que je peux mesurer le nombre de clients rentrant dans un magasin par unité de temps ?
Est-ce que je peux mesurer la durée de vie d'atomes radioactif ?
Est-ce que je peux mesurer la vitesse du vent sur des jours différents ?
Est-ce que je peux mesurer la hauteur maximum des crues ?
Puis, tu passes directement au point 3) Il faudrait peut-être répondre au point 2) avant de passer au point 3).
Il n'y a aucune raison que des données réelles soit conforme à une loi uniforme.
Le principe des statistiques est de trouver quelle loi représente le mieux les données.
Le principe du test est de vérifier que rand() produit bien une loi uniforme (et donc pas gaussienne)Si j'ai bien compris l'idée de ton test, tu génères par une seule opération un nombre de 3*N valeurs aléatoires, et tu sépares en 3 pour avoir 3 fois N. C'est intéressant, je vais le faire.
et que les tirages sont indépendants.
Pour tester l'uniformité je teste : la moyenne, l'espérance, la répartition par décile.
Je le fais sur 3 jeu de données juste pour augmenter le nombre de test.
Pour tester l'indépendance je teste E[XY] = E[X]E[Y].
Alors tu auras des résultats très grossier : l'incertitude sur les moyennes et les déciles sera de l'ordre de +/-0.019.Moi de vais faire N = 1000.
Quand on veut regarder du 0.1 ou 0.5 c'est vraiment pas précis...
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 15:27
Voila le résultat avec mon générateur.
Donc ton générateur est Dlz-acceptable ?
As-tu testé le protocole que tu as proposé dessus ?
As tu observé si pn tendait vers 19.2% ou vers 25% ?
Et qn ?
(N = 1000 c'est vraiment pas beaucoup, comme tu peux le constater par toi même)
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 15:50
Je parle de tout résultat, c'est à dire mesure comptage, d'une expérience aléatoire.Sylviel a écrit:Bref, soyons clair, ce dont tu parles c'est uniquement pour les erreurs de mesure ?
Ou ça s'applique à toute suite de nombre aléatoires ?
Ce que tu m'as montré, par exemple avec le loto : un très joli graphique où les abscisses correspondent aux numéros des boules.
Il ne me semble pas qu'un numéro de boule puisse être assimilé à une mesure. les numéros de boules, c'est comme les taches sur un dé, c'est un indice de repérage et non un nombre. Habituellement on appelle ça un label. Donc là, c'est le terme "comptage" qu'il convient d'utiliser. Alors, si tu veux vérifier, pour chaque boule compte le nombre d'apparitions, fais-en la moyenne, calcule l'écart-type, la variance, tout ce que tu veux, mais sois un peu sérieux.
Si tu veux bien, restons strictement sur le sujet.
J'ai utilisé strictement le protocole que tu as proposé. Je l'ai fait avec N = 1000 et je peux justifier ce choix.
Et toi, avec ton générateur, qu'est-ce que tu obtiens ?
Si on veut comparer les déciles, c'est à dire 19% ou 25%, t'avais qu'à le dire avant, mais je vais le faire tout de même.
- InvitéInvité
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 18:30
A, maintenant on parle de "mesure de comptage", c'est nouveau...Je parle de tout résultat, c'est à dire mesure comptage, d'une expérience aléatoire.
Moi je te parle de suite de nombres obtenu aléatoirement.
Et donc je répète mes questions précises :
Est-ce que je peux mesurer le nombre de clients rentrant dans un magasin par unité de temps ? x1 = nombre de client entrant dans le magasin sur la première unité de temps
Est-ce que je peux mesurer la durée de vie d'atomes radioactif ? x1 = durée de vie d'un atome, x2= durée de vie d'un autre atome
Est-ce que je peux mesurer la vitesse du vent sur des jours différents ? x1= vitesse du vent au jour 1, x2 = vitesse du vent au jour 2...
Est-ce que je peux mesurer la hauteur maximum des crues ?
Il ne me semble pas qu'un numéro de boule puisse être assimilé à une mesure. les numéros de boules, c'est comme les taches sur un dé, c'est un indice de repérage et non un nombre. Habituellement on appelle ça un label. Donc là, c'est le terme "comptage" qu'il convient d'utiliser.
Et tu as écris cela où ?
Moi j'ai parlé de suite de nombres aléatoire. De résultats des tirages d'une variable aléatoires.
Pour mémoire une variable aléatoire réelle est à valeurs dans R, il s'agit donc d'un nombre (pas d'un label).
Je t'invite à aller lire le poste que j'ai fait sur les variables aléatoires uniforme. Tu verras pour l'exemple du dé que les faces ont des labels (que j'ai noté A,B,C,D,E,F)
et que la variable aléatoires prends des valeurs réelles {1,2,3,4,5,6} et pas des "labels". Et la définition est conforme à ce que dis Harthong...
Dans l'exemple des boules du loto c'est pareil : je regarde la variable aléatoire qui prends pour valeur (réelle, donc ici un entier, pas un label) le numéro sur la boule.
C'est une variable aléatoire réelle. Sa loi est uniforme sur les entiers de 1 à 49 comme le montre la courbe que je t'ai donnée.
Alors, si tu veux vérifier, pour chaque boule compte le nombre d'apparitions, fais-en la moyenne, calcule l'écart-type, la variance, tout ce que tu veux, mais sois un peu sérieux.
Je suis parfaitement sérieux. Je t'ai dis que je prenais en entrée n'importe quel suite de nombres tirés aléatoirement selon la même loi.
Si ce n'est pas ce que tu veux dire soit sérieux et précis dans ce que tu appelles "mesure ou d'observation aléatoires d'une même chose" ou
"Je parle de tout résultat, c'est à dire mesure comptage, d'une expérience aléatoire."
[Je l'avais dis dès le début : un coup tu parles des résultats de l'expérience aléatoire (donc du nombre obtenu aléatoirement),
un coup tu parles des proportions des valeurs possibles... SOIT PRECIS !!!]
Si tu veux bien, restons strictement sur le sujet.
Sauf que le deal c'est : tu me donnes un protocole précis permettant de vérifier ton affirmation selon laquelle tout résultat
d'une expérience aléatoire a ses écarts à la moyenne conforme à la loi normale
et je veux bien discuter de tests basiques sur les générateurs de nombres aléatoires.
Même si je n'ai vraiment pas compris ce que tu espère tirer de ces tests (ils sont bien inférieurs à ceux que tous les générateurs classique passent...)
J'ai utilisé strictement le protocole que tu as proposé. Je l'ai fait avec N = 1000 et je peux justifier ce choix.
Oui et je t'ai expliqué la limite de N = 1000 (que tu peux effectivement vérifier sur tes résultats).
Et toi, avec ton générateur, qu'est-ce que tu obtiens ?
Qu'est-ce que tu crois ? Ce que la théorie prédis...
https://repl.it/repls/DearestClumsyMonitors#main.py
1) ce n'est pas les déciles mais les classes avec ton écart-probableSi on veut comparer les déciles, c'est à dire 19% ou 25%, t'avais qu'à le dire avant, mais je vais le faire tout de même.
2) je te lai dis sur le message d'avant
Sylviel a écrit:Sais tu que si tu prends le résultat de n'importe quel fonction "rand()" par défaut tu n'auras pas 25% et 16% mais 19.2% ?
Je t'ai donné un code avec python (et évidemment j'obtiens le résultat prévu par la théorie),
mais si tu suis exactement le protocole établi ci-dessus (à savoir que les xi sont les résultats de ton rand() par défaut)
et applique les formules ci dessus (la formule de pn est exactement "le nombre de xi qui sont entre 0 et ep" divisé par le nombre de tirages éffectués") tu auras
la même chose. Si ce n'est pas le cas je veux bien voir le code pour vérifier que tu suis bien le protocole.
P.S : tu crois vraiment que tu vas obtenir 25% et 16% en prenant des écarts de tailles ep, alors que tu vois bien que tu as 10% dans chaque classe (et que celle du milieu ne sont donc pas privilégiées) ?
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 19:27
Bon, d'abord, je n'ai pas écrit "mesure de comptage" mais "mesure comptage". Je reconnais que j'ai oublié la virgule et je comprends, c'est une faute grave.
Tu peux mesurer tout ce que tu veux. S'il s'agit de client, on dirait plutôt "compter".
Quand je parle d'expérience, c'est une expérience sur quelque-chose, pas une formule sur un papier.
Mais, le numéro de la boule, c'est pas un entier, c'est un dessin, un repère. Apparemment le terme "label" t'est inconnu. S'il n'y avait pas de numéro sur les boules, comment tu pourrais savoir laquelle est sorti. On a mis des numéros, on aurait pu mettre des lettres ou je ne sais quoi d'autre. Par exemple la boule N° 3 est-elle égale à la boule N°1 + la boule N° 2. Je sais que tu connais l'addition. J'aimerais bien que tu répondes.
J'ai regardé ta sortie. Tu appelles ça des sorties aléatoires ? Moi, j'appelle ça des sorties exactes. Très nettement on ne parle pas de la même chose.
On m'a déjà dit que le terme "hasard" n'était pas un terme mathématique, je constate que "aléatoire" a un sens particulier pour les matheux. Qu'il se débrouillent avec mais qu'ils ne viennent pas dire que c'est la vérité.
Tu peux mesurer tout ce que tu veux. S'il s'agit de client, on dirait plutôt "compter".
Nombre de quoi ? Tu comptes quoi ?Pour mémoire une variable aléatoire réelle est à valeurs dans R, il s'agit donc d'un nombre (pas d'un label).
Quand je parle d'expérience, c'est une expérience sur quelque-chose, pas une formule sur un papier.
Mais, le numéro de la boule, c'est pas un entier, c'est un dessin, un repère. Apparemment le terme "label" t'est inconnu. S'il n'y avait pas de numéro sur les boules, comment tu pourrais savoir laquelle est sorti. On a mis des numéros, on aurait pu mettre des lettres ou je ne sais quoi d'autre. Par exemple la boule N° 3 est-elle égale à la boule N°1 + la boule N° 2. Je sais que tu connais l'addition. J'aimerais bien que tu répondes.
J'ai regardé ta sortie. Tu appelles ça des sorties aléatoires ? Moi, j'appelle ça des sorties exactes. Très nettement on ne parle pas de la même chose.
On m'a déjà dit que le terme "hasard" n'était pas un terme mathématique, je constate que "aléatoire" a un sens particulier pour les matheux. Qu'il se débrouillent avec mais qu'ils ne viennent pas dire que c'est la vérité.
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 19:49
Je vérifie encore une fois que pour un matheux, cela parait très difficile de distinguer la notion de chiffre et la notion de nombre. Il suffit de dire qu'un truc quelconque est une variable aléatoire réelle, donc dans R, pour que ça devienne automatiquement un nombre. Et au passage, on emploie le terme "variable aléatoire" alors que c'est une valeur renvoyée par la fonction "variable aléatoire", on pourrait dire aussi "variation aléatoire".
Les matheux ont pris l'habitude de demander aux autres d'être précis, il feraient mieux par commencer par l'être eux même.
S'ils emploient des termes ou expressions appartenant à leur jargon personnel, alors ils n'ont qu'à faire un lexique.
Les matheux ont pris l'habitude de demander aux autres d'être précis, il feraient mieux par commencer par l'être eux même.
S'ils emploient des termes ou expressions appartenant à leur jargon personnel, alors ils n'ont qu'à faire un lexique.
Re: Fiabilité des générateurs de nombres aléatoires
Ven 11 Sep - 22:04
@ fanDeDlz, tu devrais te calmer et te limiter à parler de choses techniques, de préférence avec des précisions et en t'interdisant toute remarque personnelle visant un membre de ce forum.
Si j'ai bon souvenir, ta compréhension des dés est plutôt du type "monopoly" que comme support pédagogique en matière de probabilités.
Si j'ai bon souvenir, ta compréhension des dés est plutôt du type "monopoly" que comme support pédagogique en matière de probabilités.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|