NMST539 | Cvičenie 13

Kanonické korelace a korespondenční analýza

LS 2020/2021 | 25/05/21 | (online výuka)

zdrojový Rmd súbor (kódovanie UTF8)

Outline 13. cvičenia:

  • stručné základy metódy kanonických korelácii;
  • stručné základy korespondenčnej analýzy;
  • praktické aplikácie a jednoduché ukážky v programe R;


Štatisticky program R je k dispozícii (GNU public licence) na adrese https://www.r-project.org

RStudio – “user-friendly” interface (jeden z mnohých, ktoré na internete nájdete): RStudio.

Užitočné návody a manuály pre prácu s programom R:

  • Bína, V., Komárek, A. a Komárková, L.: Jak na jazyk R. (PDF súbor)
  • Komárek, A.: Základy práce s R. (PDF súbor)
  • Kulich, M.: Velmi stručný úvod do R. (PDF súbor)
  • De Vries, A. a Meys, J.: R for Dummies. (ISBN-13: 978-1119055808)


Odborná literatúra:
  • Bouveyron, C., Celeux , G., Murphy, T.B., and Raftery A.E.: Model-Based Clustering and Classification for Data Science: With Applications in R. Cambridge University Press, 2019.
  • Hardle, W. and Simar.L.: Applied Multivariate Statistical Analysis. Springer, 2015
  • Mardia, K., Kent, J., and Bibby, J.:Multivariate Analysis, Academic Press, 1979.




1. Kanonické korelácie

Metóda kanonických korelácii patrí medzi mnohorozmerné štatistické postupy. Zhruba řečeno, pracuje na podobnom princípe, ako metóda hlavných komponent (PCA), ktorá vysvetľuje celkovú variabilitu vrámci daného datového súboru. Kanonické korelácie sa ale zameriavajú na vysvetlenie celkovej variability a korelačnej štruktúry medzi dvoma datovými súbormi (kvantitatívne premenné sledované na stejných experimentálných jednotkách – subjektoch).

Metóda hlavných komponent (PCA) teda vychádza z jedného podkladového datového súboru a snaží sa o redukciu dimenzionality v podobne niekoľkých hlavných komponent, ktoré maximulizuju hlavné smery celkovej variability dat. Metóda kanonických korelácii (CCA) vychádza z dvoch podkladových súborov (každý sa skladá z niekoľkých kvantitatívných premenných – preto “mnohorozmerná” štatistická metóda – sledovaných na stejných subjektoch) a snaží sa o nájdenie kanonických korelácii (v zmysle lineárných kombinácii pôvodných premenných), tak aby bola maximalizovana korelácia vrámci týchto premenných medzi dvoma podkladovými súbormi dat.

Teoretický model lze vyjadriť následovne: pre dva mnohorozmerné náhodné vektory \(\boldsymbol{X} = (X_1, \dots, X_p)^p\) a \(\boldsymbol{Y} = (Y_1, \dots, Y_q)^\top\) predpokládame spoločnú variančnú-kovariančnú maticu pre \((\boldsymbol{X}^\top, \boldsymbol{Y}^\top)^\top\) v tvare \[ Var \left(\begin{array}{c}\boldsymbol{X}\\ \boldsymbol{Y}\end{array}\right) = \left(\begin{array}{cc} \Sigma_{XX} & \Sigma_{XY}\\ \Sigma_{YX} & \Sigma_{YY} \end{array}\right). \]

Je zrejmé, že pre ľubovolnú linárnu kombináciu zložiek vektoru \(\boldsymbol{X}\) a ľubovolnú linárnu kombináciu zložiek vektoru \(\boldsymbol{Y}\) v tvare \(\boldsymbol{a}^\top \boldsymbol{X}\) a \(\boldsymbol{b}^\top\boldsymbol{Y}\), pre \(\boldsymbol{a} \in \mathbb{R}^p\) a \(\boldsymbol{b} \in \mathbb{R}^q\) dostaneme pre vzájomnú koreláciu linárných kombinácii vzťah

\[ Cor(\boldsymbol{a}^\top \boldsymbol{X}, \boldsymbol{b}^\top\boldsymbol{Y}) = \boldsymbol{a}^\top \Sigma_{XY} \boldsymbol{b}. \]

Metóda kanonických korelácii sa snaží nájsť hodnoty neznámych parametrov \(\boldsymbol{a} \in \mathbb{R}^p\) a \(\boldsymbol{b} \in \mathbb{R}^q\) (t.j. príslušné lineárne kombinácie zložiek vektorov \(\boldsymbol{X}\) a \(\boldsymbol{Y}\)) tak, aby bola výsledná korelácia maximálna možná. Metóda kanonických korelácii (podobne ako aj metóda hlavných komponent) ale nehľadá pouze jednu takúto lineárnu kombináciu, ale výstupom sú dvojice nových premenných (v každej dvojici je jedná premenná vytvorená lineárnou kombináciou \(\boldsymbol{a}^\top \boldsymbol{X}\) pre vhodné \(\boldsymbol{a} \in \mathbb{R}^p\) a druhá premenná linárnou kombináciou \(\boldsymbol{b}^\top\boldsymbol{Y}\), opäť pre vhodné \(\boldsymbol{b} \in \mathbb{R}^q\)), pričom celkový počet takto vytvorených párov nových premenných je daný ako \(min(p, q)\). Navyše sa požaduje, že kanonické premenné sú vzájomne (vrámci daného datového súboru) nekorelované (teda kanonické premenné \(\boldsymbol{a}_1^\top \boldsymbol{X}, \dots \boldsymbol{a}_k^\top \boldsymbol{X}\) sú nekorelované a stejně tak aj kanonické premenné \(\boldsymbol{b}_1^\top\boldsymbol{Y}, \dots, \boldsymbol{b}_k^\top\boldsymbol{Y}\) sú nekorelované, pričom \(k = min(p, q)\)).

metóda kanonických korelácii je v programe R implementovaná v štandardnej funkcii cancor(). Dodatočné možnosti a rôzne rozšírenia sú k dispozícii v knižniciach a balíčkoch – napr. ‘CCA’, alebo ‘vegan’.

Pre ilustráciu funkgovania metódy kanonických korelácii využijeme datový súbor ekologickej kvality a biologickej diverzity rôzných Českých geografických lokalít v blízkosti významných vodných tokov. Celkové data pozostávaju z dvoch datových súborov: v prvom datovom súbore sú zaznamenané namerané hodnotý rôznych ekologických a biologických indexov/metrík (dohromady 17 premenných) a v druhom datovom súbore sú na tých istých lokalitách zaznamenané koncentrácie niektorých dôležitých chemických látok (celkovo 7 premenných).

Idea kanonických korelácii je pokúsiť sa vysvetliť vzájomné vzťahy medzi dvoma datovými súbormi (v oboch prípadoch sa jedná o kvantitatívne premenné sledované na stejných subjektoch – lokalitách), resp. zistiť, ktoré biologické a ekologické ukazatele (biometriky a indexy) korelujú s ktorými chemickými koncentráciami.

rm(list = ls())
bioData <- read.csv("http://msekce.karlin.mff.cuni.cz/~maciak/NMST539/bioData.csv", header = T)
chemData <- read.csv("http://msekce.karlin.mff.cuni.cz/~maciak/NMST539/chemData.csv", header = T)

