FranceBalade       Cours de Mathématiques  

Générer la loi de Student

La méthode polaire de Bailey (1994) : deux uniformes u₁, u₂ donnent un rayon r et un angle θ — la projection r·cos θ suit exactement la loi t(ν).

Commandes de la simulation

Le tirage vu de l'intérieur — du carré unité au point polaire (r, θ)

Densité observée et densité de Student t(ν)

tirages N = 0 moyenne observée = variance observée = variance théorique ν/(ν−2) = 3,0 hors de [−6, 6] : 0 %

Pourquoi cette transformation fonctionne

function studentRandomBailey(nu) {
    const u1 = Math.random();
    const u2 = Math.random();

    // Application de la transformation directe
    const r = Math.sqrt(nu * (Math.pow(u1, -2.0 / nu) - 1.0));
    const theta = 2.0 * Math.PI * u2;

    return r * Math.cos(theta);
}

C'est l'exact analogue de la méthode de Box–Muller pour la loi normale : là où Box–Muller pose r = √(−2 ln u₁), Bailey pose r = √(ν(u₁−2/ν − 1)). On vérifie d'ailleurs que quand ν → ∞, u₁−2/ν − 1 ≈ −(2/ν)·ln u₁ : la formule de Bailey devient celle de Box–Muller, et la loi t(ν) devient la loi normale.

Le rayon r est distribué de sorte que le couple (r cos θ, r sin θ) ait une densité à symétrie circulaire dont chaque projection suit exactement la loi de Student : fν(x) = Γ((ν+1)/2)√(νπ) Γ(ν/2) (1 + x²/ν)−(ν+1)/2.

La courbe verte en pointillé rappelle la densité normale : pour ν petit, les queues de la loi de Student sont beaucoup plus lourdes — les points s'échappent loin du centre (à ν = 1, c'est la loi de Cauchy, sans espérance ni variance !). Quand on augmente ν, la courbe rouge vient se coller à la verte : Student tend vers Gauss.

Le premier volet montre un tirage au ralenti : u₁ fixe le rayon (les u₁ proches de 0 projettent le point très loin — ce sont eux qui fabriquent les queues lourdes), u₂ fixe l'angle, et l'ombre du point sur l'axe horizontal est la valeur tirée.