1. #1
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut Echantillonnage à partir d'une base de données

    Bonjour,

    J'ai un population de 10 personnes et je veux prendre un échantillon de 8 personnes en prenant que 2 personnes de chaque entreprise sachant que j'ai 4 entreprises (A, B, C et D)

    id sexe age entreprise
    1 f 25 A
    2 m 30 A
    3 m 45 B
    4 m 51 B
    5 f 26 C
    6 f 23 C
    7 f 41 D
    8 m 50 D
    9 f 33 D
    10 m 26 D

    J'ai essayé le code suivant mais je n'obtiens pas ce que je cherche !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    proc  surveyselect data=table1
    method=srs  n=8  out=table2 ;run;
    ps: l'exemple est juste une simplification de ma table de 10 000 individus

    merci pour votre aide

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 6
    Points
    6

    Par défaut strata

    Bonjour,

    Je pense que vous souhaitez réaliser un tirage aléatoire stratifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       proc surveyselect data=table1
             method=srs n=2
             seed=123 out=table2;
          strata entreprise;
       run;
    En précisant n=2, l'échantillon consistera en 2 individus pour chaque modalité de la variable "entreprise".

    Attention, votre table d'entrée doit être triée sur la variable entreprise.

    J'espère que cela répond à votre question.

  3. #3
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut

    je vous remercie pour votre réponse.

    et si je voudrais tirer un échantillon aléatoire simple en prenant qu'une seule observation de l'entreprise A et 2 observations des autres entreprises.

    comment il faut faire ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 6
    Points
    6

    Par défaut

    Vous pouvez faire autant de proc surveyselect qu'il ya d'échantillons différents à réaliser en filtrant à chaque fois sur l'entreprise désirée.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       proc surveyselect data=table1 (where =( entreprise ="A" ))
             method=srs n=1
             seed=123 out=table2;
       run;
     
       proc surveyselect data=table1 (where =( entreprise ="B" ))
             method=srs n=2
             seed=123 out=table3;
       run;

  5. #5
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut

    oui moi je veux un seul échantillon en ayant 2 conditions différentes sur la même variable "entreprise"

    Merci

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 6
    Points
    6

    Par défaut

    Dans ce cas vous pouvez remplacer la taille de l'échantillon (n=) par une table contenant les différentes tailles d'échantillons souhaités par strate.
    Cette table doit alors contenir une variable entreprise et une variable _NSIZE_ donnant la taille de l'échantillon souhaité pour chque modalité de la variable entreprise.

  7. #7
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut

    le code svp

  8. #8
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut

    Est ce que vous pouvez me montrer comment introduire cette table dans le code ?

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 6
    Points
    6

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    data strates;
    input entreprise $ _NSIZE_;
    datalines;
    A 2
    B 3
    C 2
    D 1
    E 2
    ;
    run;
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       proc surveyselect data=table1
             method=srs n=strates
             seed=123 out=table2;
          strata entreprise;
       run;

  10. #10
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut

    parfait , merci beaucoup

  11. #11
    Membre régulier
    Inscrit en
    février 2009
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 257
    Points : 74
    Points
    74

    Par défaut

    Mon problème n'est pas tout à fait résolu !

    En fait ma base initiale contient plusieurs milliers d'observations, je veux tirer un échantillon aléatoire en respectant 3 conditions.

    voici l'explication de mon problème :
    if var1=condition1 and var2=condition2 then "prendre X d'observations"
    if var1=condition1 and var2=condition3 then "prendre Y d'observations"
    Qu'est ce ce je dois modifier dans ce code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc surveyselect data=base_initiale
    method=srs  n=?
    seed=123  out=base_finale;
    where var1=condition1;
    strata var2;
    run;

Discussions similaires

  1. mld à partir d'une base de donnée oracle
    Par OUALASS dans le forum Designer
    Réponses: 8
    Dernier message: 23/03/2006, 18h37
  2. [FLASH 8] Afficher des images à partir d'une base de données
    Par developpeur_mehdi dans le forum Flash
    Réponses: 9
    Dernier message: 15/03/2006, 11h43
  3. réplication à partir d'une base de données heterogène
    Par elbennaoui dans le forum Réplications
    Réponses: 1
    Dernier message: 16/11/2005, 17h05
  4. afficher une image à partir d'une base de données access
    Par zidenne dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2005, 12h41

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