regression

logisticOddsRatio

##set_regression

Description

L'action logisticOddsRatio permet de générer une table qui compare différentes sous-populations en utilisant des odds ratios (rapports de cotesIndicateur (Odds Ratio) mesurant l'effet d'une variable : c'est le rapport entre la cote d'un événement pour deux groupes. Un ratio > 1 indique une probabilité accrue de l'événement.). Idéal pour interpréter l'impact de vos variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. dans 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). logistique sans attraper mal à la tête ! Notez que cette action s'utilise sur 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). préalablement ajusté et sauvegardé via un analytic storeFormat binaire (ASTORE) sauvegardant l'état d'un modèle de Machine Learning entraîné dans SAS Viya pour permettre son déploiement et son exécution rapide sur de nouvelles données. (BLOB). Pour tout savoir, consultez la documentation officielle .

Syntaxe Officielle
proc cas;
regression.logisticOddsRatio /
alpha=double,
at={{level="ALL" | "REF" | "string" | {"string-1", ...}, value=double | {double-1, ...}, var="variable-name"}, ...},
diff="ALL" | "REF",
display={caseSensitive=true|false, exclude=true|false, excludeAll=true|false, keyIsPath=true|false, names={"string-1", ...}, pathType="LABEL" | "NAME", traceNames=true|false},
outputTables={groupByVarsRaw=true|false, includeAll=true|false, names={"string-1", ...} | {key-1={casouttable-1}, ...}, repeated=true|false, replace=true|false},
restore="table-name" | {caslib="string", dataSourceOptions={...}, importOptions={...}, name="table-name", whereTable={...}},
unit={{stderr=true|false, value=double | {double-1, ...}, var="variable-name"}, ...},
vars={{at={{level=..., value=..., var=""}}, stderr=true|false, unit=double | {double-1, ...}, var={"variable-name-1", ...}}, ...}
;
run;
quit;

Paramètres Clés

Nom du paramètre Description
alpha Spécifie le niveau de signification pour les limites de confiance (0.05 par défaut, soit 95%).
at Modifie les valeurs ou niveaux fixes par défaut pour les covariables qui interagissent avec la variable de l'odds ratio. Un bon moyen de cibler une population spécifique.
diff Indique quelles paires de niveaux de réponse comparer. 'ALL' pour tout comparer, ou 'REF' pour comparer par rapport à la référence.
display Spécifie une liste de tables de résultats à envoyer au client pour l'affichage.
outputTables Liste les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.
restore Restaure les modèles de régression à partir d'un objet binaire volumineux (BLOB). C'est ici que vous indiquez la table contenant votre modèle logistique préalablement entraîné.
unit Change les unités de variation par défaut pour les variables d'odds ratio continues (ex: voir l'effet par tranche de 10 ans d'âge).
vars Spécifie précisément la ou les variables pour lesquelles les odds ratios doivent être calculés.

Préparation des données

Création des données et entraînement du modèle initial

Avant de pouvoir utiliser `logisticOddsRatio`, nous avons besoin d'un modèle sauvegardé. Générons quelques données médicales fictives et entraînons un modèle logistique.

1PROC CAS;
2 /* 1. Création d'une table de données fictives */
3 datastep.runCode /
4 code="data casuser.patients;
5 call streaminit(12345);
6 do id = 1 to 1000;
7 age = 20 + 60*rand('uniform');
8 sexe = ifc(rand('uniform')>0.5, 'M', 'F');
9 traitement = ifc(rand('uniform')>0.5, 'A', 'B');
10 prob = 0.1 + 0.1*(sexe='M') + 0.01*age - 0.15*(traitement='A');
11 malade = (rand('uniform') < prob);
12 output;
13 end;
14 run;";
15 /* 2. Entraînement et sauvegarde du modèle avec l'action logistic */
16 regression.logistic /
17 TABLE={name="patients", caslib="casuser"},
18 class={"sexe", "traitement"},
19 model={depVar="malade", effects={"age", "sexe", "traitement"}},
20 store={name="modele_log", caslib="casuser", replace=true};
21RUN;
22QUIT;

Exemples d'utilisation

Calcul simple d'Odds Ratios

Restauration du modèle et calcul des rapports de cotes pour la variable traitement.

1PROC CAS;
2 regression.logisticOddsRatio /
3 restore={name="modele_log", caslib="casuser"},
4 vars={{var={"traitement"}}},
5 diff="REF";
6RUN;
7QUIT;
Résultat Attendu :
Une table affichant l'Odds Ratio du traitement (A vs B) avec ses intervalles de confiance à 95%.
Odds Ratios avancés avec unités spécifiques et sauvegarde

Analyse plus poussée avec un intervalle de confiance à 99% (`alpha=0.01`), une unité de +10 pour la variable continue `age`, et sauvegarde du résultat dans une table CAS.

1PROC CAS;
2 regression.logisticOddsRatio /
3 restore={name="modele_log", caslib="casuser"},
4 alpha=0.01,
5 diff="ALL",
6 unit={{var="age", value=10}},
7 vars={{var={"traitement", "sexe", "age"}}},
8 outputTables={names={OddsRatios="Table_OR_Resultats"}, replace=true};
9RUN;
10QUIT;
Résultat Attendu :
Génération et sauvegarde d'une table CAS 'Table_OR_Resultats' contenant les OR pour le traitement, le sexe, et l'âge (calculé pour une différence de 10 unités), avec des intervalles de confiance à 99%.