L'utilisation combinée des procédures PROC PROBIT et PROC PLM illustre une méthodologie rigoureuse pour la modélisation des choix binaires, comme ici la souscription. Contrairement à une régression linéaire standard, le modèle Probit (ou Logit, selon la distribution choisie) garantit que les probabilités prédites restent confinées dans l'intervalle $[0, 1]$. L'expertise technique réside ici dans l'usage de l'option d=logistic, qui permet d'ajuster une régression logistique au sein de la procédure PROBIT, et l'instruction STORE, qui encapsule l'intelligence du modèle (coefficients, variables de classe et formats) dans un objet binaire persistant.L'intérêt majeur de ce flux est la séparation entre la phase d'apprentissage et la phase de scoring. En restaurant le modèle via la PROC PLM, on s'affranchit de la nécessité de réexécuter les calculs itératifs de maximum de vraisemblance (affichés ici par itprint) pour chaque nouvelle prédiction. L'option ilink (Inverse Link function) dans l'instruction score est cruciale : elle permet de transformer le score linéaire théorique en une probabilité de souscription concrète et interprétable pour les métiers, ici pour le profil d'une femme de 35 ans.Une recommandation d'expert : lors de l'analyse des résultats, portez une attention particulière au test du khi-deux de Pearson pour évaluer l'adéquation globale du modèle (Goodness-of-Fit). Si la valeur $p$ est trop faible, cela pourrait indiquer que des interactions entre l'âge et le sexe, ou des termes non-linéaires, manquent à votre équation pour capturer toute la complexité du comportement de souscription.
Le script commence par la création d'un jeu de données 'news' contenant des informations sur le sexe, l'âge et le statut de souscription. Un format est défini pour la variable de souscription. La procédure PROC PROBIT est utilisée pour construire un modèle de régression Probit avec une fonction de lien logistique, modélisant la variable 'subs' (avec 'accept' comme événement) en fonction des variables 'sex' et 'age'. Le modèle résultant est sauvegardé. Ensuite, un nouveau jeu de données 'test' est créé avec une observation unique. La procédure PROC PLM restaure le modèle sauvegardé et l'applique au jeu de données 'test' pour prédire la probabilité de souscription. Enfin, les résultats des prédictions sont affichés avec PROC PRINT.
Analyse des données
Type : CREATION_INTERNE
Les jeux de données 'news' et 'test' sont tous deux créés directement dans le script à l'aide de blocs DATALINES.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc DATA STEP crée le jeu de données 'news' à partir de données brutes fournies via DATALINES. Il contient trois variables : 'sex' (caractère), 'age' (numérique) et 'subs' (numérique, représentant le statut de souscription).
Copié !
data news;
input sex $ age subs;
datalines;
Female 35 0 Male 44 0
Male 45 1 Female 47 1
Female 51 0 Female 47 0
Male 54 1 Male 47 1
Female 35 0 Female 34 0
Female 48 0 Female 56 1
Male 46 1 Female 59 1
Female 46 1 Male 59 1
Male 38 1 Female 39 0
Male 49 1 Male 42 1
Male 50 1 Female 45 0
Female 47 0 Female 30 1
Female 39 0 Female 51 0
Female 45 0 Female 43 1
Male 39 1 Male 31 0
Female 39 0 Male 34 0
Female 52 1 Female 46 0
Male 58 1 Female 50 1
Female 32 0 Female 52 1
Female 35 0 Female 51 0
;
1
DATA news;
2
INPUT sex $ age subs;
3
DATALINES;
4
Female 35 0 Male 44 0
5
Male 451 Female 471
6
Female 51 0 Female 47 0
7
Male 541 Male 471
8
Female 35 0 Female 34 0
9
Female 48 0 Female 561
10
Male 461 Female 591
11
Female 461 Male 591
12
Male 381 Female 39 0
13
Male 491 Male 421
14
Male 501 Female 45 0
15
Female 47 0 Female 301
16
Female 39 0 Female 51 0
17
Female 45 0 Female 431
18
Male 391 Male 31 0
19
Female 39 0 Male 34 0
20
Female 521 Female 46 0
21
Male 581 Female 501
22
Female 32 0 Female 521
23
Female 35 0 Female 51 0
24
;
25
2 Bloc de code
PROC FORMAT
Explication : Cette procédure PROC FORMAT définit un format personnalisé nommé 'subscrib'. Ce format est utilisé pour associer les valeurs numériques 1 et 0 aux chaînes de caractères 'accept' et 'reject' respectivement, améliorant la lisibilité des sorties.
Explication : La procédure PROC PROBIT est utilisée pour ajuster un modèle de régression Probit au jeu de données 'news'. La variable 'sex' est déclarée comme variable de classification. L'instruction MODEL spécifie 'subs' comme variable de réponse (avec 'accept' comme événement d'intérêt) et 'sex' et 'age' comme prédicteurs. L'option 'd=logistic' spécifie une fonction de lien logistique. 'itprint' affiche les détails de l'itération. Le format 'subscrib' est appliqué à la variable 'subs' pour la sortie. Le modèle ajusté est sauvegardé dans le catalogue 'LogitModel' pour une utilisation ultérieure.
Copié !
proc probit data=news;
class sex;
model subs(event="accept")=sex age / d=logistic itprint;
format subs subscrib.;
store out=LogitModel;
run;
1
PROC PROBITDATA=news;
2
class sex;
3
model subs(event="accept")=sex age / d=logistic itprint;
4
FORMAT subs subscrib.;
5
store out=LogitModel;
6
RUN;
7
4 Bloc de code
DATA STEP Data
Explication : Ce bloc DATA STEP crée un petit jeu de données 'test' à partir de DATALINES. Il contient une seule observation avec les variables 'sex' (caractère) et 'age' (numérique), destinée à être utilisée pour des prédictions basées sur le modèle Probit ajusté.
Copié !
data test;
input sex $ age;
datalines;
Female 35
;
1
DATA test;
2
INPUT sex $ age;
3
DATALINES;
4
Female 35
5
;
6
5 Bloc de code
PROC PLM Data
Explication : La procédure PROC PLM (Post-processing of Linear Models) est utilisée ici pour restaurer le modèle 'LogitModel' précédemment sauvegardé. L'instruction SCORE applique ce modèle au jeu de données 'test' pour générer des prédictions. Les prédictions sont stockées dans le nouveau jeu de données 'testout', incluant la variable 'predicted'. L'option 'ilink' transforme les prédictions de la fonction de lien (logit) en probabilités sur l'échelle originale.
Explication : Cette procédure PROC PRINT affiche le contenu du jeu de données 'testout', qui contient les prédictions générées par PROC PLM pour l'observation dans le jeu de données 'test'.
Copié !
proc print data=testout;
run;
1
PROC PRINTDATA=testout;
2
RUN;
3
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
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.