Die Korrelationen die Gruppen zeichnen lassen
Hierarchisches Clustering beginnt mit einem Abstand zwischen je zwei Anlagen. Eine Korrelation ist kein Abstand, aber dᵢⱼ=√(1/2(1-ρᵢⱼ)) ist einer: 0 für ρ=1, etwa 0,71 für ρ=0 und 1 für ρ=-1, und er erfüllt die Dreiecksungleichung. squareform(d, checks=False) macht aus der quadratischen Matrix die verdichtete Liste der n(n-1)/2 Abstände, die scipy.cluster.hierarchy.linkage(y, method='average') erwartet. Das Ergebnis Z ist ein Baum aus n-1 Zeilen [links, rechts, Höhe, Größe]: In jedem Schritt werden die zwei nächsten Gruppen verschmolzen, und der Abstand zweier Gruppen ist der Mittelwert der Abstände ihrer Mitglieder.
Zwei Funktionen lesen den Baum. hierarchy.leaves_list(Z) liefert die Blattreihenfolge, in der ähnliche Anlagen Nachbarn sind, und ordnet eine Korrelationsmatrix zu sichtbaren Blöcken um. hierarchy.fcluster(Z, k, criterion='maxclust') schneidet den Baum in höchstens k Gruppen und liefert ein Label je Anlage. Bei zwölf Aktien und ETFs über 1.500 Tage ergeben sich ohne jede Branchenangabe fünf Gruppen: Technologie (AAPL, MSFT, NVDA), Banken (JPM, BAC, GS), Energie (XOM, CVX), Gesundheit (JNJ, PFE) und Anleihen (TLT, IEF). hierarchy.cophenet(Z, y) misst die Treue des Baums: Es korreliert die ursprünglichen Abstände mit den vom Baum implizierten, hier 0,96. Ein Wert nahe 1 heißt, der Baum fasst gut zusammen; ein niedriger, dass die Struktur nicht wirklich hierarchisch ist.
- Korrelation ist kein Abstand: √(1/2(1-ρ)) nutzen, dann
squareform(..., checks=False). leaves_listordnet,fclusterschneidet: das eine liefert Nachbarn, das andere Gruppen.- Kophenetische Korrelation nahe 1 heißt, der Baum erhält die Abstände; prüfen Sie sie, bevor Sie den Gruppen trauen.
Lab: Was bewertet wird
- Korrelationsabstand15 Pkt.
- Der Average-Linkage-Baum15 Pkt.
- Die Blattreihenfolge15 Pkt.
- Den Baum schneiden20 Pkt.
- Die kophenetische Korrelation15 Pkt.
- Die Studie mit zwölf Anlagen20 Pkt.