regression

logisticCode

##set_regression

Description

L'action logisticCode de l'ensemble d'actions %%regression permet de générer automatiquement du code SAS (étape DATA / DATA stepBloc de programmation SAS itératif utilisé pour lire, transformer et manipuler des données ligne par ligne afin de créer des tables de sortie personnalisées et calculer de nouvelles variables.) pour calculer les valeurs prédites à partir d'un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). de régression logistiqueModèle statistique prédisant la probabilité d'un événement binaire (0/1) via une fonction logistique. Il lie des variables explicatives à une variable cible catégorielle. préalablement ajusté. C'est un excellent moyen d'industrialiser vos prédictions : l'action écrit le code de scoringProcessus d'application d'un modèle prédictif à de nouvelles données pour calculer une probabilité ou un score, permettant ainsi d'automatiser la prise de décision en temps réel sur SAS Viya. à votre place ! Il vous suffit de fournir un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). ajusté via le paramètre obligatoire `restore`.

Syntaxe Officielle
proc cas;
regression.logisticCode /
casOut={caslib="string", compress=TRUE | FALSE, indexVars={"var1", "var2"}, name="table-name", replace=TRUE | FALSE}
comment=TRUE | FALSE
display={names={"string"}}
fmtWdth=integer
indentSize=integer
intoCutPt=double
iProb=TRUE | FALSE
labelId=integer
lineSize=integer
noTrim=TRUE | FALSE
outputTables={names={"string"}}
pCatAll=TRUE | FALSE
restore={caslib="string", name="table-name"} /* Paramètre requis */
tabForm=TRUE | FALSE;
quit;

Paramètres Clés

Nom du paramètre Description
restore Paramètre requis. Restaure le modèle de régression depuis un objet binaire (BLOB). C'est ici que vous indiquez la table CAS contenant votre modèle logistique ajusté.
casOut Spécifie les paramètres de la table de sortie où le code généré peut être stocké.
comment Si défini sur Vrai (True), ajoute des commentaires au code de l'étape DATA généré. Idéal pour comprendre la logique mathématique (et ne pas être perdu dans le code de la machine !).
fmtWdth Spécifie la largeur de formatage (de 0 à 32) à utiliser pour les nombres dérivés comme les estimations de paramètres. La valeur par défaut est 20.
indentSize Définit le nombre d'espaces pour indenter le code de l'étape DATA. Un code bien indenté est un code lisible ! (Valeur par défaut : 3).
intoCutPt Spécifie le point de coupure (cutoff) entre 0 et 1 pour la colonne d'affectation des classes (INTO). La valeur par défaut est 0.5.
iProb Si défini sur Vrai, génère le calcul des probabilités individuelles dans le code SAS.
labelId Spécifie l'ID de l'étiquette à utiliser dans les noms de tableaux (arrays) et de labels d'instructions. Par défaut, un entier positif aléatoire est utilisé.
lineSize Définit la longueur maximale de la ligne pour le code généré, allant de 64 à 254 caractères. (Défaut : 120).
noTrim Si activé (True), la comparaison des valeurs formatées se basera sur la largeur complète du format avec remplissage, au lieu de supprimer les espaces de début et de fin.
outputTables Liste les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.
pCatAll Lorsque ce paramètre est Vrai, le code génère les probabilités pour tous les niveaux de la variable cible (réponse).
tabForm Si défini sur Vrai, génère le code sous une forme appropriée pour être stocké directement dans une table CAS.

Préparation des données

Préparation d'un modèle pour l'action logisticCode

Avant de pouvoir générer le code de scoring, nous devons ajuster un modèle de régression logistique à l'aide de l'action `logistic` et sauvegarder ce modèle dans une table CAS (ici `myModel`).

1PROC CAS;
2 SESSION casauto;
3 /* Chargement de la table d'exemple SAS */
4 TABLE.loadTable / caslib="SystemData" path="iris.sashdat" casOut={name="iris", replace=True};
5 /* Ajustement du modele logistique et sauvegarde dans myModel */
6 regression.logistic /
7 TABLE={name="iris"}
8 class={"Species"}
9 model={depVar="Species", effects={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"}}
10 store={name="myModel", replace=True};
11QUIT;

Exemples d'utilisation

Génération de code DATA step simple

Cet exemple basique illustre comment utiliser l'action `logisticCode` pour lire le modèle sauvegardé dans la table `myModel` et générer le code SAS avec des commentaires activés.

1PROC CAS;
2 regression.logisticCode /
3 restore={name="myModel"}
4 comment=True
5 indentSize=4;
6QUIT;
Résultat Attendu :
L'action renvoie directement dans les logs (ou en tant que résultat) le code SAS de l'étape DATA généré. Les commentaires explicatifs y sont inclus pour faciliter la compréhension des équations logistiques employées.
Génération de code avancée et sauvegarde en table CAS

Dans ce scénario plus approfondi, nous modifions la largeur de formatage des nombres, ajustons le seuil de classification (`intoCutPt`) à 0.65, activons le calcul de probabilités pour toutes les modalités (`pCatAll`), et enregistrons le code généré directement dans une table CAS sous forme tabulaire (`tabForm`).

1PROC CAS;
2 regression.logisticCode /
3 restore={name="myModel"}
4 comment=True
5 fmtWdth=16
6 lineSize=100
7 intoCutPt=0.65
8 iProb=True
9 pCatAll=True
10 tabForm=True
11 casOut={name="logistic_score_code", replace=True};
12QUIT;
Résultat Attendu :
L'action produit un code d'évaluation complet qui calcule les probabilités de toutes les classes et applique un seuil de décision strict de 0.65. Les valeurs mathématiques sont formatées sur 16 caractères. Le résultat est stocké dans la table CAS `logistic_score_code`, prête à être exploitée par une action d'exécution de code DATA step.