copula copulaSimulate

Qualité Production - Copule Student & Marges Empiriques

Scénario de test & Cas d'usage

Contexte Métier

Un fabricant de semi-conducteurs analyse des défauts rares sur des capteurs. Il utilise une Copule de Student (t-copula) avec très peu de degrés de liberté (df=2) pour capturer les événements extrêmes, et souhaite projeter ces simulations sur les distributions réelles (empiriques) de ses capteurs existants, plutôt que sur des marges uniformes théoriques.
Préparation des Données

Création des données historiques (capteurs) et de leur corrélation.

Copié !
1DATA casuser.capteurs_data;
2 call streaminit(111);
3 DO i = 1 to 500;
4 Capteur_A = rand('WEIBULL', 1.5);
5 Capteur_B = rand('LOGNORMAL');
6 OUTPUT;
7 END;
8RUN;
9 
10DATA casuser.capteurs_corr;
11 _TYPE_ = 'CORR'; _NAME_ = 'Capteur_A'; Capteur_A=1.0; Capteur_B=0.75; OUTPUT;
12 _TYPE_ = 'CORR'; _NAME_ = 'Capteur_B'; Capteur_A=0.75; Capteur_B=1.0; OUTPUT;
13RUN;

Étapes de réalisation

1
Simulation complexe combinant Copule T (df=2), corrélation explicite et projection sur marges empiriques
Copié !
1PROC CAS;
2 copula.copulaSimulate /
3 define={copulaType='T', df=2, corrTable={name='capteurs_corr', caslib='casuser'}},
4 TABLE={name='capteurs_data', caslib='casuser'},
5 ndraws=2000,
6 seed=42,
7 outEmpirical={name='sim_defauts_emp', caslib='casuser', replace=true},
8 var={'Capteur_A', 'Capteur_B'};
9RUN; QUIT;

Résultat Attendu


La table 'sim_defauts_emp' contient 2000 observations. Les valeurs simulées ne sont PAS entre 0 et 1, mais suivent les distributions de valeurs observées dans la table 'capteurs_data' (Weibull/Lognormal) tout en respectant la dépendance de la copule Student définie.