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 Base Discussion :

variables aléatoires conditionnelles [DATA]


Sujet :

SAS Base

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut variables aléatoires conditionnelles
    Bonjour,
    Je cherche depuis longtemps.
    je voudrais qu'une variable prenne les valeurs 0 ou 1 sachant que 1 par exemple 12% de chance d'apparaître.

    Bonjour,
    je cherche depuis longtemps à créer une variable prenant les valeurs 0 ou 1, sachant que 1 a 12% de chance d'apparaître.

    je m'explique:

    Pour chaque ligne (âge), j'ai une probabilité connue d'occurrence d'un évènement admettons 12% pour la ligne 1 25% pour la ligne 2 etc..
    Je veux créer une variable aléatoire qui pour chaque ligne sur l'ensemble de l'échantillon prenne affiche un 0 ou un 1 en fonction de la probabilité renseignée.
    Je sais qu'il faut que j'utilise soit un call logistic ou un ranuni, mais comment par exemple le ranuni m'affiche un 1 et sur l'ensemble de l'échantillon l'espérance soit de 12% de rencontrer un 1.


    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Par défaut
    Tu peux utiliser une loi UNIFORME

    X

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut
    oui, je sais, mais comment faire pour que l’occurrence du 1 respect une certaine probabilité?

    voici une partie de mon code :

    data simperp;
    set simulation2;
    if finna = 0 then x1=int(ranuni(0)<tauxperp);
    run;

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut
    par exemple
    j'ai une colonne avec l'âge de l'individu et les probabilités :
    à 35 ans un individu a 0.12 de chance que un 1 lui soit affecté.


    âge y x1
    35 0.12 ?
    36 0.5 ?
    37 0.06 ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Par défaut
    comme ceci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data WORK.ALEAS_2;
       set WORK.ALEAS;
       x = ifn(ranuni(123) <= p, 1, 0);
    run;
    X

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

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Par défaut
    Bonjour

    Tu verras que ce genre de simulation est assez simple avec ranuni()

    Dans le code d'exemple, je crée mon "top" de réalisation de l'évènement si mon ranuni() est inférieur à ma proba.
    La proc means permet de vérifier le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    data WORK.TEST ;
        do loop = 1 to 1000 ;
            PROBA_EVT = 0.12 ; output ;
        end ; 
    run ; 
     
    data WORK.SIMULATION;
        set WORK.TEST ;
        TP_EVT = (ranuni(1) < PROBA_EVT ) ;
    run ; 
     
    proc means data = WORK.SIMULATION ;
        var TP_EVT ;
    run ;
    A noter que le paramètre du ranuni() est la "racine" du pseudo aléa.
    Si tu souhaites pouvoir resimuler de façon identique le même échantillon (trace d'audit), il faut alors choisir une valeur spécifique > 0.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générateur de variable aléatoire
    Par wapita dans le forum Langage
    Réponses: 11
    Dernier message: 24/07/2014, 01h39
  2. paramètres sur un lien et variables aléatoire
    Par opeo dans le forum Langage
    Réponses: 5
    Dernier message: 09/03/2007, 14h56
  3. Réponses: 4
    Dernier message: 18/01/2007, 13h48
  4. Générer une variable aléatoire gaussienne
    Par User dans le forum Probabilités
    Réponses: 5
    Dernier message: 29/06/2006, 22h58
  5. Réponses: 2
    Dernier message: 08/06/2006, 00h10

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