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.


SommaireStatistiquesProbabilité et Simulation (13)
précédent sommaire suivant
 

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

Mis à jour le 11 décembre 2009 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;
Trois méthodes, en ordre croissant d'efficacité, dans lesquelles on entre les moyennes et écarts-types des deux lois normales.

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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;

Mis à jour le 10 avril 2014 fafabzh6 sas

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.

Mis à jour le 11 décembre 2009 fafabzh6 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;

Mis à jour le 11 décembre 2009 fafabzh6 sas

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
Excel :

Code sas : Sélectionner tout
1
2
X=KHIDEUX.INVERSE (0,05, 3) 
    X=7.81

Mis à jour le 11 décembre 2009 fafabzh6 sas

À 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;

Mis à jour le 11 décembre 2009 sas

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2020 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.