Pendant mon séjour récent en Nouvelle Angleterre, j’ai survolé le livre de Leonard Mlodinow, the drunkard’s walk. Et au hasard de mes lectures, je suis tombé sur la petite histoire suivante

Autrement dit, en utilisant les cinq derniers chiffres d’une quantité économique comme le us treasury balance, on aurait un générateur de nombre aléatoire…
Par contre la suite est un peu plus surprenante,

La loi de Benford (que j’avais pu évoquer ici ou là) parle des premiers chiffres, mais cette fois on parle deslast five digits. Donc visiblement l’évoquation n’est pas pertinente ici. Mais qui sait ? Ca reste malgré tout une histoire intéressante. Considérons – histoire de tester cette légende – les deux sources de données suivantes,http://treasurydirect.gov/ et http://economagic.com/. Sur ce dernier site, un petit travail de mise en forme des données est nécessaire.
b1=read.table("http://freakonometrics.free.fr/debtus1.txt", header=TRUE,sep="\t") b2=read.table("http://freakonometrics.free.fr/debtus2.txt", header=TRUE) X1=as.character(b1$Dollar.Amount) n1=nchar(X1) Y1=substr(X1,n1-8,n1-3) X1=as.numeric(substr(Y1,1,2))*1000+as.numeric(substr(Y1,4,6)) x=X1/100000 X2=b2$DEBT Y2=trunc(as.numeric(X2)) X2=as.character(Y2) n2=nchar(X2) Y2=substr(X2,n2-4,n2) y=as.numeric(Y2)/100000 y=y[y<1]
Pour rappel, un générateur aléatoire (standard) vérifie deux propriétés importantes
- les nombres doivent être tirés suivant une loi uniforme sur [0,1], i.e. ici, si on divise les nombres à 5 chiffres par 10000,
- les tirages doivent être indépendants entre eux.
La première propriété semble assez naturelle, et correspond à l’histoire racontée dans un commentaire posté ici (expliquant comment un casino avait été au bord de la faillite car une roulette faisait sortir certains chiffres trop souvent, et j’essayais de comprendre comment utiliser l’information qu’un chiffre sort plus souvent). La seconde est probablement encore plus importante.
- Visualisation de la distribution
La première idée est de visualiser la densité de nos séries de chiffres. Pour éviter les problèmes de bord (et comme c’est juste en introduction) on va utiliser un histogramme, et pas une estimation à noyau.
On obtient pour la première série la courbe rouge, et pour la seconde la courbebleue,

On note qu’a priori, pour la première série, l’hypothèse d’uniformité n’est peut être pas la plus réaliste…
- Test de Kolmogorov-Smirnov
On peut aussi mettre en œuvre un test de Kolmogorov-Smirnov afin de tester si la loi uniforme est adaptée.:
> ks.test(x,"punif") One-sample Kolmogorov-Smirnov test data: x D = 0.1047, p-value = 0.01645 alternative hypothesis: two-sided > ks.test(y,"punif") One-sample Kolmogorov-Smirnov test data: y D = 0.0456, p-value = 0.3581 alternative hypothesis: two-sided
On retrouve ici confirmée l’intuition précédante: la loi uniforme est pertinente pour la seconde série, pas la première.
- Les autocorrélations de la série
Travaillons uniquement sur la seconde série. On peut étudier l’autocorrélation de notre série de nombres, ou peut-être un peu plus malin, sur les quantiles gaussiens associés (les autocorrélations étant intéressantes pour les séries gaussiennes),:
ie. pour la série brute

et pour la série normalisée,

- Run test (de Wald–Wolfowitz)
L’idée est de comparer une série de chiffres à la médiane, s’ils sont plus grands, on note + (ou A) et sinon – (ou B). On crée alors une série du genre “+++−−++−−++++++−−−” et on compte les séries de + et les séries de -, les runs,
library(lawstat) runs.test(y,plot=TRUE) Runs Test - Two sided data: y Standardized Runs Statistic = -0.2462, p-value = 0.8055

Bref, la légende me semble à prendre avec des pincettes (car fonction de la source considérée), même si l’idée est intéressante (si l’on met de côté les aspects d’aléa moral). Et l’analyse sur la loi de Benford ne semble pas valide: les derniers chiffres sur les grands nombres ne se comportent pas du tout comme les premiers.

The probability that the sequence appears, assuming that there are 48 possible numbers in the lottery, is



given
and
changed when
goes to 0. In the case of Archimedean copulas, the copula of the conditional pair is still Archimedean (with another generator, except for Clayton copula). The graph below show how
changes, as
since Archimedean generators are not unique.
.
sa position à la date
, puis poser
pouvait être en n’importe quelle dimension, on posera

issue de
et
respectivement, notons que
, car il faut un nombre de pas pairs pour revenir à l’origine, et


et les
en notant que




