Você está na página 1de 6

Analiza factoriala in R

Analiza factoriala este o tehnica matematica (statistica) conceputa pentru a lega un


set de variabile observate de un numar mai mic de factori numiti factori latent.
Dimensiunea latent rezultata este definita de ceea ce au in comun variabilele
observate utilizate in analiza.
Obiectivele metodei sunt: -sa extraga un numar redus de factori(=economia)
-prin rotirea factorilor, sa se obtina saturatii mai mari
pentru acelasi indicator numai intr-un singur factor (=interpretabilitatea)
O structura factoriala este cu atat mai simpla cu cat are mai putini factori
(=variabile latente).
Coeficientii de saturatie (=loadings) masoara intensitatea influentei unui factor
asupra unui indicator.
Setul de date dataset_exploratoryFactorAnalysis.csv contine un esantion
ipotetic de 300 raspunsuri ale 300 studenti referitoare la materiile
favorite. Raspunsurile sunt exprimate in note de la 1 la 5, care reprezinta
o scala de la imi displace total la imi place foarte mult.
Sa se cerceteze daca exista variabile latente la baza raspunsurilor
studentilor.

>data<-read.csv("C:/dataset_exploratoryFactorAnalysis.csv")
>data
>cordata<-cor(data) Se calculeaza matricea coeficientilor de corelatie.
> covdata<-cov(data) Se calculeaza matricea de covarianta.
> fa_1<-factanal(data,2,covmat=NULL,rotation="varimax")
Functia factanal(x,factors,data=NULL,covmat=NULL,nobs=NA,rotation=varimax,
) realizeaza analiza factoriala.
x=matrice numerica
factors=nr. de factori care vor fi obtinuti
covmat=matricea de covarianta. Desigur matricea de corelatie poate inlocui in
analiza matricea de covarianta.
nobs=numarul observatiilor, folosit daca covmat este o matrice de covarianta
covmat=NULL nu folosim matricea de covarianta, ci pe cea de corelatie.
Obs. 90% din analizele factoriale folosesc matricea de corelatie.
1

rotation=numele functiei de rotatie folosite; poate lua valorile: varimax,


promax, none (nu se foloseste nici o functie de rotatie).
Scopul unei rotatii este de a obtine coeficienti de saturatie (=loadings) care sunt
mai usor de interpretat, cu un nr. mai mic de coeficienti mai mari si multi coeficienti
de valoare mai mica.
> fa_1

Call:
factanal(x = data, factors = 2, covmat = NULL, rotation = "varimax")

Uniquenesses:
BIO GEO CHEM ALG CALC STAT
0.252 0.375 0.249 0.374 0.048 0.715

Loadings:
Factor1 Factor2
BIO 0.855 0.133
GEO 0.779 0.135
CHEM 0.865
ALG
CALC

0.791
0.971

STAT 0.170 0.506

Factor1 Factor2
SS loadings

2.124 1.863

Proportion Var 0.354 0.311


Cumulative Var 0.354 0.665

Test of the hypothesis that 2 factors are sufficient.


The chi square statistic is 2.94 on 4 degrees of freedom.
The p-value is 0.568
2

Unicitatea (=uniqueness) este proportia din varianta unei variabile care nu este
explicata de toti factorii impreuna. O unicitate foarte mare indica faptul ca o
variabila nu este conectata cu nici un factor.
Din analiza factoriala de mai sus rezulta:
Variabila1 =BIO= 0.855* Factor1+ 0.133*Factor2
Variabila 2=GEO= 0.779* Factor 1 + 0.135* Factor 2, etc.
SS Loadings=suma patratelor incarcaturilor factorilor
2.124= 0.855 2 0.775 2 0.865 2 0.170 2 , etc.
Proportion Var 0.354 0.311
35,4% din varianta este explicata de factorul 1, iar 31,1% de factorul al 2-lea.
> plot(fa_1$loadings) Se grupeaza variabilele pe baza factorilor care le afecteaza.

1.0
0.8
0.6
0.2

0.4

Factor2

0.0

0.2

0.4

0.6

0.8

Factor1

O alta varianta de reprezentare cu etichetarea factorilor este:


>load<-fa_1$loadings[,1:2] Se retin primii 2 factori (in acest caz, singurii).
> plot(load,type="n")
> text(load,labels=names(data),cex=0.7)

1.0
0.8
0.6

ALG

STAT

0.2

0.4

Factor2

CALC

GEO

BIO
CHEM

0.0

0.2

0.4

0.6

0.8

Factor1
Din figura se observa ca materiile Calc(=Calculus, analiza matematica),
Alg(=algebra), Stat(=statistica) , deci stiintele exacte, determina factorul 2,
reprezentativ pentru interesul studentului in aceste discipline.
Materiile Geo(=geografie), Bio(=biologie), Chem(=chimie) determina factorul 1.
Factorul 1 exprima varianta raspunsurilor in proportie de 35,4%, iar factorul 2 in
proportie de 31,1%.
Determinarea numarului de factori extrasi
Se instaleaza pachetul psy.
Dupa instalarea lui:
> library(psy)
> scree.plot(fa_1$correlation)
5

Screeplotul are aceeasi interpretare ca in cazul PCA. Conform lui, alegem doar
primul factor.

3
2
1
0

Eigenvalue

Scree Plot

Dimension

Você também pode gostar