head(bioData)
##   Kod_Canoco SaprInd    Lital    RETI   EPTAbu    Marg Metaritr   JepAbu
## 1   BecvChor 2.57620 31.96916 0.37453 26.90136 7.10911 16.25647 14.89330
## 2   BecvOsek 2.43686 28.12037 0.27790 23.32888 5.80443 14.14831 11.06343
## 3   BecvTrou 2.10235 21.30691 0.31422 36.49575 6.14622 11.21903 30.23011
## 4   BelaBosk 1.53297 37.12914 0.48181 38.49802 9.36742 25.32146 10.11182
## 5   BilyPoto 1.79499 27.21495 0.37100 23.26918 8.62000 17.88813  5.95577
## 6   BlatTova 2.90209 16.04854 0.30351  8.64187 5.51661  7.98030  4.71039
##   Epiritral Hyporitral Ntaxon Nceled  Bindex EPTTax  PosAbu  Spasaci
## 1   7.68869   22.52242     18     40 0.64865     23 0.33939 28.29352
## 2   6.96659   19.74992     12     25 0.37838     16 0.00000 20.84029
## 3   5.92213   18.63735      9     25 0.16216     12 1.47017 20.88415
## 4  20.37168   18.17237     16     40 0.72000     30 8.07504 28.62651
## 5  12.08359   19.09771     21     36 0.54167     21 0.54567 22.02324
## 6   5.23533   14.60371     15     27 0.09091      5 0.00000 16.78539
##         MDS_1      MDS_2
## 1 -0.69831500 -0.7040517
## 2 -0.61323430 -0.3796887
## 3 -0.08536265  1.6051440
## 4  0.55758620 -0.4424091
## 5  0.40888510 -0.2172988
## 6 -0.76699300  0.5244099
head(chemData)
##   Kod_Canoco Tepl_max X.O2 BSK5 Kond N.NH4 N.NO3 Pcelk
## 1   BecvChor     20.9  107  1.3 33.7  0.09  1.55 0.077
## 2   BecvOsek     21.8  105  1.2 37.0  0.06  2.32 0.063
## 3   BecvTrou     22.1  106  1.4 43.9  0.07  2.49 0.080
## 4   BelaBosk     16.4  104  1.1 22.1  0.02  2.05 0.029
## 5   BilyPoto     18.9  104  1.9 30.4  0.10  4.48 0.131
## 6   BrezJaro     18.4   84  2.5 83.8  0.30  3.63 0.237



V podkladových datach sa vyskytuje jedná lokalita, u ktorej sú namerané biologické premenné, ale chýbajú hodnoty o príslušných chemických koncentráciach. Toto pozorovanie je v nasledujúcom kóde odstránene a není viac uvažované pre účely kanonických korelácii.

ind <- match(chemData[,1], bioData[,1])
data <- data.frame(bioData[ind, ], chemData[, 2:8])

Príprava jednotlivých datových súborov – t.j. rozlíšenie náhodného vektoru \(\boldsymbol{X}\) a náhodného vektoru \(\boldsymbol{Y}\) (vzhľadom k teoretickému modelu popisanému vyššie).

X <- data[,2:9]
Y <- data[,19:25]

Celkovú variančnú-kovariančnú maticu náhodného vektoru \((\boldsymbol{X}^\top, \boldsymbol{Y}^\top)^\top\), t.j. výberovú verziu matice na základe dat (realizácie celkového náhodného vektoru)

\[ cor(\mathcal{X}, \mathcal{Y}) = \left(\begin{align}\Sigma_{XX} & \Sigma_{XY}\\\Sigma_{YX} & \Sigma_{YY}\end{align}\right),\]

môžeme vyzualizovať napr. pomocou knižnice ‘CCA’ (Canonical Correlation Analysis knižnica, ktorú je nutné inštalovať pomocou príkazu install.packages("CCA")) a funkcii matcor() a img.matcor() :

library("CCA")
correl <- matcor(X, Y )
img.matcor(correl, type = 2)

Metóda kanonických korelácii je aplikovaná priamočiaro volaním funkcie cancor(). Podkladové datové súbory sú \(\mathcal{X}\) (predstavuje realizáciu teoretického náhodného vektoru \(\boldsymbol{X}\)) a \(\mathcal{Y}\) (realizácia teoretického náhodného vektoru \(\boldsymbol{Y}\)). Alternatívna možnosť pre metódu kanonických korelácii je napr. funkcia cc() (z knižnice ‘CCA’). Získané výsledky sú ekvivalentné, aj keď nie nutne identické. Zamyslite sa, do akej miery su kanonické korelácie definované jednoznačne.

cc1 <- cancor(X, Y)  ### function from standard R instalation
cc2 <- cc(X, Y)      ### function for the R package 'CCA'

Hodnoty (odhady) kanonických korelácii sú totožné:

cc1$cor  ### function from standard R instalation
## [1] 0.87496109 0.70496586 0.64579693 0.48750752 0.24205299 0.11563830
## [7] 0.04481277
cc2$cor  ### function for the R package 'CCA'
## [1] 0.87496109 0.70496586 0.64579693 0.48750752 0.24205299 0.11563830
## [7] 0.04481277

Jednotlivé kanonické korelácie – t.j. prislušné dvojice linárných kombinácii stĺpcov matice biologických data a sĺpcov matice chemických dat lze z výstupu zrekonštruovať následovne:

CanX <- as.matrix(X) %*% cc1$xcoef
CanY <- as.matrix(Y) %*% cc1$ycoef

cor(CanX, CanY)
##               [,1]          [,2]          [,3]          [,4]          [,5]
## [1,]  8.749611e-01 -5.641494e-17 -2.837332e-16  2.876720e-16 -2.755136e-16
## [2,]  1.969775e-18  7.049659e-01  6.045359e-17  3.672712e-16  2.833397e-16
## [3,]  2.055352e-15 -6.475529e-16  6.457969e-01 -8.881386e-16 -4.425705e-17
## [4,]  5.598600e-16 -4.649601e-16 -7.193021e-16  4.875075e-01 -1.535789e-16
## [5,] -6.529418e-16  3.505207e-16  1.774706e-16 -7.011448e-18  2.420530e-01
## [6,]  1.389060e-16 -3.532212e-17 -3.754766e-16 -4.455948e-16  5.118790e-16
## [7,] -8.693158e-16  4.868860e-16 -2.229543e-16  2.685094e-19  3.028397e-17
## [8,] -1.861723e-16  3.088850e-16 -3.129291e-16 -4.233271e-16 -4.250917e-16
##               [,6]          [,7]
## [1,]  2.598782e-17  8.001412e-17
## [2,] -4.062772e-17 -1.190124e-16
## [3,]  5.531278e-16  1.034287e-16
## [4,] -2.964996e-16 -6.147935e-17
## [5,] -2.659521e-16  1.510269e-16
## [6,]  1.156383e-01  8.425013e-18
## [7,] -4.480597e-16  4.481277e-02
## [8,]  6.107525e-16  2.362837e-16

Porovnajte s výstupom z funkcie cancor(), alebo cc() vyššie. Pripomeňme, že v tomto konkrétnom príklade platí, že \(p = 8\), \(q = 7\) a teda celkov počet jednotlivých párov kanonických korelácii je \(k = min(p, q) = 7\). Všimnite si vpodstate numerické nuly na mimodiagonálných prvkoch matice.


Kanonické korelácie vizuálne:

par(mfrow = c(1,2))
barplot(cc1$cor, main = "Canonical correlations for 'cancor()'", col = "gray")
barplot(cc2$cor, main = "Canonical correlations for 'cc()'", col = "gray")

Prislušné lineárne kombinácie stĺpcov datovej matice \(\mathcal{X}\) a datovej matice \(\mathcal{Y}\) sa ale líšia v závislosti na použitej funkcii. Porovnajte nasledujúce výstupy:

