S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.

Autor článku: Lenka Fiřtová

V tomto článku je popsán způsob, jak v R vizualizovat spočítané korelační matice.

O tom, co je to korelace, pojednává tento článek, o tom, jak korelační koeficienty a korelační matice spočítat, pak tento článek.

Úvodní výpočty

V tomto článku budeme pracovat s balíčkem corrplot, který umožňuje vytvářet hezká a přehledná zobrazení korelačních matic. Balíček nainstalujeme příkazem install.packages (název balíčku jen nutné psát do uvozovek). Následně příkazem library nainstalovaný balíček načteme do R (příkaz library musíme při práci s jakýmkoli doplňujícím balíčkem použít při každém spuštění R znovu, zatímco instalaci balíčku provádíme pouze jednou).

> install.packages("corrplot")

> library(corrplot)

Pracovat budeme s datasetem mtcars, který obsahuje informace o deseti vlastnostech 32 automobilů. Pokud by nás zajímalo, o jaké vlastnosti se jedná, následujícím příkazem si otevřeme nápovědu resp. popis dat:

> ?mtcars

Podívejme se na záhlaví dat:

> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Balíček corrplot pro své grafy vyžaduje spočítanou korelační matici. Spočítáme tedy korelační matici proměnných v datasetu mtcars a uložíme ji do proměnné k.

> k = cor(mtcars)

Pro vizualizaci korelace slouží funkce corrplot. Má pouze jeden povinný argument – vstupní korelační matici – a dále řadu nepovinných argumentů, z nichž zmíníme method a type.

Funkce corrplot – argument method

Argument method slouží k výběru, jak má graf vypadat. Na výběr jsou následující možnosti: “circle” (defaultní možnost),”square”, “ellipse”, “number”, “pie”, “shade”, “color”.

Například volba color vrátí graf, kde červeně jsou značeny záporné korelace, modře kladné, silnější korelace je znázorněna intenzivnější barvou.

> corrplot(k, method = "color")

Z obrázku můžeme odhadnout, že například korelace mezi proměnnou mpg a hp bude okolo – 0,7, mezi proměnnou mpg a drat okolo 0,7. Přesné hodnoty korelace však nezjistíme – graf slouží spíše jako přehled toho, které proměnné spolu korelují silněji a které slaběji.

O něco lépe může pomoci korelace odhadnout volba circle. Ta vrátí graf, který kromě barvy zobrazuje i různě velké kruhy v závislosti na síle korelace.

> corrplot(k, method = "circle")

Volba pie vyvolá graf, kde sílu korelace znázorňuje kormě barvy také podíl vybarveného kruhu.

> corrplot(k, method = "pie")

Například podíváme-li se na korelaci mezi mpg a hp (první řádek a čtvrtý sloupec), vidíme, že jsou vybarveny více než tři čtvrtiny kruhu, takže korelace bude silnější než –0,75. Naopak podíváme-li se na korelaci mezi mpg a drat (první řádek a pátý sloupec), vidíme, že jsou vybarveny méně než tři čtvrtinu kruhu, takže korelace bude slabší než 0,75.

Z nabízených metod nám nejpřesnější hodnoty zobrazí metoda number, která vypíše přímo hodnoty jednotlivých korelačních koeficientů. Ukáže, že korelace mezi mpg a hp je –0,78, mezi mpg a drat 0,68.

> corrplot(k, method = "number")

Funkce corrplot – argument type

Každá korelační matice je symetrická – nad diagonálou a pod diagonálou jsou na odpovídajících pozicích stejná čísla. Je tedy možné zobrazit pouze čísla nad diagonálou („horní trojúhelníková matice“) nebo pod diagonálou („dolní trojúhelníková matice“) bez ztráty informace.

K tomu slouží argument type. Ukážeme si jeho použití na matici v podobě circle.

> corrplot(k, method = "circle", type = "upper")

 

> corrplot(k, method = "circle", type = "lower")

S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.