network community

Marktsegmentierung mit variabler Granularität (Performance/Analyse)

Scénario de test & Cas d'usage

Geschäftskontext

Ein Marketingteam eines Telekommunikationsunternehmens möchte Kundengruppen basierend auf Anrufdaten segmentieren. Sie benötigen sowohl grobe Segmente für landesweite Kampagnen als auch sehr feine Nischensegmente für lokale Angebote. Wir testen die `resolutionList`-Option, um mehrere Granularitätsstufen in einem einzigen Durchlauf zu berechnen.
Datenaufbereitung

Simulation eines größeren Netzwerks mit 1000 Verbindungen durch Datengenerierung.

Kopiert!
1DATA mycas.anruf_daten;
2 call streaminit(123);
3 DO i = 1 to 1000;
4 from_id = rand("Integer", 1, 100);
5 to_id = rand("Integer", 1, 100);
6 IF from_id ne to_id THEN OUTPUT;
7 END;
8RUN;

Étapes de réalisation

1
Ausführung der Community-Erkennung mit verschiedenen Auflösungen (Resolution 0.5 für grob, 1.0 für standard, 2.0 für fein).
Kopiert!
1PROC CAS;
2 ACTION network.community RESULT=r /
3 links={name="anruf_daten", from="from_id", to="to_id"}
4 resolutionList={0.5, 1.0, 2.0}
5 outLevel={name="segment_level", replace=true}
6 outNodes={name="kunden_segmente", replace=true};
7 RUN;
2
Überprüfung der unterschiedlichen Community-Strukturen in der outLevel-Tabelle.
Kopiert!
1fetch / TABLE={name="segment_level"};
2 
3RUN;
4QUIT;
5 

Erwartetes Ergebnis


Die Ergebnistabelle `segment_level` enthält Einträge für jede Auflösung (Resolution). Bei 0.5 sollten weniger, aber größere Gemeinschaften gefunden werden. Bei 2.0 sollten viele kleine, eng verbundene Gruppen (Nischen) identifiziert werden.