Publié le :
Mixte MIXTE

Rapport de Ventes et Simulation Binomiale Négative

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le code comporte deux volets distincts. Le premier génère un rapport financier à partir de la table 'sashelp.orsales', calculant les profits par année et par gamme de produits avec des pourcentages. Le second volet simule un jeu de données de 2000 observations suivant une distribution binomiale négative, puis utilise PROC GLIMMIX pour estimer les paramètres et valider la simulation par rapport aux valeurs théoriques.
Analyse des données

Type : MIXTE


Utilise SASHELP.ORSALES pour le reporting. Génère des données internes (table 'one') via des fonctions aléatoires (rangam, ranpoi) pour la partie statistique.

1 Bloc de code
PROC FORMAT
Explication :
Définition d'un format utilisateur pour l'affichage des libellés de gammes de produits.
Copié !
1PROC FORMAT;
2 value $sequip
3 'Sports' = 'Sports Equipment';
4 RUN;
2 Bloc de code
PROC REPORT
Explication :
Création d'un rapport de synthèse avec calculs de pourcentages via un bloc COMPUTE. Note : La ligne 'line @code_sas/...' contient une référence de fichier qui pourrait générer une erreur de syntaxe si elle n'est pas commentée ou corrigée.
Copié !
1title1 'Total profit per year';
2title2 'Separated by Product Line';
3PROC REPORT DATA=sashelp.orsales nowd split='*';
4 column year product_line profit percent;
5 define year / group;
6 define product_line
7 / group
8 f=$sequip.
9 'Product*Groups';
10 define profit / analysis
11 sum FORMAT=dollar15.2
12 'Annual*Profit';
13 define percent/ computed 'Product*Percentage'
14 FORMAT=percent10.2;
15 
16 break after year/ summarize suppress skip;
17 rbreak after / summarize;
18 
19 compute before year;
20 total = profit.sum;
21 endcomp;
22 compute percent;
23 percent = profit.sum/total;
24 endcomp;
25 compute after;
26 line ' ';
27 line @code_sas/25 Appendix_A Generating_Negative_Binomial_Data.sas 'Profits in US dollars';
28 endcomp;
29 RUN;
3 Bloc de code
DATA STEP Data
Explication :
Simulation de données : création d'une table 'one' contenant des variables aléatoires suivant une loi binomiale négative.
Copié !
1DATA one;
2 Mu = 30;
3 Kappa = 0.1;
4 alpha = 1 / kappa;
5 beta = kappa * mu;
6 n = 2000;
7 seed = 1917;
8 Variance = mu * ( 1 + mu*kappa);
9 DO id=1 to n;
10 u = beta * rangam( seed, alpha );
11 Y = ranpoi( seed, u );
12 OUTPUT;
13 END;
14 keep Mu Kappa Variance id y;
15RUN;
4 Bloc de code
PROC GLIMMIX
Explication :
Modélisation statistique : estimation des paramètres de la distribution sur les données simulées pour vérifier la cohérence avec les paramètres d'entrée.
Copié !
1ods select none;
2ods OUTPUT ParameterEstimates=parms;
3PROC GLIMMIX DATA=one;
4 model y = / dist=negbin link=identity s;
5RUN;
6ods select all;
5 Bloc de code
PROC PRINT / PROC MEANS
Explication :
Validation des résultats : affichage comparatif des paramètres théoriques (Mu, Kappa) et des statistiques observées sur les données générées.
Copié !
1ods html;
2title "True Mu and Kappa of Y's iid Negative-binomial(Mu, Kappa)";
3proc print data=one noobs;
4 where id = 1;
5 var Mu Kappa;
6run;
7 
8title "Estimated Mu and Kappa using PROC GLIMMIX";
9proc print data=parms noobs;
10 var Effect Estimate;
11run;
12 
13data one;
14 set one;
15 rename Mu = Mean;
16run;
17 
18title "True Mean and Variance of Y's iid Negative-binomial(Mu, Kappa)";
19PROC PRINT DATA=one noobs;
20 where id = 1;
21 var Mean Variance;
22RUN;
23 
24title "Estimated Mean and Variance";
25PROC MEANS DATA=one n mean var maxdec=2;
26 var y;
27RUN;
28ods html close;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.