IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS STAT Discussion :

MACRO pour générer échantillon bootstrap


Sujet :

SAS STAT

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Points : 11
    Points
    11
    Par défaut MACRO pour générer échantillon bootstrap
    Bonjour,

    Voilà une macro permettant d'effectuer un échantillon bootstrap ("out") à partir d'un jeu de données ("in").
    J'ai trouvé cette macro (qui fonctionne très bien) sur :
    http://www.math.univ-toulouse.fr/~be...s/tp6ssbvc.pdf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    /* Macro générant des échantillons bootstrap */
     
    %macro bootstrp(in,out);
    data seed (keep=seed) &out (drop=seed i);
    if _n_=1 then set seed;
    do i=1 to ntot;
      call ranuni(seed,num);
      num=floor(ntot*num+1);
      set &in point=num nobs=ntot;
      output &out;
    end;
    output seed;
    stop;
    run;
    %mend;
     
    data seed;
    retain seed 13;
    run;

    Malheureusement, étant novice en la matière , j'ai quelques difficultés à comprendre :
    - à quoi correspond "seed" qu'on appelle la graine.
    -pourquoi la graine est égale à 13 et et quelle valeur choisir?
    data seed;
    retain seed 13;
    run;
    - d'où vient la variable point dans "set &in point=num nobs=ntot;"
    - pourquoi faire un "stop;"

    Merci d'avance pour vos réponses.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 161
    Points : 224
    Points
    224
    Par défaut
    Salut Glaconutella,

    Le seed permet de générer tes nombre (pseudo) aléatoires.
    En choisissant un seed fixe, tu auras les mêmes résultats entre 2 exécutions de ton programme.
    je te conseille de prendre une autre valeur (Ex le nombre de secondes écoulés depuis le 1/1/2010) pour éviter cet effet. Ainsi 2 exécutions de ton programme ne donnera pas les mêmes résultats.


    Le point et le stop vont ensemble. Le point permet l'accession directe à la num ème observation (dixit ton programme)

    Stop permet de quitter l'étape data. sinon, il boucle sans cesse sur la num ème observation.

    Ces instructions sont plus performantes que un where=(_n_=num)

  3. #3
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    vas voir la proc surveyselect qui fait du bootstrap toute seule avec REPS=

  4. #4
    Membre éclairé
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Points : 823
    Points
    823
    Par défaut
    Tu peux trouver plein d'infos et de programmes sur le site d'Olivier DECOURT
    http://www.od-datamining.com/

  5. #5
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    J'en avais parlé avec Olivier cet été et nous avions conclu que REPS= était la meilleur stratégie pour le bootstrap

Discussions similaires

  1. Macro pour générer un Word pour chaque ligne
    Par dragonflyhood dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/09/2012, 02h00
  2. Création d'une macro pour générer un xml depuis excel
    Par vieri dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2011, 09h46
  3. [XL-2003] Pb de création de macro pour générer un plan Excel par macro
    Par EAGLES08 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/10/2009, 10h47
  4. [Macro] Une macro pour générer une autre macro
    Par green_fr dans le forum Macro
    Réponses: 2
    Dernier message: 13/01/2009, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo