dynBnet
Description
Calcule l'évolution des croyances dans les 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. cachées au fil du temps à l'aide des réseaux bayésiens dynamiques (). Idéal pour le suivi et la prédiction dans des systèmes complexes en évolution !
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| cliques | Spécifie la table des facteurs et des cliques qui forment l'arbre de cliques obtenu en traitant le réseau bayésien. |
| initialBeliefs | Spécifie la table des croyances entrantes dans les variables cachées provenant de l'exécution précédente du filtre. |
| inputState | Spécifie la table de l'état d'entrée pour la reprise ou l'initialisation du modèle. |
| linearApproximationType | Spécifie la technique utilisée pour générer une approximation linéaire des relations non linéaires (EXTENDED ou UNSCENTED). |
| links | Spécifie la table des relations parent-enfant (liens) entre les variables dans un réseau à deux périodes. |
| odeApproximationType | Spécifie le type d'approximation d'équation différentielle ordinaire (ODE) à utiliser (ALL, GRADIENT, ou NONE). |
| output | Spécifie la table contenant les croyances sortantes des variables cachées pour les niveaux les plus probables. |
| outputCliques | Spécifie la table contenant les cliques dans l'arbre de cliques obtenu en traitant le réseau bayésien. |
| outputDetails | Spécifie la table de sortie détaillée contenant les croyances sortantes des variables cachées spécifiques aux branches (valeurs) des variables nominales. |
| outputState | Spécifie la table qui enregistre les informations de l'état actuel. |
| syncThreshold | Spécifie le seuil de synchronisation utilisé pour comparer la distance euclidienne entre les probabilités (par défaut 0.005). |
| table | Spécifie la table d'entrée principale qui contient les observations temporelles. |
| variableLevels | Spécifie la table des niveaux valides pour les variables nominales du réseau. |
| variableOdes | Spécifie la table des variables par systèmes d'équations différentielles ordinaires (ODE). |
| variableRoles | Spécifie la table des variables et de leurs propriétés (rôles) telles que TIMEID, CONTROL, HIDDEN, ou OBSERVED. |
| variableSyncParms | Spécifie la table des paramètres utilisés pour la synchronisation des croyances des variables d'intervalle cachées. |
Préparation des données
Chargement des données d'exemple
Chargement en mémoire des tables nécessaires à l'exécution de l'action dynBnet (observations, liens et rôles des variables).
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | TABLE.loadTable / path="my_data.csv", caslib="public", casout={name="my_data", replace=True}; |
| 4 | TABLE.loadTable / path="my_links.csv", caslib="public", casout={name="my_links", replace=True}; |
| 5 | TABLE.loadTable / path="my_var_roles.csv", caslib="public", casout={name="my_var_roles", replace=True}; |
| 6 | RUN; |
Exemples d'utilisation
Exécution de base d'un réseau bayésien dynamique
Calcul de l'évolution des croyances avec les tables minimales requises : données d'observation, liens du réseau et rôles des variables.
| 1 | PROC CAS; |
| 2 | dynamicBayesianNetwork.dynBnet / |
| 3 | TABLE={DATA={name="my_data", caslib="public"}} |
| 4 | links={DATA={name="my_links", caslib="public"}} |
| 5 | variableRoles={DATA={name="my_var_roles", caslib="public"}} |
| 6 | OUTPUT={DATA={name="out_beliefs", replace=True}}; |
| 7 | RUN; |
Résultat Attendu :
Configuration avancée de dynBnet
Utilisation de paramètres avancés tels que l'approximation linéaire UNSCENTED, le seuil de synchronisation, les croyances initiales et plusieurs tables de sortie pour une analyse approfondie.
| 1 | PROC CAS; |
| 2 | dynamicBayesianNetwork.dynBnet / |
| 3 | TABLE={DATA={name="my_data", caslib="public"}} |
| 4 | links={ |
| 5 | DATA={name="my_links", caslib="public"}, |
| 6 | parent="parent_var", |
| 7 | child="child_var", |
| 8 | stage="stage_var" |
| 9 | } |
| 10 | variableRoles={ |
| 11 | DATA={name="my_var_roles", caslib="public"}, |
| 12 | varname="var_name", |
| 13 | varrole="var_role", |
| 14 | varorder="var_order" |
| 15 | } |
| 16 | initialBeliefs={ |
| 17 | DATA={name="my_init_beliefs", caslib="public"}, |
| 18 | intervalvar="int_var", |
| 19 | nominalvar="nom_var", |
| 20 | mean="mean_val", |
| 21 | sdev="std_dev", |
| 22 | varlevel="level_val" |
| 23 | } |
| 24 | linearApproximationType="UNSCENTED" |
| 25 | odeApproximationType="GRADIENT" |
| 26 | syncThreshold=0.01 |
| 27 | OUTPUT={DATA={name="out_beliefs", replace=True}} |
| 28 | outputState={DATA={name="out_state", replace=True}} |
| 29 | outputDetails={DATA={name="out_details", replace=True}} |
| 30 | outputCliques={DATA={name="out_cliques", replace=True}}; |
| 31 | RUN; |