Veröffentlicht am :

Verkaufsbericht und Negative Binomialsimulation

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Der Code besteht aus zwei unterschiedlichen Teilen. Der erste generiert einen Finanzbericht aus der Tabelle 'sashelp.orsales', der Gewinne pro Jahr und Produktlinie mit Prozentwerten berechnet. Der zweite Teil simuliert einen Datensatz von 2000 Beobachtungen, die einer negativen Binomialverteilung folgen, und verwendet dann PROC GLIMMIX, um die Parameter zu schätzen und die Simulation anhand theoretischer Werte zu validieren.
Datenanalyse

Type : MIXTE


Verwendet SASHELP.ORSALES für die Berichterstattung. Generiert interne Daten (Tabelle 'one') mittels Zufallsfunktionen (rangam, ranpoi) für den statistischen Teil.

1 Codeblock
PROC FORMAT
Erklärung :
Definition eines Benutzerformats zur Anzeige von Produktlinienbezeichnungen.
Kopiert!
1PROC FORMAT;
2 value $sequip
3 'Sports' = 'Sports Equipment';
4 RUN;
2 Codeblock
PROC REPORT
Erklärung :
Erstellung eines Übersichtsberichts mit Prozentberechnungen über einen COMPUTE-Block. Hinweis: Die Zeile 'line @code_sas/...' enthält eine Dateireferenz, die einen Syntaxfehler verursachen könnte, wenn sie nicht auskommentiert oder korrigiert wird.
Kopiert!
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 Appendix_A Generating_Negative_Binomial_Data.sas 'Profits in US dollars';
28 endcomp;
29 RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Datensimulation: Erstellung einer Tabelle 'one' mit Zufallsvariablen, die einer negativen Binomialverteilung folgen.
Kopiert!
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 Codeblock
PROC GLIMMIX
Erklärung :
Statistische Modellierung: Schätzung der Verteilungsparameter auf den simulierten Daten, um die Konsistenz mit den Eingabeparametern zu überprüfen.
Kopiert!
1ods select none;
2ods OUTPUT ParameterEstimates=parms;
3PROC GLIMMIX DATA=one;
4 model y = / dist=negbin link=identity s;
5RUN;
6ods select all;
5 Codeblock
PROC PRINT / PROC MEANS
Erklärung :
Validierung der Ergebnisse: Vergleichende Anzeige der theoretischen Parameter (Mu, Kappa) und der beobachteten Statistiken auf den generierten Daten.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.