Publié le :
Statistique CREATION_INTERNE

Simulation de Modèles Hurdle Poisson et Négative-Binomiale

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce programme génère deux jeux de données synthétiques de 8000 observations chacun pour illustrer des modèles à barrière (Hurdle). Le premier jeu simule une loi de Poisson tronquée à zéro avec une probabilité explicite de zéro (Pi_1). Le second simule une loi Négative-Binomiale avec une structure similaire. Le script calcule pour chaque observation les moyennes et variances théoriques attendues, puis utilise PROC MEANS pour comparer ces valeurs théoriques aux statistiques empiriques des données générées.
Analyse des données

Type : CREATION_INTERNE


Les données sont entièrement générées algorithmiquement dans des étapes DATA (utilisation de fonctions aléatoires uniform, ranpoi, rangam).

1 Bloc de code
ODS
Explication :
Initialisation de la sortie au format HTML.
Copié !
1ods html;
2 Bloc de code
DATA STEP Data
Explication :
Génération du jeu de données 'Poisson_Hurdle_Data'. Simule un processus où une observation est soit 0 (avec probabilité p1), soit tirée d'une loi de Poisson tronquée (méthode de rejet) si la barrière est franchie.
Copié !
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 Bloc de code
PROC PRINT
Explication :
Affichage des paramètres théoriques (Moyenne et Variance) calculés lors de la simulation pour vérification.
Copié !
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 Bloc de code
PROC MEANS
Explication :
Calcul des statistiques descriptives réelles sur les données simulées pour valider le modèle.
Copié !
1title2 "Estimated Mean and Variance";
2 PROC MEANS DATA=Poisson_Hurdle_Data n mean var maxdec=4;
3 var y;
4 RUN;
5 Bloc de code
DATA STEP Data
Explication :
Génération du jeu de données 'NB_Hurdle_Data'. Simule un modèle Négatif-Binomial avec barrière. Utilise une combinaison de loi Gamma et Poisson pour générer la Négative-Binomiale.
Copié !
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 Bloc de code
PROC PRINT
Explication :
Affichage des paramètres théoriques pour le modèle Négatif-Binomial.
Copié !
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 Bloc de code
PROC MEANS
Explication :
Calcul des statistiques descriptives réelles sur les données Négatives-Binomiales simulées.
Copié !
1title2 "Estimated Mean and Variance";
2 PROC MEANS DATA=NB_Hurdle_Data n mean var maxdec=4;
3 var y;
4 RUN;
8 Bloc de code
ODS
Explication :
Fermeture de la destination HTML.
Copié !
1ods 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.