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).
Paramètres Clés
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.
| 1 | DATA casuser.network; |
| 2 | LENGTH SOURCE target $10 weight 8; |
| 3 | INPUT SOURCE target weight; |
| 4 | DATALINES; |
| 5 | A B 1 |
| 6 | A C 2 |
| 7 | B C 1 |
| 8 | C D 5 |
| 9 | D E 1 |
| 10 | E F 2 |
| 11 | F D 1 |
| 12 | ; |
| 13 | RUN; |
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.
| 1 | PROC 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}; |
| 7 | RUN; |
| 8 | QUIT; |
Résultat Attendu :
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é.
| 1 | PROC 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}; |
| 14 | RUN; |
| 15 | QUIT; |