Publié le :
Statistique CREATION_INTERNE

Analyse de régression logistique et scoring avec PROC PLM

En attente de validation
Le script commence par créer un jeu de données 'Neuralgia' via une étape DATA STEP avec des données en ligne (datalines). Il trie ensuite ces données par sexe. Une procédure LOGISTIC est exécutée pour modéliser la variable 'Pain' en fonction de 'Treatment', 'Age' et 'Duration', en utilisant une sélection descendante (backward) des variables. Le modèle est stocké dans l'item store 'painmodel'. Trois tables de scoring ('score1', 'score2', 'score3') sont créées. Enfin, PROC PLM restaure le modèle 'painmodel' et l'applique pour prédire les résultats sur ces trois tables, générant 'score1out', 'score2out', et 'score3out', qui sont ensuite affichés.
Analyse des données

Type : CREATION_INTERNE


Toutes les données sont créées au sein du script via des étapes DATA STEP et l'instruction DATALINES. Aucune lecture de source externe n'est effectuée.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc de code crée la table SAS 'Neuralgia' dans la librairie WORK. Les données sont lues directement depuis le code grâce à l'instruction 'datalines'. L'instruction 'input' définit les variables à lire pour chaque enregistrement.
Copié !
1DATA Neuralgia;
2 INPUT Treatment $ Sex $ Age Duration Pain $ @;
3 DATALINES;
4P F 68 1 No B M 74 16 No P F 67 30 No
5P M 66 26 Yes B F 67 28 No B F 77 16 No
6A F 71 12 No B F 72 50 No B F 76 9 Yes
7A M 71 17 Yes A F 63 27 No A F 69 18 Yes
8B F 66 12 No A M 62 42 No P F 64 1 Yes
9A F 64 17 No P M 74 4 No A F 72 25 No
10P M 70 1 Yes B M 66 19 No B M 59 29 No
11A F 64 30 No A M 70 28 No A M 69 1 No
12B F 78 1 No P M 83 1 Yes B F 69 42 No
13B M 75 30 Yes P M 77 29 Yes P F 79 20 Yes
14A M 70 12 No A F 69 12 No B F 65 14 No
15B M 70 1 No B M 67 23 No A M 76 25 Yes
16P M 78 12 Yes B M 77 1 Yes B F 69 24 No
17P M 66 4 Yes P F 65 29 No P M 60 26 Yes
18A M 78 15 Yes B M 75 21 Yes A F 67 11 No
19P F 72 27 No P F 70 13 Yes A M 75 6 Yes
20B F 65 7 No P F 68 27 Yes P M 68 11 Yes
21P M 67 17 Yes B M 70 22 No A M 65 15 No
22P F 67 1 Yes A M 67 10 No P F 72 11 Yes
23A F 74 1 No B M 80 21 Yes A F 69 3 No
24;
25/* Note: The file path in the original input statement was ignored as it is not valid SAS syntax and data is provided via 'datalines'. */
2 Bloc de code
PROC SORT
Explication :
Cette procédure trie la table 'Neuralgia' en fonction de la variable 'sex'. Ce tri est requis car la procédure 'PROC LOGISTIC' suivante utilise une instruction 'BY'.
Copié !
1PROC SORT DATA=Neuralgia;
2 BY sex;
3RUN;
3 Bloc de code
PROC LOGISTIC
Explication :
Ce bloc exécute une régression logistique sur la table 'Neuralgia'. Le modèle cherche à prédire la variable binaire 'pain'. L'instruction 'class' définit 'Treatment' comme une variable catégorielle. L'option 'selection=backward' demande à la procédure de retirer itérativement les variables non significatives du modèle. L'analyse est effectuée séparément pour chaque valeur de la variable 'sex' (grâce à l'instruction 'by'). Enfin, 'store painmodel' sauvegarde les informations du modèle ajusté dans un item store nommé 'painmodel' pour une utilisation ultérieure.
Copié !
1PROC LOGISTIC DATA=Neuralgia;
2 class Treatment / param=glm;
3 model pain = Treatment Age Duration / selection=backward;
4 BY sex;
5 store painmodel;
6 title 'Logistic Model on Neuralgia';
7RUN;
4 Bloc de code
DATA STEP Data
Explication :
Ces trois étapes DATA STEP créent les tables de données qui seront utilisées pour le scoring. 'score1' est créée avec de nouvelles données. 'score2' est une copie de 'score1' sans la variable 'sex'. 'score3' est une copie de 'score2' sans la variable 'Age'. Cela permet de tester le comportement du scoring avec des variables manquantes.
Copié !
1DATA score1;
2 INPUT Treatment $ Sex $ Age;
3 DATALINES;
4A F 20
5B F 30
6P F 40
7A M 20
8B M 30
9P M 40
10;
11 
12DATA score2;
13 SET score1(drop=sex);
14RUN;
15 
16DATA score3;
17 SET score2(drop=Age);
18RUN;
5 Bloc de code
PROC PLM Data
Explication :
La procédure PLM (Post-Fitting Linear Models) est utilisée ici pour le scoring. Elle commence par restaurer le modèle sauvegardé 'painmodel'. Ensuite, l'instruction 'score' applique ce modèle aux trois tables 'score1', 'score2' et 'score3' pour calculer les prédictions. Les résultats (incluant la probabilité prédite) sont stockés dans les tables de sortie respectives 'score1out', 'score2out' et 'score3out'.
Copié !
1PROC PLM restore=painmodel;
2 score DATA=score1 out=score1out predicted;
3 score DATA=score2 out=score2out predicted;
4 score DATA=score3 out=score3out predicted;
5RUN;
6 Bloc de code
PROC PRINT
Explication :
Ces trois procédures affichent simplement le contenu des trois tables de résultats ('score1out', 'score2out', 'score3out') générées par l'étape de scoring de PROC PLM.
Copié !
1PROC PRINT DATA=score1out;
2RUN;
3 
4PROC PRINT DATA=score2out;
5RUN;
6 
7PROC PRINT DATA=score3out;
8RUN;
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