V tomto zadaní budeme pracovať s dátovým súborom uscrime
z knižnice SMS data
. Súbor obsahuje 50 pozorovaní a 11
premenných s informáciami o počte výskytov rôznych trestných činov v
rámci konkrétnych regiónov USA, ich rozlohe a populácii.
Pozrieme sa na korelácie medzi jednotlivými trestnými činmi, rozlohou regiónov a populáciou. Na obrázku nižšie pozorujeme, že pomerne vysoko kladne korelované sú útoky s vraždami a krádeže s vlámaniami. Rozloha regiónu je veľmi nízko, až vôbec korelovaná s trestými činmi.
library(DescTools)
library(kableExtra)
library(knitr)
data(uscrime, package = "SMSdata")
data<-uscrime
pcdata<-data[,-c(10,11)]
#eigen(var(pcdata))
pcdata<- scale(pcdata, center = TRUE, scale = TRUE)
pc<-prcomp(pcdata)
library(corrplot)
corrplot(cor(pcdata), method="ellipse")
Nasledujúca tabuľka obsahuje štandardné odchýlky škálovaných hlavných komponentov, pomer variability a kumulatívny pomer variability, ktorý je zobrazený aj na obrázku pod tabuľkou. Vidíme, že na pokrytie zhruba 92% variability nám stačí prvých 5 komponentov, pričom prvý komponent vyjadruje približne 50% variability dát. Na zníženie dimenzionality dát a zároveň dostatočné vysvetlenie variability by nám stačilo prvých 5 komponentov namiesto pôvodných 9.
tab<-summary(pc)$importance
tab %>%
kbl() %>%
kable_styling()
PC1 | PC2 | PC3 | PC4 | PC5 | PC6 | PC7 | PC8 | PC9 | |
---|---|---|---|---|---|---|---|---|---|
Standard deviation | 2.112468 | 1.211975 | 1.074463 | 0.8535431 | 0.6728768 | 0.5266941 | 0.4740118 | 0.365127 | 0.3121157 |
Proportion of Variance | 0.495840 | 0.163210 | 0.128270 | 0.0809500 | 0.0503100 | 0.0308200 | 0.0249700 | 0.014810 | 0.0108200 |
Cumulative Proportion | 0.495840 | 0.659040 | 0.787320 | 0.8682700 | 0.9185700 | 0.9494000 | 0.9743600 | 0.989180 | 1.0000000 |
plot(summary(pc)$importance[3,],ylab="Cumulative Proportion")
Prvý riadok tabuľky, resp. jeho druhú mocninu, čiže rozptyly jednolivých kompomentov, máme zobrazené na nasledujúcom obrázku.
par(mfrow = c(1,2))
plot(pc, type = "l", col = '#339933', main = "")
plot(pc, col = '#339933', main = "")
par(mfrow = c(1,1))
Na obrázkoch nižšie, v ktorých využívame 2. a 3. komponent na zobrazenie dát a 3. a 4. komponent (=rôzne “uhly” pohľadu na 9-rozmerné dáta), môžeme pozorovať zhlukovanie dát podľa jednotlivých regiónov. Zdá sa, že zatiaľ čo v južných regiónoch prevládajú vraždy a útoky, v západných sú to krádeže a vlámania a v stredozápadných regiónoch krádeže áut a prepady.
library("ggfortify")
autoplot(pc, data = data, loadings.label = TRUE, colour = 'reg',x=2,y=3, loadings = T)
autoplot(pc, data = data, loadings.label = TRUE, colour = 'reg',x=3,y=4, loadings = T)