Trg Svetog Save 34, 31000 Užice, Srbija; PIB 111925736; ŽR 840-2114666-27
031/513-385, 512-013
skola@vpts.edu.rs

Blog // Faktorska analiza i redukcija dimenzionalnosti

Izvor: [1]

Izvor: [2]

Faktorska analiza

Pristup istraživanju kompleksnih objekata i sistema baziran na podacima (data driven approach) uzima sve više maha. Zahvaljujući burnom razvoju senzorske tehnike i mikro računara (Arduino, Raspberry Pi,), moguće je meriti veliki broj varijabli koje, u većoj ili manjoj meri, karakterišu dati sistem. Ovo dovodi do prelaska u hiper-prostore istraživanja, prostore sa velikim brojem dimenzija i ogromnom količinom podataka.

Vladanje velikim brojem varijabli, odnosno, rečeno jezikom redukcije dimenzionalnosti, velikim brojem faktora, nije jednostavan zadatak. Srećom, među faktorima često postoji redudansa jer su ti faktori (varijable) često u međusobnoj korelaciji. Ovo se može objasniti činjenicom da često više varijabli meri isti pokretački princip, odnosno mehanizam koji opisuje ponašanje posmatranog objekta ili sistema.             

Metode zasnovane na glavnim komponentama

Postoje brojne metode faktorske analize, ali su najčešće u upotrebi metode zasnovane na glavnim komponentama. Od njih je najčešće u upotrebi Analiza glavnih komponenti.  

Analiza glavnih komponenti (PCA – Principal Component Analysis) je rigorozna statistička metoda koja skup originalnih varijabli redukuje u novi prostor manje dimenzionalnosti. Svaka glavna komponenta je linearna kombinacija originalnih varijabli. Sve komponente su međusobno ortogonalne, tako da nema suvišnih informacija.

Drugim rečima, zadatak PCA je kreiranje komponenti koje će imati maksimalnu varijansu i koje će biti međusobno nekorelisane, pri tome gubeći najmanju količinu informacija sadržanu u originalnom skupu podataka.

Metode redukcije dimenzionalnosti bazirane su na elementima linearne algebre, singularnoj dekompoziciji matrica (SVD – Singular Value Decomposition) i sopstvenim vrednostima (eigen values).   

Ovu tehniku je prvi opisao Karl Pirson 1901. god, u današnju formu ju je pretočio   H. Hoteling 1933. god, ali je ona svoj puni sjaj doživela tek u računarskoj eri, zbog visokih zahteva za računarskim resursima.   

Slika 1. Metode redukcije dimenzionalnosti zasnovane na glavnim komponentama. Izvor: [3]

Izbor tipa metode glavnih komponenti zavisi od prirode varijabli sadržanih u posmatranom skupu podataka (slika 1) [3s]:

  • Klasična PCA namenjena je za skupove multivarijantnih podataka koje karakterišu numeričke (kvantitativne) kontinualne varijable;
  • Analiza korespondencije (CA – Correspondence Analysis), za analizu velike tabele kontigencije formirane od dve kvalitativne (kategorijske) varijable;
  • Analiza višestruke korespondencije (MCA – Multiple Correspondence Analysis), za analizu tablice podataka koja sadrži više od dve kategorijske varijable;
  • Faktorska analiza mešovitih podataka (FAMD – Factor Analysis of Mixed Data), posvećene analizi skupova koji sadrže i numeričke i kategorijske varijable;
  • Višefaktorska analiza (MFA – Multiple Factor Analysis), posvećene analizi skupova podataka, u kojima su varijable organizovane u grupe.

Osim navedenog PCA se može koristiti i u kombinaciji sa aglomerativnim hijerarhijskim klasterovanjem, što omogućava da se, na primer, izvrši klasterska analiza na bilo kojoj vrsti podataka.

Ovaj blog prikazuje primenu klasične redukcije dimenzionalnosti pomoću PCA.

Primer analize glavnih komponenti u R-u

Dat je primer redukcije dimenzionalnosti pomoću PCA, za anonimizovani skup podataka koji se odnosi na studente studijskog programa Informacione tehnologije Akademije Zapadna Srbija, Odsek u Užicu i njihove ishode učenja tokom perioda 2011–2019. god. Skup sadrži podatke za 424 studenta, i sledeće varijable: y1_mg prosečna ocena nakon prve godine studija, y1_espb broj ESPB nakon prve godine studija, usp_ss uspeh iz srednje škole, usp_mbe uspeh na prijemnom ispitu iz matematike, usp_tk – uspeh na prijemnom ispitu na testu kulture, kao i ocene: Baze Baze podataka, Mat1 Matematika 1, ElElek Elektrotehnika sa elektronikom, OS Operativni sistemi, Mat2 Matematika 2, Engl1   Engleski 1, RU Računarsko upravljanje, AlgSP Algoritmi i strukture podataka.   

