hyperGroup

hypergroup

##set_hypergroup

Description

L'action hypergroup est un véritable couteau suisse pour l'analyse de réseaux (ou graphes) dans SAS Viya. Elle permet d'identifier des hypergroupes, de calculer des dispositions graphiques (layouts), des couleurs, des communautés, des métriques de centralité et des chemins les plus courts. Et pour couronner le tout, elle peut même générer des graphes structurels et des modèles à N-corps. Parfait pour découvrir qui est l'influenceur caché dans vos données (ou simplement faire de jolis dessins connectés sans se faire des nœuds au cerveau).

Syntaxe Officielle
proc cas;
hyperGroup.hypergroup /
table={name="nom_table"}
inputs={"var1", "var2"}
casOut={name="out_table"}
edges={name="out_edges"}
vertices={name="out_vertices"}
community=TRUE | FALSE
centrality=TRUE | FALSE
color=TRUE | FALSE
layout="FRUCHGOLD" | "WALSHAW"
/* ... autres options ... */
;
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant les données du réseau (les connexions).
inputs Liste des variables qui définissent les nœuds (sommets) du graphe.
community Indique s'il faut déterminer les communautés (groupes de nœuds densément connectés).
centrality Active le calcul des métriques de centralité pour identifier l'importance relative de chaque sommet.
layout Définit l'algorithme de disposition du graphe, par exemple FRUCHGOLD ou WALSHAW.
weight Liste des variables définissant le poids ou la distance des arêtes.
edges Table de sortie contenant les informations détaillées sur les arêtes (liens).
vertices Table de sortie listant tous les sommets avec leurs coordonnées et métriques.

Préparation des données

Création d'un jeu de données de réseau (Graphe)

Pour illustrer l'action hypergroup, nous allons créer une table représentant un réseau social basique avec des connexions allant d'une source vers une cible, incluant un poids d'arête.

1DATA casuser.network;
2 LENGTH SOURCE target $10 weight 8;
3 INPUT SOURCE target weight;
4 DATALINES;
5A B 1
6A C 2
7B C 1
8C D 5
9D E 1
10E F 2
11F D 1
12;
13RUN;

Exemples d'utilisation

Analyse de réseau simple : Sommets et Arêtes

Cet exemple basique prend notre table réseau et en extrait les sommets (vertices) et les arêtes (edges) avec une disposition standard. Un point de départ idéal pour vérifier l'intégrité de vos liaisons.

1PROC CAS;
2 hyperGroup.hypergroup /
3 TABLE={name="network"}
4 inputs={"source", "target"}
5 edges={name="out_edges", replace=true}
6 vertices={name="out_vertices", replace=true};
7RUN;
8QUIT;
Résultat Attendu :
Deux tables CAS sont créées : 'out_edges' contenant les liaisons structurées et 'out_vertices' listant tous les nœuds uniques avec leurs coordonnées (x,y) de disposition calculées automatiquement.
Analyse de réseau avancée : Communautés, Centralité et Disposition Fruchterman-Reingold

Ici, on sort l'artillerie lourde : calcul des communautés, détection de la centralité (qui domine le réseau ?), disposition forcée avec l'algorithme FRUCHGOLD, prise en compte du poids des arêtes, et génération des tables de graphes structurels de communauté.

1PROC CAS;
2 hyperGroup.hypergroup /
3 TABLE={name="network"}
4 inputs={"source", "target"}
5 weight={"weight"}
6 community=true
7 centrality=true
8 color=true
9 layout="FRUCHGOLD"
10 edges={name="adv_edges", replace=true}
11 vertices={name="adv_vertices", replace=true}
12 edges3={name="comm_edges", replace=true}
13 vertices3={name="comm_vertices", replace=true};
14RUN;
15QUIT;
Résultat Attendu :
Quatre tables CAS sont générées. Les tables principales 'adv_edges' et 'adv_vertices' sont enrichies des scores de centralité, des couleurs et des identifiants de communauté. Les tables 'comm_edges' et 'comm_vertices' fournissent une vue macroscopique condensée illustrant les relations globales entre les communautés elles-mêmes.