dynamicBayesianNetwork

dynBnet

##set_dynamicbayesiannetwork

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 !

Syntaxe Officielle
proc cas;
dynamicBayesianNetwork.dynBnet /
cliques={data={name="table_name", caslib="caslib_name"}, id="string", stage="string", toid="string", type="string", varname="string"}
initialBeliefs={data={name="table_name"}, intervalvar="string", mean="string", nominalvar="string", sdev="string", varlevel="string"}
inputState={data={name="table_name"}}
linearApproximationType="EXTENDED" | "UNSCENTED"
links={child="string", data={name="table_name"}, parent="string", stage="string"}
odeApproximationType="ALL" | "GRADIENT" | "NONE"
output={data={name="table_name"}}
outputCliques={data={name="table_name"}}
outputDetails={data={name="table_name"}}
outputState={data={name="table_name"}}
syncThreshold=double
table={data={name="table_name"}}
variableLevels={data={name="table_name"}, levelorder="string", varlevel="string", varname="string"}
variableOdes={data={name="table_name"}, system="string", varname="string"}
variableRoles={data={name="table_name"}, varname="string", varorder="string", varrole="string"}
variableSyncParms={data={name="table_name"}, intervalvar="string", mean="string", nominalvar="string", sdev="string", varlevel="string"};
run;

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

1PROC 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};
6RUN;

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.

1PROC 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}};
7RUN;
Résultat Attendu :
Une table `out_beliefs` est créée, contenant les croyances sortantes calculées pour les variables cachées au fil du temps.
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.

1PROC 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}};
31RUN;
Résultat Attendu :
L'action génère plusieurs tables en mémoire : `out_beliefs` (croyances de base), `out_state` (état du modèle), `out_details` (croyances détaillées par branche) et `out_cliques` (structure de l'arbre de cliques).