FAQ SASConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016 Ajouter une question
Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.
Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .
L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.
- Comment obtenir l'intervalle de confiance d'une variable aléatoire suivant une distribution de Poisson ?
- Comment générer des données suivant une loi Uniforme ?
- Comment générer des données suivant une loi Normale ?
- Comment générer des données suivant une loi Lognormale ?
- Comment générer des données suivant une loi Normale bivariée ?
- Comment générer des données suivant une loi Gamma ?
- Comment générer des données suivant une loi Exponentielle ?
- Comment générer des données suivant une loi Beta ?
- Comment générer des données suivant une loi Weibull ?
- Comment générer une loi normale multidimensionnelle sous SAS ?
- Comment représenter la fonction de répartition d'une variable aléatoire ?
- Quelle différence y a-t-il entre la fonction CINV de SAS et la fonction KHI2_INVERSE de Excel ?
- Comment calculer le nombre de permutations ou de combinaisons de P objets parmi N ?
Il n'existe pas sous SAS de procédures permettant d'obtenir directement un intervalle de confiance d'une distribution de Poisson. Il faut utiliser les fonctions SAS suivantes :
- CDF : retourne le niveau de probabilité cumulée à gauche d'une fonction de distribution donnée ;
- PDF : retourne la valeur de la densité de probabilité d'une fonction de distribution donnée.
Les fonctions de distribution disponibles sont :
- Bernoulli
- F
- Laplace
- Poisson
- Beta
- Gamma
- Logistic
- T
- Binomial
- Gaussian
- Lognormal
- Uniform
- Cauchy
- Geometric
- Negbinomial
- Wald
- Chisquare
- Hypergeometric
- Normal
- Weibull
- Exponential
- Igauss
- Pareto
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution uniforme
Données générées comprises en 1000 et 7863 (Seed=45123)
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=int(ranuni(45123)*6864)+1000; output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution normale
Paramètres : moyenne=10, variance=0.1 (Seed=1515).
Les fonctions rannor et normal sont strictement identiques.
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=10+sqrt(0.1)*normal(1515); output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution lognormale
Paramètres : moyenne=20 et écart-type=5 (seed = 5213).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=exp(20+5*rannor(5213); output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution normale bivariée
Paramètres : rho=0.3 (moyenne nulle et écart-type égal à 1)
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=0.3*rannor(456789)+sqrt(1-0.3**2)*rannor(456789); output; end; run; |
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | data a; keep x y; mu1=10; mu2=20; var1=4; var2=9; rho=.5; do i = 1 to 20; x = mu1+sqrt(var1)*rannor(123); y = (mu2+rho*(sqrt(var2)/sqrt(var1))*(x-mu1))+sqrt(var2*(1-rho**2))*rannor(123); output; end; run; data b; keep x y; mu1=10; mu2=20; var1=4; var2=9; rho=.5; do i = 1 to 20; x = rannor(123); y = rho*x+sqrt(1-rho**2)*rannor(123); x = mu1 + sqrt(var1)*x; y = mu2 + sqrt(var2)*y; output; end; run; data c; keep x y; mu1=10; mu2=20; var1=4; var2=9; rho=.5; std1=sqrt(var1); std2=sqrt(var2); c=sqrt(1-rho**2); do i = 1 to 20; x = rannor(123); y = rho*x+c*rannor(123); x = mu1 + sqrt(var1)*x; y = mu2 + sqrt(var2)*y; output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution Gamma
Paramètres : Beta=2 et Alpha=4 (seed = 123154).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=2*rangam(123154,4); output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution exponentielle
Paramètre : lambda=3 (seed = 4145).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=2*ranexp(4145)/3; output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution Beta
Paramètres Alpha=5 et Beta=3 (seed = 12345).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 | data select(drop=i); do i=1 to 20; y1=rangam(12345,5); y2=rangam(12345,3); x=y1/(y1+y2); output; end; run; |
Dans cet exemple, 20 valeurs sont tirées au sort et stockées dans une table SAS.
Distribution de Weibull
Paramètres c=2 et lambda=1/75 (seed = 212121).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | data select(drop=i); do i=1 to 20; x=75*(-log(ranuni(212121)))*(1/2); output; end; run; |
Pour générer une loi normale multidimensionnelle, il suffit de tenir compte des deux points suivants :
- Si toutes les composantes d'un vecteur aléatoire X suivent une loi normale et si toutes sont indépendantes, alors X est gaussien. Une CNS pour qu'un vecteur gaussien ait ses composantes indépendantes, est que sa matrice de covariance soit diagonale.
Code SAS dans le cas d'un vecteur bidimensionnel :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Data INDEPNOR (drop = i) ; Retain seed1 1686174032 seed2 844616116 ; Do i=1 to 100 ; call rannor (seed1, stream1) ; call rannor (seed2, stream2) ; x = mux + sigmax * stream1 ; y = muy + sigmay * stream2 ; output ; end ; run ; proc CORR data = INDEPNOR ; var x y ; run ; |
- Dans le cas d'un vecteur multidimensionnel (dimension > 2), une MACRO %MVN est disponible sur notre site internet à l'adresse suivante http://ftp.sas.com/techsup/download/stat dans le fichier MVN.sas.
La fonction de répartition d'une variable peut s'obtenir en utilisant l'instruction CDFPLOT de la proc CAPABILITY du module SAS/QC. Si vous ne disposez pas de ce module, vous pouvez utiliser une proc FREQ, suivie d'une étape data et d'une proc GPLOT, comme dans l'exemple suivant :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | /* Représenter une fonction de répartition sans le module SAS/QC */ /* Fabrication de données de test */ data one; drop i; do i=1 to 50; y=10+25*ranuni(12345); output; end; run; proc freq data=one noprint; table y / out=out; run; data final; set out; cumpct+percent; output; run; title 'fonction de repartition'; symbol i=steplj v=none; proc gplot data=final; plot cumpct*y; run; /* Avec le module SAS/QC, utiliser PROC CAPABILITY */ proc capability data=one noprint; cdfplot y; run; |
Ces fonctions renvoient la valeur d'une variable aléatoire suivant une loi du Khi-deux, selon une probabilité et un degré de liberté donnés.
Syntaxe :
La probabilité qu'une variable x suive une loi du chi2 à df degrés de liberté est définie telle que : Probabilité=Chi2(x, df).
L'appel des fonctions se fait comme suit :
- CINV (1-probabilite, df) = x
- KHI2_INVERSE (probabilite, df) = x
La fonction CINV attend un percentile de la distribution du Khi-deux alors que la fonction KHI2.INVERSE attend une probabilité unilatérale.
Remarque
La fonction CINV est l'inverse de la fonction PROBCHI de SAS®.
Exemple
SAS :
Code sas : | Sélectionner tout |
1 2 | X= =CINV (0.95, 3) X=7.81 |
Code sas : | Sélectionner tout |
1 2 | X=KHIDEUX.INVERSE (0,05, 3) X=7.81 |
À partir de la version 8 de SAS, il existe les fonctions PERM et COMB pour calculer le nombre de permutations et combinaisons de P objets parmi N.
Exemple:
Code sas : | Sélectionner tout |
1 2 3 4 | data essai; c52=comb(5,2); p52=perm(5,2); run; |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.