causalDiscovery

dageval

##set_causaldiscovery

Description

Cette action évalue avec précision l'exactitude de l'apprentissage de la structure d'un graphe orienté acyclique ( https://documentation.sas.com/doc/fr/pgmsascdc/v_073/casactecon/cas-causaldiscovery-dageval.htm). Idéal pour savoir si vos algorithmes de découverte causale tiennent la route ou s'ils relèvent de la divination ! L'action compare une https://documentation.sas.com/doc/fr/pgmsascdc/v_073/casactecon/cas-causaldiscovery-dageval.htm#SAS.cas-causaldiscovery-dageval-table avec une https://documentation.sas.com/doc/fr/pgmsascdc/v_073/casactecon/cas-causaldiscovery-dageval.htm#SAS.cas-causaldiscovery-dageval-truetable pour calculer un ensemble complet de métriques d'erreur.

Syntaxe Officielle
proc cas;
causalDiscovery.dageval
alpha="variable-name",
display={displayTables},
id="variable-name",
out={casouttable},
outputTables={outputTables},
table={castable},
trueTable={castable},
vars={"variable-name-1", "..."};
run;

Paramètres Clés

Nom du paramètre Description
id (Requis) Identifie l'ordre des observations dans la table des DAGs estimés.
table (Requis) Spécifie la table d'entrée contenant la structure du DAG estimé (matrice d'adjacence).
trueTable (Requis) Nomme la table de données d'entrée fournissant la vraie matrice d'adjacence de référence.
vars (Requis) Spécifie une liste de variables d'entrée dans la table de données représentant les noeuds du graphe.
alpha Spécifie la variable qui fournit les niveaux de signification.
out Nomme la table de données de sortie pour stocker les métriques de précision calculées.
display Spécifie la liste des tables d'affichage que l'action doit créer et afficher.
outputTables Spécifie la liste des tables d'affichage à générer et sauvegarder en tant que tables CAS.

Préparation des données

Création des données de graphes (Vrai et Estimé)

Nous générons deux matrices d'adjacence pour un graphe à trois noeuds (A, B, C). La table 'trueDag' est la vérité terrain (A->B, B->C), et 'estDag' est une estimation imparfaite où le lien B->C a été manqué par l'algorithme.

1DATA mycas.trueDag; id=1; A=0; B=1; C=0; OUTPUT; id=2; A=0; B=0; C=1; OUTPUT; id=3; A=0; B=0; C=0; OUTPUT; RUN; DATA mycas.estDag; id=1; A=0; B=1; C=0; OUTPUT; id=2; A=0; B=0; C=0; OUTPUT; id=3; A=0; B=0; C=0; OUTPUT; RUN;

Exemples d'utilisation

Évaluation simple d'un graphe

Cette étape évalue l'estimation du graphe en comparant la table estimée avec la table contenant la vérité terrain.

1PROC CAS; causalDiscovery.dageval TABLE={name="estDag"} trueTable={name="trueDag"} id="id" vars={"A", "B", "C"}; RUN;
Résultat Attendu :
Affiche les métriques d'évaluation du graphe dans les résultats, telles que le nombre de vrais positifs, de faux positifs, et diverses autres mesures de pertinence causale pour quantifier l'erreur.
Évaluation complète avec sauvegarde des métriques

Une évaluation détaillée où nous stockons explicitement les métriques de performance calculées dans une table de sortie CAS (evalMetrics) pour pouvoir les exploiter, les tracer ou les comparer plus tard.

1PROC CAS; causalDiscovery.dageval TABLE={name="estDag"} trueTable={name="trueDag"} id="id" vars={"A", "B", "C"} out={name="evalMetrics", replace=TRUE}; RUN; PROC PRINT DATA=mycas.evalMetrics; RUN;
Résultat Attendu :
En plus de l'affichage standard de l'action, une table CAS nommée 'evalMetrics' est créée physiquement. La procédure d'impression affiche son contenu, montrant le détail ligne par ligne des scores calculés par l'action dageval.