Veröffentlicht am :
Statistik CREATION_INTERNE

Simulation von Poisson- und Negativ-Binomial-Hurdle-Modellen

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Programm generiert zwei synthetische Datensätze mit jeweils 8000 Beobachtungen, um Hurdle-Modelle zu illustrieren. Der erste Datensatz simuliert eine auf Null gekürzte Poisson-Verteilung mit einer expliziten Wahrscheinlichkeit von Null (Pi_1). Der zweite simuliert eine Negativ-Binomial-Verteilung mit einer ähnlichen Struktur. Das Skript berechnet für jede Beobachtung die erwarteten theoretischen Mittelwerte und Varianzen und verwendet dann PROC MEANS, um diese theoretischen Werte mit den empirischen Statistiken der generierten Daten zu vergleichen.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden vollständig algorithmisch in DATA-Schritten generiert (Verwendung von Zufallsfunktionen uniform, ranpoi, rangam).

1 Codeblock
ODS
Erklärung :
Initialisierung der Ausgabe im HTML-Format.
Kopiert!
1ods html;
2 Codeblock
DATA STEP Data
Erklärung :
Generierung des Datensatzes 'Poisson_Hurdle_Data'. Simuliert einen Prozess, bei dem eine Beobachtung entweder 0 ist (mit Wahrscheinlichkeit p1) oder aus einer abgeschnittenen Poisson-Verteilung gezogen wird (Ablehnungsmethode), wenn die Hürde überschritten wird.
Kopiert!
1DATA Poisson_Hurdle_Data;
2 n = 8000;
3 p1 = 0.4;
4 mu = 10;
5 seed = 1979;
6 
7 *--- Underlying True Mean and Variance;
8 p2 = exp(-mu);
9 p1c = 1 - p1;
10 p2c = 1 - p2;
11 Phi = p1c / p2c;
12 Mean = Phi*mu;
13 Var = Phi*mu*(mu+1)- Mean*Mean;
14 
15 DO j=1 to n;
16 u = uniform(seed);
17 IF u <= p1 THEN DO;
18 Y = 0;
19 OUTPUT;
20 END;
21 ELSE DO; *--- Crossing the hurdle;
22 *--- Get Truncated Poisson using Rejection Method;
23 DO until (y>0);
24 y = ranpoi(seed,mu);
25 END;
26 OUTPUT;
27 END;
28 END;
29 RUN;
3 Codeblock
PROC PRINT
Erklärung :
Anzeige der theoretischen Parameter (Mittelwert und Varianz), die während der Simulation zur Überprüfung berechnet wurden.
Kopiert!
1title2 "Underlying True Mean and Variance";
2 PROC PRINT DATA=Poisson_Hurdle_Data noobs;
3 where j=1;
4 var Mean Var;
5 FORMAT _all_ 8.4;
6 RUN;
4 Codeblock
PROC MEANS
Erklärung :
Berechnung der tatsächlichen deskriptiven Statistiken der simulierten Daten zur Validierung des Modells.
Kopiert!
1title2 "Estimated Mean and Variance";
2 PROC MEANS DATA=Poisson_Hurdle_Data n mean var maxdec=4;
3 var y;
4 RUN;
5 Codeblock
DATA STEP Data
Erklärung :
Generierung des Datensatzes 'NB_Hurdle_Data'. Simuliert ein Negativ-Binomial-Modell mit Hürde. Verwendet eine Kombination aus Gamma- und Poisson-Verteilung zur Generierung der Negativ-Binomial-Verteilung.
Kopiert!
1DATA NB_Hurdle_Data;
2 n = 8000;
3 p1 = 0.4;
4 mu = 10;
5 Kappa = 0.1;
6 alpha = 1 / kappa;
7 beta = kappa * mu;
8 seed = 1983;
9 
10 *--- Underlying True Mean and Variance;
11 p2 = (1/(1+kappa*mu))**(alpha);
12 p1c = 1 - p1;
13 p2c = 1 - p2;
14 Phi = p1c / p2c;
15 Mean = Phi*mu;
16 Var = Phi*mu*(1+mu+kappa*mu)- Mean*Mean;
17 
18 DO j=1 to n;
19 u = uniform(seed);
20 IF u <= p1 THEN DO;
21 Y = 0;
22 OUTPUT;
23 END;
24 ELSE DO; *--- Crossing the hurdle;
25 *--- Get Truncated Neg-bin using Rejection Method;
26 DO until (y>0);
27 uu = beta * rangam( seed, alpha );
28 y = ranpoi( seed, uu );
29 END;
30 OUTPUT;
31 END;
32 END;
33 drop alpha beta kappa;
34 RUN;
6 Codeblock
PROC PRINT
Erklärung :
Anzeige der theoretischen Parameter für das Negativ-Binomial-Modell.
Kopiert!
1title2 "Underlying True Mean and Variance";
2 PROC PRINT DATA=NB_Hurdle_Data noobs;
3 where j = 1;
4 var Mean Var;
5 FORMAT _all_ 8.4;
6 RUN;
7 Codeblock
PROC MEANS
Erklärung :
Berechnung der tatsächlichen deskriptiven Statistiken der simulierten Negativ-Binomial-Daten.
Kopiert!
1title2 "Estimated Mean and Variance";
2 PROC MEANS DATA=NB_Hurdle_Data n mean var maxdec=4;
3 var y;
4 RUN;
8 Codeblock
ODS
Erklärung :
Schließen des HTML-Ziels.
Kopiert!
1ods 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.