cc1$xcoef  ### function from standard R instalation
##                   [,1]         [,2]         [,3]         [,4]         [,5]
## SaprInd    0.162796345  0.089714234 -0.161737589 -0.491927540 -0.186875530
## Lital     -0.003800701  0.001797172 -0.030965801 -0.007214761  0.017517637
## RETI       0.324209881 -0.055178843  0.693084411 -1.283570658 -2.507634813
## EPTAbu    -0.002149837 -0.005077822 -0.009027554  0.008345945  0.005867073
## Marg      -0.011912887 -0.037901448 -0.009666364 -0.065884327 -0.025639954
## Metaritr  -0.012221662  0.001551030  0.043003790  0.012178243 -0.003013795
## JepAbu     0.005168862  0.006308244  0.004048909 -0.009547646 -0.019794148
## Epiritral  0.010432924  0.023391927 -0.013976612 -0.021306313  0.018722542
##                   [,6]        [,7]         [,8]
## SaprInd   -0.098864028  0.06897063 -0.355850803
## Lital      0.004465308 -0.01327305  0.008943729
## RETI       3.047758363  1.14371548  0.285767761
## EPTAbu    -0.005401486  0.01277878 -0.026098676
## Marg      -0.029969261  0.01102501 -0.002459819
## Metaritr  -0.027620185 -0.04963561 -0.056954743
## JepAbu    -0.005346595 -0.00253416  0.030139906
## Epiritral -0.022760565  0.04740075  0.064087475
cc2$xcoef  ### function for the R package 'CCA'
##                  [,1]        [,2]        [,3]         [,4]         [,5]
## SaprInd   -1.29215593 -0.71208465 -1.28375231  -3.90455380  -1.48327854
## Lital      0.03016713 -0.01426461 -0.24578343  -0.05726539   0.13904193
## RETI      -2.57333615  0.43796849  5.50118696 -10.18802625 -19.90373428
## EPTAbu     0.01706380  0.04030396 -0.07165399   0.06624389   0.04656845
## Marg       0.09455561  0.30083342 -0.07672439  -0.52294063  -0.20351082
## Metaritr   0.09700644 -0.01231092  0.34133200   0.09666181  -0.02392126
## JepAbu    -0.04102657 -0.05007014  0.03213722  -0.07578209  -0.15711118
## Epiritral -0.08280877 -0.18566767 -0.11093592  -0.16911362   0.14860557
##                  [,6]        [,7]
## SaprInd   -0.78470889  0.54743742
## Lital      0.03544229 -0.10535158
## RETI      24.19083206  9.07796019
## EPTAbu    -0.04287297  0.10142843
## Marg      -0.23787363  0.08750829
## Metaritr  -0.21922842 -0.39397046
## JepAbu    -0.04243728 -0.02011427
## Epiritral -0.18065638  0.37623175
cc1$ycoef
##                  [,1]         [,2]         [,3]         [,4]         [,5]
## Tepl_max  0.002728344 -0.031587883 -0.022171030  0.015570969 -0.026678176
## X.O2      0.001145406 -0.004145546  0.005890339 -0.012452124 -0.009542703
## BSK5      0.015042715  0.054146231 -0.027996459  0.124516411 -0.026809781
## Kond      0.002545019  0.001425917 -0.004281998  0.001343352  0.001807199
## N.NH4     0.307216652  0.432469799  1.131659010  0.087843642 -0.818023849
## N.NO3    -0.010468525 -0.030934549  0.053453456  0.031622860  0.022842863
## Pcelk     0.412696634 -0.979367658  0.196048060 -3.071986907  0.807813337
##                  [,6]          [,7]
## Tepl_max  0.024294508  0.0072354037
## X.O2     -0.021080517 -0.0001162876
## BSK5     -0.122653042 -0.1252271666
## Kond     -0.003536074  0.0038599055
## N.NH4     0.123847014  0.5657683896
## N.NO3    -0.011571285  0.0045994691
## Pcelk     1.447735216 -1.1452167044
cc2$ycoef
##                  [,1]        [,2]        [,3]         [,4]        [,5]
## Tepl_max -0.021655562  0.25072104 -0.17597710   0.12359074 -0.21175146
## X.O2     -0.009091381  0.03290426  0.04675311  -0.09883567 -0.07574285
## BSK5     -0.119397849 -0.42977239 -0.22221500   0.98831837 -0.21279604
## Kond     -0.020200461 -0.01131786 -0.03398730   0.01066252  0.01434420
## N.NH4    -2.438456583 -3.43262261  8.98226493   0.69723729 -6.49286301
## N.NO3     0.083091342  0.24553537  0.42427365   0.25099867  0.18130960
## Pcelk    -3.275677981  7.77348979  1.55608323 -24.38314016  6.41181959
##                 [,6]          [,7]
## Tepl_max  0.19283168  0.0574292361
## X.O2     -0.16732142 -0.0009230045
## BSK5     -0.97352834 -0.9939598209
## Kond     -0.02806672  0.0306370503
## N.NH4     0.98300520  4.4906473759
## N.NO3    -0.09184423  0.0365071542
## Pcelk    11.49104203 -9.0898757913

Výsledky kanonickej korelačnej analýzy je možné vyzualizovať pomocou príkazu plt.cc().