si la série
converge. Aussi,
, notre alcoolique repassera presque sûrement par le point d’origine, alors que si
, il ne repasse pas par le bar où il a oublié ses clés avec probabilité
|.
issue de 




. Aussi, même sur une place, notre alcoolique reviendra presque sûrement à sa place initiale (et ce une infinité de fois, car une fois qu’il y est revenu et qu’il en repart, il repassera presque sûrement à cette position, etc).
issue de 



pour faire quelque chose de plus formel). Il arrive de la place sainte Anne, et là, il souhaite choisir le bar le moins cher. Le soucis est qu’il n’a pas le droit de faire demi-tour1 et il ne connaît pas les prix pratiqués dans les différents bars. Il part avec un a priori qui est que le prix d’une pinte est compris entre 3 et 6 euros, que le prix est uniformément réparti entre ces deux prix, et que les prix sont indépendants d’un bar à l’autre. Pour les financiers, il a une option (de commander une bière), et peut l’exercer quand il le souhaite. Une option américaine en quelque sorte. Supposons qu’on soit arrivé au bar
. On peut soit payer
(qui est supposé aléatoire, uniformément distribué et indépendant des autres bars), soit espérer que l’on puisse payer moins cher plus loin,
la valeur de cette option, alors


désigne la loi du prix de la bière (soit ici une loi uniforme) avec une condition terminale de la forme
. Posons
. Alors







de la place Sainte Anne et à une distance
de la place des Lices. On se demande s’il arrivera un jour à quitter la rue de la soif, et surtout au bout de combien de temps (ou après avoir parcouru quel distance)… Au delà du temps moyen passé à errer dans la rue, on pourra se demander la probabilité pour qu’il soit sorti de la rue pour 8 heures, histoire d’avoir une chance d’arriver à l’heure en cours.
la position à la date
. On suppose qu’à la date
. S’il sort par la partie inférieure (en
).
où
prend les valeurs
avec probabilités
,
s’il se dirige vers Sainte Anne,
s’il part place des Lices.
.
appartient forcément à
, et donc

est une martingale, nulle à la date initiale. Aussi,



,
, mais sur la transformée de Laplace
dont on peut montrer que la transformée de Laplace du temps de sortie d’un corridor de la forme
est

,

,

est indépendant de
. On peut alors montrer que si
est le temps d’arrêt défini comme le premier instant où le processus atteint
, alors




essais,

=15 clés, par exemple, on obtient la probabilité suivante, en fonction du nombre d’essais nécessaire pour ouvrir la porte,
, alors plus le nombre de clés essayé est grand, plus cela “prouve” que l’on a de forte chances d’être à jeun. On retrouve ça sur le graphique ci-dessous,



On retrouve alors quelque chose qui pourrait paraître plus intuitif… Quoi que. Si au 12ème essai, la porte n’était pas ouverte, la police a tout intérêt à arrêter notre jeune héros, car la probabilité qu’il soit ivre est supérieure à la probabilité a priori. En revanche, s’il réussit à l’ouvrir au 13ème essai, elle a intérêt à ne pas l’arrêter, car il y a de très fortes chances pour qu’il soit à jeun. Étonnant non ?
Considérons une personne ayant un trousseau de 10 clés, ou disons n pour généraliser. Il souhaite ouvrir la porte de chez lui, mais ne sait plus laquelle est la bonne. Combien d’essais – en moyenne – faudra-t-il avant de tomber sur la bonne clé ?
l’évènement “la bonne clé est tirée au bout de
essais“, alors







. Pour ceux qui ne savent plus comment calculer l’espérance d’une telle loi, on peut prendre trois lignes pour refaire le calcul

.




on obtient
, et on part de 0.
Et si on regarde l’histogramme et la fonction d’autocorrélation sur les 10 000 premières valeurs, on a gardé l’uniformité (ou tout du moins on ne doit pas en être trop loin), et on n’a plus d’autocorrélation.
Mais cet algorithme présente de très gros défauts numériques. Je n’aborderais pas ici les problèmes de ce générateur (je l’avais fait dans le chapitre sur les simulations dans le tome 2 du livre avec Michel Denuit).

. Par exemple si on prend comme valeur initiale π-3, on obtient, avec une simple fonction R
Plus généralement sur le caractère aléatoire des décimales de π, je renvoie aux publications de David H. Bailey (
Bref, en l’état cette méthode n’est pas vraiment géniale pour générer du “hasard“… à suivre donc.
sur [0,1].


Bref, on a à notre disposition des gens qui ont tiré des boules dans une urne. Alors rigoureusement, il faut faire attention car les tirages sont fait sans remise pour les 7 premières boules, puis on remet les boules pour le tirage suivant… Bref, les tirages ne sont pas rigoureusement indépendant les uns des autres (on ne peut pas avoir 3 fois consécutives le nombre “13”, alors qu’en théorie cela devrait être possible).