># Instalacija i ucitavanje potrebnih paketa
>#library(tidyverse)
>install.packages(c("FactoMineR", "factoextra", "skimr","readxl","GGally","ggpubr","janitor " ))>
library(FactoMineR)
>library(factoextra)
>library(skimr)
>library(readxl)
>library(GGally)
>library(ggpubr)
>library(janitor)

># Ucitavanje podataka i prikaz prva 3 zapisa
# Provera kompletnosti podataka funkcijom skip iz paketa skimr (slika 2)
> skimr::skim(informatika)

Slika 2. Elementi deskriptivne statistike za parove numeričkih varijabli / Izvor: autor

# Iz rezultata funkcije skim, se vidi da nema nedostajucih podataka (missing values) jer je complete_rate 
# jednak 100%, za sve originalne varijable. Funkcija skim generise i sledece podatke (mean-aritmeticku
# sredinu, sd-standardni devijaciju, p0-minimalnu vrednost, percentile p25, p50 i p75, p100-maksimalnu
# vrednost kao i histogramske prikaze modela raspodele za svaku ulaznu varijablu).     
# Za kreiranje korelograma kreirana je funkcija: my_fun i primenjena kroz funkciju ggpairs paketa GGally
# Korelogram ukljucuje kojeficijente korelacije za svaki par numerickih obelezja, dijagrame rasprsenosti sa
# linijom linearne regresije kao i krivu raspodele za svako obelezje (slika 3). 
> my_fun <- function(data, mapping, ...){
+     linreg <- ggplot(data = data, mapping = mapping) +
+         geom_point() +
+         geom_smooth(method=lm, color="#f74843",fill="#F9918E", ...)
+     return(linreg)
+ }
> corscatter <- ggpairs(num, lower = list(continuous = my_fun)) + theme(plot.margin = margin(0, 0, 0, 0, "cm"),
+        axis.text.x = element_text(angle = 45))
> corscatter

Slika 3. Korelogram za parove numeričkih varijabli / Izvor: autor

# Iz dijagrama sa slike 3, se vidi da je veliki broj Pearson-ovih koeficijenata proste linearne korelacije veci 
# od 0.3, odnosno da je skup podataka faktorabilan. Ovo je potvrdjeno i sa KMO (Kaiser Meyer Olkin)
# testom (KMO=0.88, (sto je vece od preporuc. 0.6) i cortest.bartlet testom (funkcijama iz paketa psych).
> psych::KMO(informatika)
Kaiser-Meyer-Olkin factor adequacy
Call: psych::KMO(r = informatika)
Overall MSA = 0.88
> psych::cortest.bartlett(informatika)
R was not square, finding R from data
$chisq
[1] 2760.766
$p.value     # Bartletov test sfericnosti testira hipotezu da su originalne varijable ortogonalne
[1] 0            # kako je p<0.05, prihvata se alternativna hipoteza da su varijable u korelaciji
# Kritican korak u PCA metodologiji je odredjivanje optimalnog broja glavnih komponenti, tj. dimenzionalnosti
# novog, redukovanog prostora. Koriscena su tri kriterijuma: KMO, Horn-ova paralelna analiza (slika 5) kao i funkcija
# estimCV iz paketa missMDA
# Funkcija PCA paketa FactoMineR, pored ostalih elementa generise i sopstvene vrednosti (*.eig).
# Prema KMO kriterijumu, preporucuje se da se zadrze glavne komponente cije sopstvene vrednosti su vece od 1.
# Takodje, objekat klase res.eig, ukazuje da ako se zadrze dve glavne komponente onda je procenat zadrzane varijanse
# iz originalnog skupa 54.4%, dok bi pri zadrzavanju pet glavnih komponenti on iznosio 74.28% (slika 4).
> res.pca <- PCA(informatika, graph = FALSE)

Slika 4. Sopstvene vrednosti i procenat zadržane varijanse – paket FactoMineR / Izvor: autor

> install.packages("paran")
> library(paran)
> par <- paran::paran(informatika,graph = TRUE)
> install.packages("missMDA")
> library(missMDA)
> estimCV<-estim_ncpPCA(informatika,
+                                      method.cv="loo")
> estimCV$ncp
[1] 5

# Rezultati prethodnih testova pokazuju da se 
# moze zadrzati 2 do 5 glavnih komponenti, i time 
# bi se, u novom, redukovanom prostoru, mogli
# prikazati studenti iz originalnog skupa
# informatika, uz zadrzavanje od 54.40% do 
# 74.28% varijanse originalnih podataka.
# Za prikaz strukture i procenat objasnjene
# varijanse unutar glavnih komponenti
# koriscena je funkc. prcomp je iz paketa stats 
# i funkcija fviz_screeplot je iz 
# paketa factoextra.

 

Slika 5. Određivanje optimalnog broja glavnih komponenti – Hornova paralelna analiza / Izvor: autor

