regression

modelMatrix

##set_regression

Description

L'action regression.modelMatrix crée une table sur le serveur CASMoteur analytique "in-memory" de SAS Viya. Il traite les données en parallèle (MPP) sur plusieurs nœuds pour offrir une puissance de calcul massive et une exécution ultra-rapide des actions. contenant la matrice de plan (design matrix) associée à une spécification de 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). donnée. C'est l'outil parfait pour transformer 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. brutes avant de les injecter 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). complexe, un peu comme tailler ses légumes avant de cuisiner une recette étoilée ! Vous pouvez consulter la documentation officielle ici : .

Syntaxe Officielle
proc cas;
regression.modelMatrix <result=results> <status=rc> /
table={name="nom_table", caslib="nom_caslib"}
class={"var1", "var2"}
model={depVars={{name="var_cible"}}, effects={{vars={"var_expli1", "var_expli2"}}}}
output={casOut={name="matrice_sortie", caslib="casuser", replace=True}, copyVars={"var_id"}}
;
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant les données à analyser.
model Définit la variable dépendante (cible), les effets explicatifs et les options du modèle (interactions, suppression de l'intercept, etc.).
class Liste des variables de classification (catégorielles) à utiliser comme variables explicatives.
output Définit les paramètres de la table de sortie contenant la matrice de plan générée (via casOut) et les variables de la table source à conserver (via copyVars).
inputs Spécifie les variables continues à utiliser pour l'analyse (alternative à la spécification dans model.effects).

Préparation des données

Création de données simulées pour l'action modelMatrix

Créons une petite table de données d'achat avec des variables catégorielles et continues pour voir notre matrice prendre vie.

1DATA casuser.achats;
2 INPUT id age genre $ montant;
3 DATALINES;
41 25 M 150.5
52 34 F 200.0
63 45 M 50.0
74 22 F 310.2
85 54 M 120.0
9;
10RUN;

Exemples d'utilisation

Génération basique d'une matrice de plan

Cet exemple montre comment transformer nos variables explicatives en une matrice de plan complète, en gérant automatiquement la variable catégorielle 'genre' en indicatrices (dummy variables).

1PROC CAS;
2 regression.modelMatrix /
3 TABLE={name="achats", caslib="casuser"}
4 class={"genre"}
5 model={depVars={{name="montant"}}, effects={{vars={"age", "genre"}}}}
6 OUTPUT={casOut={name="matrice_design", caslib="casuser", replace=true}, copyVars={"id"}};
7RUN;
8QUIT;
Résultat Attendu :
L'action génère une nouvelle table 'matrice_design' dans la librairie 'casuser'. Cette table contiendra l'identifiant 'id', l'ordonnée à l'origine (Intercept), la variable 'age' et les variables indicatrices créées pour la variable catégorielle 'genre'.
Génération avec effets d'interaction et exclusion de l'ordonnée à l'origine

On va plus loin ! Ici, on inclut une interaction entre 'age' et 'genre' (grâce à l'option interaction="CROSS") et on s'assure que le modèle n'inclut pas l'ordonnée à l'origine avec 'noint=true'.

1PROC CAS;
2 regression.modelMatrix /
3 TABLE={name="achats", caslib="casuser"}
4 class={"genre"}
5 model={depVars={{name="montant"}}, effects={{vars={"age"}}, {vars={"genre"}}, {vars={"age", "genre"}, interaction="CROSS"}}, noint=true}
6 OUTPUT={casOut={name="matrice_interact", caslib="casuser", replace=true}, copyVars="ALL"};
7RUN;
8QUIT;
Résultat Attendu :
La table de sortie 'matrice_interact' contiendra toutes les colonnes de la table d'origine ('ALL' spécifié dans copyVars), plus les colonnes générées pour 'age', les niveaux de 'genre' et les termes d'interaction croisée entre 'age' et 'genre'. La colonne Intercept sera absente.