logisticLackfit
Description
L'action `logisticLackfit` calcule le test de Hosmer et LemeshowTest d'adéquation mesurant si les fréquences observées s'écartent des fréquences prédites par un modèle logistique. Une p-value élevée indique que le modèle s'ajuste correctement aux données. pour évaluer la qualité d'ajustement (goodness-of-fit) 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.. En résumé, c'est l'inspecteur des travaux finis de 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). logistique : il vérifie avec rigueur si les probabilités prédites collent bien à la réalité des fréquences observées dans vos données, histoire de s'assurer que 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). ne raconte pas d'histoires !
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| table | Spécifie la table de données en entrée contenant les observations à évaluer pour le test de manque d'ajustement (requis). |
| restore | Restaure un modèle de régression préalablement sauvegardé sous forme d'objet binaire (BLOB) via une étape de modélisation antérieure. C'est le cerveau de l'opération (requis). |
| nGroups | Définit le nombre maximal de groupes (déciles, centiles, etc.) à créer pour réaliser le test de Hosmer et Lemeshow. Par défaut, cette valeur est de 10. |
| powerAdj | Si défini sur TRUE, ajuste le nombre de groupes pour maintenir la puissance statistique du test, très utile quand les données ont une structure complexe. |
| cutpt | Spécifie manuellement les points de coupure (cutpoints) personnalisés pour créer les partitions de Hosmer et Lemeshow au lieu de laisser l'algorithme les déterminer. |
| dfReduce | Spécifie la réduction des degrés de liberté pour le test de Hosmer et Lemeshow. Par défaut, la valeur est de 2. |
| outputTables | Permet de sauvegarder les tableaux de résultats générés sous forme de tables CAS directement sur le serveur pour une analyse ultérieure. |
Préparation des données
Génération de données et entraînement du modèle initial
Avant de pouvoir tester l'ajustement d'un modèle avec l'action `logisticLackfit`, nous devons d'abord simuler des données, puis utiliser l'action `regression.logistic` pour entraîner et sauvegarder (via l'instruction `store`) un modèle logistique binaire.
| 1 | /* Création de la table 'patients' dans CAS */ |
| 2 | DATA mycas.patients; |
| 3 | call streaminit(12345); |
| 4 | DO id = 1 to 1000; |
| 5 | age = 20 + int(rand('uniform') * 60); |
| 6 | bmi = 18 + (rand('uniform') * 15); |
| 7 | prob = 1 / (1 + exp(-(-5 + 0.05*age + 0.1*bmi))); |
| 8 | disease = (rand('uniform') < prob); |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | RUN; |
| 12 | /* Entraînement et sauvegarde du modèle logistique en format BLOB */ |
| 13 | PROC CAS; |
| 14 | regression.logistic / |
| 15 | TABLE={name="patients"} |
| 16 | class={"disease"} |
| 17 | model={depVar="disease", effects={"age", "bmi"}} |
| 18 | store={name="modele_maladie", replace=true}; |
| 19 | RUN; |
| 20 | QUIT; |
Exemples d'utilisation
Test de Hosmer-Lemeshow standard
Exécution de l'action `logisticLackfit` avec les paramètres par défaut (10 groupes) sur le modèle préalablement stocké.
| 1 | PROC CAS; |
| 2 | regression.logisticLackfit / |
| 3 | TABLE={name="patients"} |
| 4 | restore={name="modele_maladie"} |
| 5 | nGroups=10; |
| 6 | RUN; |
| 7 | QUIT; |
Résultat Attendu :
Test ajusté pour la puissance et sauvegarde des tables
Dans cet exemple plus avancé, nous demandons un ajustement de la puissance (`powerAdj=true`), un nombre différent de groupes (15), et nous sauvegardons les résultats détaillés de l'ajustement dans une table CAS pour pouvoir réaliser un graphique plus tard.
| 1 | PROC CAS; |
| 2 | regression.logisticLackfit / |
| 3 | TABLE={name="patients"} |
| 4 | restore={name="modele_maladie"} |
| 5 | nGroups=15 |
| 6 | powerAdj=true |
| 7 | dfReduce=2 |
| 8 | outputTables={names={LackFit="LackFit_Resultats"}}; |
| 9 | RUN; |
| 10 | QUIT; |