# zbog obima, izdvojeno je samo nekoliko vizuelizacija za prve dve glavne komponente (slike 6-9).
> model <- prcomp(informatika,scale = TRUE)
> p1 <- fviz_screeplot(model, addlabels = TRUE, ncp = 12)
> p1            # procenat objasnjene varijanse po komponentama je dat na slici 6.
#                  funkcija fviz_contrib je iz paketa factoextra
>fviz_contrib(model2,choice = "var",axes=1)

Slika 6. Procenat objašnjene varijanse po komponentama / Izvor: autor

Slika 7. Doprinos originalnih varijabli glavnojkomponenti 1(Dim1) / Izvor: autor

>fviz_cos2(model2,choice = "var", axes = 1)
>fviz_cos2(model2,choice = "var", axes = 2)

Slika 8. Objašnjena varijansa (%) originalnih varijabli komponentom 1 (Dim1) / Izvor: autor

Slika 9. Objašnjena varijansa (%) originalnih varijabli komponentom 2 (Dim2) / Izvor: autor

# Sa slike 6 se vidi da prva komponenta obuhvata dominantni deo varijanse skupa podataka informatika (45.9%). 
# Kontribucija originalnih varijabli (Baze, Mat1, Mat2, …) je data, kao primer, za prvu komponentu (Dim1) (slika 7), 
# Na silici se vidi i posecan doprinis originalnih varijabli prvoj komponenti (isprekidana linija). Na slici 8 i 9 su date 
# Cos2 vrednosti za prvu i drugu komponentu, respektivno. Cos2 vrednost pokazuje, koliko dobro je pojedinacna
# originalna varijabla objasnjena odgovarajucom komponentom.
>                                          res.pca$contrib
# Pomocu funkcije PCA iz paketa FactoMineR,
# doprinos originalnih varijabli glavnim
# komponentama, moze se izraziti i numericki
# (slika 10). Vidi se, na primer, da ako
# istrazivac zadrzi pet glavnih komponenti,
# i time 74.29% varijanse, PETOJ glavnoj
# komponenti, najveci doprinos daju: uspeh
# iz srednje skole (usp_ss) i engleski jezik
# (Engl1).

Slika 10. Kontribucija originalnih varijabli za prvih pet dimenzija. Izvor: autor

# Paket FactoMineR  obezbedjue i vektorski prikaz varijabli kao i vizuelizaciju korelacija u formi korelacionog kruga 
#(slika 11, prve dve komponente: Dim1 (45.90%) i Dim2 (8.51%) varijanse). Originalne varijable su predstavljene
# vektorima. Vrednosti na osama su u interval [-1,1], i one predstavljaju korelaciju u novom, redukovanom, prostoru.  
>res.pca <- PCA(informatika, graph = TRUE)
# Na osnovu korelacionog kruga,# varijable usp_tk (test kulture), i 
# usp_mbe (uspeh na prijem. ispitu
# iz matematike) su visoko korelisane,
# sto se moze zakljuciti na osnovu
# ugla koji zaklapaju vektori ovih
# varijabli. Moze se primetiti da su ova
# dva vektora bliska osi Dim2, odnosno
# drugoj glavnoj komponenti.
# Duzina samih vektora, odnosno
# udaljenost od koordinatnog pocetka
# predstvalja meru: koliko je varijabla
# dobro opisana u ovom redukovanom
# prostoru. Na primer, sa slike se vidi
# daje varijabla usp_ss (uspeh iz 
# srednje skole) realtivno lose opisan
# sa Dim1 i Dim2, dok je Mat1
# (Matematrika 1) opisana daleko
# bolje. Skoro sve varijable,
# osim usp_ss i usp_mbe
# su bolje uklopljene u Dim1.
# Na osnovu prikazane analize, moze
# se zakljuciti da se u redukovanom
# prostoru studenti mogu prikazati
# relativno dobro sa samo dve
# dimenzije: Dim1 - Predzanje
# i Dim2 - Postignuca tokom 1. god

Slika 11. Prikaz klastera na dve glavne komponente pomoću PCA algoritma. Izvor: autor

PCA je moćna paradigma, nezaobilazna u svetu modernog poimanja podataka, Data Science-a i Machine Learning-a.

Literatura

[1] https://medium.com/@emykes/principal-component-analysis-in-practice-4363f3b46104

[2] https://towardsdatascience.com/principal-component-analysis-pca-explained-visually-with-zero-math-1cbf392b9e7d

[3] Kassambara A. (2017), Multivariate Analysis I, Practical Guide To Cluster Analysis in R, Unsupervised Machine Learning, Published by STHDA.

[4] Obradovic S., Milivojevic M., Forst Dj., Drndarevic D., (2016), Rational Software soil classificatory for berry fruits based on radial Basis function neural network, international scientific student’s conference , Nitra, April 20, 2016, Slovakia, pp 158-171, ISBN 978-80-552-1492-4. 

Autor teksta:

dr Milovan Milivojević, prof. str. st.

Akademija strukovnih studija Zapadna Srbija – Odsek Užice