regression

logisticAssociation

##set_regression

Description

L'action calcule les indices de corrélation de rang entre les probabilités prédites et les réponses observées. Elle est principalement utilisée pour évaluer la capacité prédictive et la justesse 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). analytique. Un outil parfait pour savoir si votre 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 Machine LearningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle. a vraiment du flair ou s'il devine les résultats en lançant des fléchettes les yeux fermés !

Syntaxe Officielle
proc cas;
regression.logisticAssociation /
table={name="nom_table", caslib="casuser"}
restore={name="nom_modele_astore"}
ctable=true
allStats=true
casOut={name="table_sortie", replace=true};
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table de données d'entrée contenant les données à évaluer. Ce paramètre est requis.
restore Spécifie le modèle analytique (au format ) à restaurer pour calculer les statistiques d'association. Ce paramètre est requis.
accuracy Inclut et nomme la précision (accuracy) dans la table de classification.
allStats Si défini sur True, demande toutes les statistiques disponibles (parfait pour ceux qui aiment tout analyser).
association Si défini sur True, génère la table d'association (activé par défaut).
binEps Spécifie la tolérance de précision des probabilités prédites utilisées pour le binning de la classification (par défaut 1E-05).
casOut Spécifie les paramètres de la table de sortie en mémoire CAS qui contiendra les résultats générés.
ctable Si défini sur True, crée la table de classification détaillant les faux positifs, faux négatifs, etc.
cutpt Spécifie un point de coupure unique ou un tableau de seuils de probabilité (ex: {0.3, 0.5}) pour l'analyse de classification.
display Spécifie une liste de tables de résultats spécifiques à renvoyer au client pour l'affichage.
fitData Indique si les données à évaluer sont les mêmes que celles qui ont été utilisées pour l'entraînement (ajustement) du modèle.
fnf Inclut et nomme la fraction de faux négatifs dans la table de classification.
fpf Inclut et nomme la fraction de faux positifs (1-spécificité) dans la table de classification.
lift Inclut et nomme l'indicateur de lift (levier) dans la table de classification.
misclass Inclut et nomme le taux global d'erreurs de classification.
nocounts Si défini sur True, masque les comptages bruts dans la table de classification.
npv Inclut et nomme la valeur prédictive négative dans la table de classification.
outputTables Liste les noms de tables de résultats à sauvegarder physiquement en tant que tables CAS.
pc Inclut et nomme le pourcentage de prédictions correctes dans la table de classification.
ppv Inclut et nomme la valeur prédictive positive (ou précision) dans la table de classification.
tnf Inclut et nomme la fraction de vrais négatifs (taux de spécificité).
tpf Inclut et nomme la fraction de vrais positifs (taux de sensibilité ou rappel).

Préparation des données

Création de données de test et ajustement d'un modèle initial

Pour utiliser %%logisticAssociation%%, il nous faut un modèle et des données. Nous allons simuler une cohorte de patients, ajuster un modèle de régression logistique binaire, et sauvegarder le modèle dans une table astore.

1DATA casuser.patients;
2 call streaminit(12345);
3 DO i=1 to 1000;
4 age = round(rand('uniform') * 60 + 20);
5 fumeur = rand('bernoulli', 0.3);
6 p = logistic(-4 + 0.05*age + 1.2*fumeur);
7 malade = rand('bernoulli', p);
8 OUTPUT;
9 END;
10RUN;
11PROC CAS;
12 regression.logistic /
13 TABLE={name="patients", caslib="casuser"}
14 class={"fumeur"}
15 model={depVars={"malade"}, effects={"age", "fumeur"}}
16 store={name="modele_maladie", replace=true};
17QUIT;

Exemples d'utilisation

Évaluation simple de l'association d'un modèle

Utilise l'action %%logisticAssociation%% pour calculer les indicateurs de concordance globaux (D de Somers, Gamma, Tau-a, c) en restaurant le modèle préalablement entraîné.

1PROC CAS;
2 regression.logisticAssociation /
3 TABLE={name="patients", caslib="casuser"}
4 restore={name="modele_maladie"};
5QUIT;
Résultat Attendu :
Génère un tableau 'Association' décrivant les paires concordantes, discordantes et ex-aequo, ainsi que les principaux indices de corrélation (D de Somers, C-stat).
Analyse complète avec table de classification (Courbe ROC/Lift) personnalisée

Restaure le modèle, évalue les données sur plusieurs points de coupure de probabilités stricts via %%cutpt%%, active toutes les métriques de test (%%allStats%%) et exporte la table de classification dans une table en mémoire CAS via %%casOut%%.

1PROC CAS;
2 regression.logisticAssociation /
3 TABLE={name="patients", caslib="casuser"}
4 restore={name="modele_maladie"}
5 ctable=true
6 cutpt={0.1, 0.25, 0.5, 0.75}
7 allStats=true
8 casOut={name="classif_details", caslib="casuser", replace=true};
9 TABLE.fetch / TABLE={name="classif_details", caslib="casuser"};
10QUIT;
Résultat Attendu :
Renvoie les statistiques complètes d'évaluation du modèle pour les seuils spécifiques 0.1, 0.25, 0.5 et 0.75, et sauvegarde la sortie brute dans la table 'classif_details' (que l'on affiche ensuite via table.fetch).