plt.cc(cc2, var.label = TRUE, ind.names = data[,1])

Na ľavom paneli sú znázornené původné premenné z oboch datových súborov (červenou sú biologické metriky a modrou sú chemické koncentrácie). Na ľavom paneli sú zobrazené jednotlivé geografické lokality (t.j. subjekty) v závislosti na nameraných hodnotách biologických aj chemických premenných.

Viacej podrobnosti lze nájsť napr. v tomto článku.

Otázky


  • Jak by ste interpretovali ľavý a pravý panel v obrázku vyššie?
  • Existuje nejaka súvislosť medzi oboma panelmi v predchádzajúcom obrázku?
  • Aký záver by ste na základe obrázku udělali?



Nad rámec klasickej metódy kanonických korelácii existujú rôzne rozšírenia – napr. tzv. regularizovaná verzia kanonických korelácii (resp. regularized canonical correlation analysis – rcc). Regularizovaná verzia je určená pre prípady, keď počet parametrov (resp. premenných) \(p \in \mathbb{N}\), prípadne \(q \in \mathbb{N}\) je väčší, ako je samotný rozsah náhodných výberov, teda \(n \in \mathbb{n}\) (väčšinou dokonca platí, že \(p, q \gg n\)). There is R function rcc() available in the R package ‘CCA’.

K dispozícii sú aj iné rozširujúce balíčky, napr. knižnica ‘vegan’ (inštalácia pomocou príkazu install.packages("vegan")) a následne funkcia cca().

Poznámka


  • Redundančná analýza (RDA - Redundancy Analysis)
  • Metóda podobná k metóde kanonických korelácii je aj tzv. Redundančná analýza. Idea je využiť kvantitatívne premenné v jednom datovom súbore a maximalizovať vzájomnú koreláciu medzi lineárnými kombináciami premenných z tohto datového súboru a pôvodnými premennými z druhého datového súboru. Jedná sa teda o akúsi asymetrickú verziu metódy kanonických korelácii. Analogicky, môžeme sa na metódu dívať aj na určité zobecnenie lineárnej regresie, kde premenné z jedného datového súboru vystupujú ako nezávisle premenné a ich lineárnou kombináciou vysvetľujeme premenné z druhého datového súboru – závislé premenné. Samozrejme záleží, ktorý datový súbor je použitý na vytvorenie lineárnych kombinácii a z ktorého datového súboru sa využívajú pôvodné premenné.

    Vzhľadom k použitému značeniu sa vpodstate jedná o maximalizáciu korelácie \(cor(\boldsymbol{a}^\top\boldsymbol{X}, \boldsymbol{b}^\top\boldsymbol{Y})\), pri dodatočnom obmedzení, že buď \(\boldsymbol{a} \in \mathbb{R}^p\) alebo \(\boldsymbol{b} \in \mathbb{R}^q\) je jednotkový vektor (s jednotkou na určitej pozícii a nulami jinak).

    V programe R je pre redundančnú analýzu určených niekoľko baličkov, stručne aspoň knižnica vegan, alebo knižnica segRDA.




2. Korespondenčná analýza v R

Korespondenčná analýza (CA - Correspondence Analysis) je vpodstate analogickou metódou ako je metóda kanonických korelácii, ale na rozdiel o kvantitatívnych dat je určená pre kvalitatívne data – resp. pre distrétne data. Podobne, ako metóda kanonických korelácii zkúma vzájomnú štruktúru medzi dvoma kvantitativnými vektormi, tak korespondenčná analýza zkúma štruktúru, resp. vzájomné závislosti medzi jednotlivými riadkami v kontingenčnej tabuľke. V určitom zmysle môžeme korespondenčnú analýzu opäť chápať ako diskrétne zobecnenie metódy hlavných komponent, prípadne kanonických korelácii.

Klasická otázka v kontingenčnej tabuľke sa týka závislosti medzi multinomickým vektorom \(\boldsymbol{X}\) a multinomickým vektorom \(\boldsymbol{Y}\). Nad rámec tejto otázky nás ale môže zaujímať aj mierne komplexnejšia otázka, a totíž čí existujú nejaké závislosti/súvislosti medzi niektorými riadkami a niektorými stĺpcami kontingenčnej tabuľky (teda nie priamo samotné kategórie náhodných vektorov, ale skôr ich linárne kombinácie).

