Publié le :
Statistique CREATION_INTERNE

Modélisation de données binomiales avec PROC HPGENSELECT

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script analyse des données sur des lingots (ingots) pour modéliser la probabilité qu'un lingot ne soit pas prêt pour le laminage, en fonction du temps de chauffage (Heat) et du temps de trempage (Soak). Il illustre deux approches : d'abord avec des données groupées (syntaxe r/n) et ensuite en transformant les données en format binaire (une ligne par observation individuelle) pour ajuster un modèle binaire équivalent.
Analyse des données

Type : CREATION_INTERNE


Les données sont créées directement dans le script via une instruction DATALINES dans une étape DATA. Il n'y a aucune dépendance à des fichiers externes ou à des tables SASHELP.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc crée la table 'Ingots' en lisant les données intégrées via 'datalines'. Les variables représentent le temps de chauffage (Heat), le temps de trempage (Soak), le nombre d'événements (r, lingots non prêts) et le nombre total d'essais (n). L'opérateur '@@' permet de lire plusieurs observations sur la même ligne de données. Une variable d'identifiant 'Obsnum' est ajoutée pour un usage ultérieur.
Copié !
1DATA Ingots;
2 INPUT Heat Soak r n @@;
3 Obsnum= _n_;
4 DATALINES;
57 1.0 0 10 14 1.0 0 31 27 1.0 1 56 51 1.0 3 13
67 1.7 0 17 14 1.7 0 43 27 1.7 4 44 51 1.7 0 1
77 2.2 0 7 14 2.2 2 33 27 2.2 0 21 51 2.2 0 1
87 2.8 0 12 14 2.8 0 31 27 2.8 1 22 51 4.0 0 1
97 4.0 0 9 14 4.0 0 19 27 4.0 1 16
10;
11 
2 Bloc de code
PROC HPGENSELECT
Explication :
Cette procédure ajuste un modèle de régression logistique. La syntaxe 'model r/n' spécifie que la variable de réponse est binomiale, où 'r' est le nombre d'événements et 'n' le nombre d'essais. Le modèle inclut les effets principaux de Heat et Soak, ainsi que leur interaction. La distribution est explicitement définie comme 'Binomial'. Les prédictions et les valeurs du score linéaire (xbeta) sont sauvegardées dans la table 'Out'.
Copié !
1PROC HPGENSELECT DATA=Ingots;
2 model r/n = Heat Soak Heat*Soak / dist=Binomial;
3 id Obsnum;
4 OUTPUT out=Out xbeta predicted=Pred;
5RUN;
3 Bloc de code
DATA STEP Data
Explication :
Ce bloc fusionne la table de sortie 'Out' (contenant les prédictions) avec la table originale 'Ingots' en utilisant l'identifiant 'Obsnum' pour s'assurer que les lignes correspondent correctement.
Copié !
1DATA Out;
2 MERGE Out Ingots;
3 BY Obsnum;
4 
4 Bloc de code
PROC PRINT
Explication :
Affiche les observations de la table fusionnée 'Out' pour une combinaison spécifique de 'Heat' et 'Soak', permettant de vérifier les résultats du modèle pour un cas particulier.
Copié !
1 
2PROC PRINT
3DATA=Out;
4where Heat=14 & Soak=1.7;
5RUN;
6 
5 Bloc de code
DATA STEP Data
Explication :
Ce DATA step transforme les données groupées (format événements/essais) en un format binaire individuel. Pour chaque ligne de la table 'Ingots', il génère 'n' nouvelles lignes. La variable 'Y' est définie à 1 pour les 'r' premiers cas (événements) et à 0 pour les autres, créant une ligne par lingot testé.
Copié !
1DATA Ingots_binary;
2 SET Ingots;
3 DO i=1 to n;
4 IF i <= r THEN Y=1; ELSE Y = 0;
5 OUTPUT;
6 END;
7RUN;
6 Bloc de code
PROC HPGENSELECT
Explication :
Cette procédure ajuste un modèle logistique équivalent au premier, mais en utilisant les données au format binaire. La variable de réponse est 'Y', et l'option 'event='1'' spécifie que Y=1 est l'événement d'intérêt. La distribution est définie comme 'Binary'. Les résultats de ce modèle devraient être cohérents avec ceux du premier modèle sur les données groupées.
Copié !
1 
2PROC HPGENSELECT
3DATA=Ingots_binary;
4model Y(event='1') = Heat Soak Heat*Soak / dist=Binary;
5RUN;
6 
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.
Informations de Copyright : S A S S A M P L E L I B R A R Y