Shluková analýza
Shluková analýza Shluková analýza (též clusterová analýza, anglicky cluster analysis) je vícerozměrná statistická metoda, která se používá ke klasifikaci objektů. Slouží k třídění jednotek do skupin (shluků) tak, aby si jednotky náležící do stejné skupiny byly podobnější než objekty ze skupin různých.
Shlukovou analýzu je možné provádět: na množině objektů, z nichž každý musí být popsán prostřednictvím stejného souboru znaků, které má smysl v dané množině sledovat na množině znaků, které jsou charakterizovány prostřednictvím určitého souboru objektů, nositelů těchto znaků
Dělení shlukovacích metod Hierarchické shlukování Nehierarchicé shlukování
Hierarchické shlukování je systém podmnožin, kde průnikem dvou podmnožin - shluků je buď prázdná množina, nebo jeden z nich. Pokud nastane alespoň jednou druhý případ, je systém hierarchický. Tedy je to jakési větvení, zjemňování klasifikace.
Příklad hierarchického shlukování Původní data Hierarchický shlukový dendrogram
Metody hierarchického shlukování Existují různé způsoby, jak shlukovat objekty na základě jejich vzdálenosti či podobnosti.
Metoda nejbližšího souseda (single linkage, nearest neighbor) Vzdálenost shluků je určována vzdáleností dvou nejbližších objektů z různých shluků. Při použití této metody jsou objekty taženy k sobě, výsledkem jsou dlouhé řetězy.
Metoda nejvzdálenějšího souseda (complete linkage, furthest neighbor) Vzdálenost shluků je určována naopak vzdáleností dvou nejvzdálenějších objektů z různých shluků. Funguje dobře především v případě, že objekty tvoří přirozeně oddělené shluky, nehodí se, pokud je tendence k řetězení.
Průměrná párová vzdálenost (average linkage, pair-group average) Vzdálenost shluků je určována jako průměr vzdáleností všech párů objektů z různých shluků. Může být ve vážené i nevážené podobě.
Dva přístupy k hierarchickému shlukování: divizní (vycházíme z celku, jednoho shluku, a ten dělíme) aglomerativní (vycházíme z jednotlivých objektů, shluků o jednom členu, a ty spojujeme)
Nehierarchické shlukování je takový systém, kde je průnik shluků prázdný (jedná se o disjunktní množiny).
Měření podobnosti objektů Shluková analýza vychází z podobnosti, resp. nepodobnosti (vzdálenosti) objektů. Její kvantitativní vyjádření je jedním ze základních problémů clusterové analýzy. Existuje mnoho způsobů sestrojení tohoto ukazatele.
Základní podmínky pro vhodný předpis míry vzdálenosti (podobnosti) objektů jsou: nezápornost: d(Oi, Oj) >= 0; oboustrannost: d(Oi, Oj) = d (Oj, Oi); shodné objekty by měly mít ukazatel vzdálenosti roven 0 (podobnostní ukazatel roven maximální hodnotě, většinou 1).
Příklady ukazatelů Metriky Koeficienty asociace Korelační koeficient Eukleidovská metrika Čtvercová eukleidovská metrika Manhattanská metrika Chebychevova (maximum) metrika další metriky … Koeficienty asociace Korelační koeficient
Koeficienty asociace určeny pro hodnocení podobnosti pro objekty vyjádřené dichotomickými znaky ukazatele založeny na počtu shod nebo rozdílů znaků
Korelační koeficient hodí se především pro shlukování proměnných
Existuje řada dalších způsobů měření vzdálenosti či podobnost. Při výběru ukazatele je třeba brát v úvahu metodu shlukování a charakter souboru.
Centroidní metoda Vzdálenost shluků je určována vzdáleností jejich center (hypotetická jednotka s průměrnými hodnotami znaků). Může být nevážená nebo vážená. Vážená CM zohledňuje velikosti klastrů a hodí se, pokud očekáváme jejich rozdílnost. Požaduje vyjádření vzdálenosti objektů čtvercovou euklidovskou vzdáleností.
Wardova metoda Vychází z analýzy rozptylu. Vybírá takové shluky ke sloučení, kde je minimální součet čtverců. Obecně lze říci, že je tato metoda velmi účinná, ale má tendenci tvořit poměrně malé shluky. Požaduje vyjádření vzdálenosti objektů čtvercovou euklidovskou vzdáleností.
Shluková analýza v R life <- read.table("life.txt", header=T, row.names=1) plclust(hclust(dist(life), method="single"), labels=row.names(life), ylab="Vzdalenost")
Shluková analýza v R country <- row.names(life) par(mfrow=c(1,3)) plclust(hclust(dist(life) ,method="single"), labels=country,ylab="Vzdalenost") title(" (a) Single linkage") plclust(hclust(dist(life) ,method="complete"), title(" (b) Complete linkage") plclust(hclust(dist(life),method="average") , title(" (c) Average linkage")
Shluková analýza v R rez <- cutree(hclust(dist(life), method="complete"), h=21) rez shluky <- lapply(1:5, function(nc) country[rez==nc]) shluky prumery <- lapply(1:5, function(nc) apply(life[rez==nc,], 2, mean)) prumery pairs(life, panel=function(x,y) text(x,y,rez))