logisticAssociation
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 !
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.
| 1 | DATA 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; |
| 10 | RUN; |
| 11 | PROC 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}; |
| 17 | QUIT; |
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é.
| 1 | PROC CAS; |
| 2 | regression.logisticAssociation / |
| 3 | TABLE={name="patients", caslib="casuser"} |
| 4 | restore={name="modele_maladie"}; |
| 5 | QUIT; |
Résultat Attendu :
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%%.
| 1 | PROC 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"}; |
| 10 | QUIT; |