Simulation chi2 (ou loi gamma) — Les-mathematiques.net The most powerful custom community solution in the world

Simulation chi2 (ou loi gamma)

Bonjour,

Connaissez vous un algorithme SANS METHODE DU REJET pour simuler une loi du chi2 à d (non entier) degrés de libertés ? Cette loi étant un loi gamma (d/2, 2), une méthode de simulation pour gamma convient aussi.

Une méthode approchée est aussi intéressante.

Merci

Nicolas

Réponses

  • curieux: quels sont les points que tu cherches a eviter et qui sont present dans la methode du rejet ?
  • Regarde dans l'excellent Handbook of statistical distributions de Walck.

    Il y a aussi une méthode dans l'excellent Weighing the Odds de Williams, mais je ne sais plus quelle est-elle.
  • nice! je ne connaissais pas cette methode (celle presentee dans "Handbook of statistical distributions de Walck")
    exo: montrer que ca marche
  • Il y a aussi l'incontournable L. Devroye : Non-Uniform Random Variate Generation dispo gratuitement, voir chapitre IX.

    Amicalement,
  • Je trouve que les algos de "Jonkh and co" ressemblent quand même beaucoup à des algorithmes de rejet du fait de l'utilisation d'un critère de conditionnement sur une loi de base "plus large". Ce qui au demeurant ne veut pas dire qu'ils ne sont pas efficaces.

    Je me trompe ?
  • Merci à tous pour ces sources. Je connaissais le livre de Luc Devroye mais je n'y ai pas trouvé mon bonheur dedans.

    Pour répondre à alekk, la méthode du rejet présente l'inconvénient majeur de ne pas connaître a priori le nombre de variables aléatoires de base à simuler. Lorsque tu fais des simulations de Monte Carlo et que tu souhaites connaître l'influence d'un paramètre en particulier, le mieux est d'utiliser le même jeu de variables aléatoires pour les deux simulations. Chose pas du tout maitrisée avec une méthode du rejet.

    Qui plus est, le rendement d'une simulation classique du chi2 peut être fortement réduit pour certains jeux de paramètres.

    Nicolas
  • L'influence d'un paramètre ? Deux simulations ?.. Dans quel contexte parles-tu ?
  • Je parle par exemple de processus CIR qui se simulent via des chi2 décentrés...
  • ? Je pige pas mais c'est pas grave.
  • Bon, je reprends

    Considère le processus défini par l'EDS :
    $dV_t = \kappa(\thrta-V_t)dt+\nu\sqrt{V_t}dW_t$ avec $W_t$ un mouvement brownien.

    On sait alors que, de manière générale, $V_T|V_t$ suit une loi du $\chi^2$ décentré.

    Maintenant, je veux simuler $\mathbb{E}g(V_T^{\nu})$ pour un $\nu$ fixé mais aussi pour $\nu+\varespilon$ pour comprendre l'influence de $\nu$ sur $\mathbb{E}g(V_T)$. En particulier, tu vas calculer la différence des deux résultats. Sur la même idée que la réduction de variance par variable de contrôle, il est souhaitable que nos deux processus $V_T^{\nu}$ et $V_T^{\nu+\varepsilon}$ soient bien corrélées pour que le résultat (l'écart entre les deux résultats) ne soient pas trop entaché de bruits dûs aux simulations...

    Si je ne suis pas clair, je t'invite a regarder le livre de Glasserman sur les simu Monte Carlo, et le calcul de sensibilités...

    Nicolas
  • Pour moi simuler une Gamma, c'est simuler une Gamma. Toi tu parles de quelque chose de plus spécifique.
  • Nyx écrivait:
    > il est souhaitable que nos deux processus $V_T^{\nu}$ et
    > $V_T^{\nu+\varepsilon}$ soient bien corrélées pour
    > que le résultat (l'écart entre les deux résultats)
    > ne soient pas trop entaché de bruits dûs aux
    > simulations...

    en quoi le fait que cela ne soit pas une methode de rejet t'aidera a faire des choses correlees ? (et sinon on connait tres bien que pour methode du rejet, le nombre necessaire de rejets suit une loi geometrique -> on peut analyser la complexiter de l'algo assez facilement)

    Sinon, puisque tu parlais de methode approcher, pourquoi ne pas simuler approximativement tes trajectoires (simple methode d'Euler), pour differentes valeurs de $\nu$, mais en utilisant les memes increments gaussiens? Cela te donnera des resultats tres raisonnables: cela sera assez lent, te donnera une methode non exacte (mais la methode a laquelle tu fais allusion est aussi approchee puisque tu "moyennise" $g$ par Monte Carlo), mais les valeurs seront tres correlees donc te donnera de bons resultats pour etudier $g(V_T^{\nu+\epsilon})-g(V_T^{\nu})$

    ps: tu peux aussi jeter un coup d'oeil a cette discussion: http://www.wilmott.com/messageview.cfm?catid=8&threadid=47558
Connectez-vous ou Inscrivez-vous pour répondre.
Success message!