regression

logisticLackfit

##set_regression

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 !

Syntaxe Officielle
proc cas;
regression.logisticLackfit /
table={name="nom_table"}
restore={name="nom_modele_sauvegarde"}
binEps=1E-05
cutpt={0.2, 0.4, 0.6, 0.8}
df=10
dfReduce=2
nGroups=10
noncentrality=0
powerAdj=TRUE | FALSE
display={names={"Table1"}}
outputTables={names={LackFit="Table1_Out"}};
run;
quit;

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 */
2DATA 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;
11RUN;
12/* Entraînement et sauvegarde du modèle logistique en format BLOB */
13PROC 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};
19RUN;
20QUIT;

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é.

1PROC CAS;
2 regression.logisticLackfit /
3 TABLE={name="patients"}
4 restore={name="modele_maladie"}
5 nGroups=10;
6RUN;
7QUIT;
Résultat Attendu :
Le serveur CAS va charger le modèle 'modele_maladie', l'appliquer sur la table 'patients', diviser les probabilités prédites en déciles (10 groupes), et calculer la statistique du Chi-carré de Hosmer-Lemeshow avec sa p-valeur associée.
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.

1PROC 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"}};
9RUN;
10QUIT;
Résultat Attendu :
Une table CAS nommée 'LackFit_Resultats' est créée en mémoire, contenant les statistiques détaillées (fréquences attendues vs observées, probabilités moyennes) pour les 15 groupes, avec une correction de puissance appliquée au calcul des degrés de liberté.