Štandardný príkaz pre korespondenčnú analýzu v programe R je príkaz corresp() (v knižnici ‘MASS’). Rozširujúce balíčky sú napr. ‘FactoMineR’ a ‘factoextra’.

Pre ilustráciu použijeme datový súbor matcars a kontingenčnú tabuľku vytvorenú pre charakteristiku motora (premenná cyl) a charakteristiku prevodovky (premenná cyl).

X <- mtcars[, "cyl"]
Y <- mtcars[, "gear"]

table(X, Y)
##    Y
## X    3  4  5
##   4  1  8  2
##   6  2  4  1
##   8 12  0  2

Korespondenčná analýza pomocou príkazu corresp() z knižnice ‘MASS’:

library(MASS)
(corAn <- corresp(~ Y + X))
## First canonical correlation(s): 0.750054 
## 
##  Y scores:
##          3          4          5 
## -0.9949425  1.1929373  0.1217779 
## 
##  X scores:
##          4          6          8 
##  1.0656337  0.5530348 -1.1138011
plot(corAn, xlab = "Motor cylinders", ylab = "Transmission gears")

biplot(corresp(~ Y + X, nf = 2))

Ako by ste interpretovali predchádzajúce dva obrázky? Čo na obrázkoch vidíte? Pre pripomenutie, premenná cyl má tri kategórie (s hodnotami 4, 6 a 8, čo predstavuje počet válcov v motore) a premenná gear ma opäť tri kategórie, ale s hodnotami 3,4 a 5, ktoré predstavujú počet prevodových stupňov.

Prvý obrázok vpodstate vizualizuje kontingenčnú tabuľku, ale zároveň pridáva aj informáciu o určitej vnútornej štruktúre – všímnite si priestorové umietnenie jednotlivých buniek kontingenčnej tabuľky. Tieto bunky nie sú vzdialené medzi sebou ekvidistantne. Podívajte sa na podrobnosti funkcie corresp() v helpe ?corresp.

Samostatne


  • Pokúste sa aplikovať korespondenčnú analýzu na data s väčším počtom kategórii v jednotlivých premenných. Jednotlivé závislosti je možné následne testovať pomocou \(\chi^2\) testu, analogicky, ako je tento test aplikovaný na problem nezávilosti v kontingenčnej tabuľke. Použitý príklad je použe ilustrčný a i štandardný \(\chi^2\) test nezávislosti odhalí závisostnú štrukturu:

    chisq.test(table(X, Y))
    ## 
    ##  Pearson's Chi-squared test
    ## 
    ## data:  table(X, Y)
    ## X-squared = 18.036, df = 4, p-value = 0.001214
  • Stručný návod k rozširujúcim balíčkom lze napr. nájsť na tejto stránke: FactoMineR a factoextra
  • .










Domáca (samostatná) úloha

(Deadline: Cvičenie č.14 / 01.06.2021)


  • Vyberte si jednú z uvedených mnohorozmerných metód spomínaných v tomto týždni (t.j. vrátane tzv. sliced inverse regression) a na vhodných datach sa pokúste metódu aspoň stručne aplikovať. Uveďte podstatné výsledky, ktoré aspoň stručne okomentujte a výsledky taktiež vhodne graficky ilustrujte.
  • Využiť lze buď metódy, funkcie a balíčky explicitne uvedené v tomto HTML Markdowne, alebo sa podívať po rôznych možnostiach rozširujúcich balíčkov a aplikovať niečo z tejto ponuky. Obecne sa jedná o metódy, ktoré sú pomerné populárne v tzv. behaviorálnej sociologíí a psychológii a k dispozícii je množstvo rôznych balíčkov a knižníc. Na druhej strane, mnohé z nich asi nefungujú tak, ako by sme z teoretického hľadiska očakávali, takže nikdy nie je na škodu určita miera obozretnosti a opatrnosti.
  • Riešenie umiestnite na svoju webovú stránku, najneskôr v utorok, 01.06.2021, do 14:00.