DataScience Training



Analiza Corespondențelor (AC)
Feedback form    |       Redare audio    |   Download:    |   


Analiza Corespondențelor (AC)

Introducere

Introducere Click to read  

Analiza corespondenței, AC, este o tehnică de analiză multidimensională care poate traduce aproape orice tip de tabel format din date numerice într-o formă grafică. Obiectul AC sunt matricele de contingenta, ale căror elemente indică de câte ori caracteristicile a două cantități diferite au fost detectate împreună. Scopul principal al AC este de a analiza relațiile dintre două variabile calitative observate într-un colectiv de unități statistice. Acest lucru se realizează prin identificarea unui spațiu "optimal", adică a unei dimensiuni reduse care reprezintă sinteza informațiilor structurale conținute în datele inițiale. Scopul analizei este de a evidenția împletirea legăturilor sau corespondențelor care există între datele examinate.

Cerințe pentru analiza de corespondență

Cerințe pentru analiza de corespondență Click to read  

Pentru a efectua o analiză a corespondenței, este important să analizăm variabilele care urmează să fie utilizate și să înțelegem clar unele dintre caracteristicile lor. În mod specific, variabilele trebuie să îndeplinească următoarele cerințe:

  •  Variabilele trebuie să fie calitative:

Variabilele calitative nu sunt reprezentate de numere, ci de modalități sau categorii. De exemplu, genul, nivelul de educație, starea civilă etc. Aceste modalități trebuie să fie exhaustive și mutual exclusive. Mutual exclusive înseamnă că modalitățile variabilelor nu trebuie să conțină același tip de informație. De exemplu, pentru variabila "culoarea părului", nu se pot introduce modalitățile "păr închis" și "păr brun", deoarece "păr închis" înseamnă și "păr brun" și viceversa. ”Exhausitv” înseamnă că modalitățile unei variabile trebuie să acopere toate posibilitățile. De exemplu, pentru variabila "nivelul de educație", se introduc modalitățile "diplomă", "licență", "masterat". Aceste trei modalități nu acoperă toate posibilitățile de nivel de educație.

  • Variabilele trebuie să fie interdependente:

Înainte de a efectua analiza corespondențelor, este necesar să verificăm gradul de interdependență între cele două variabile luate în considerare, deoarece, în cazul în care acestea ar fi independente, analiza corespondențelor ar putea să nu aibă sens.
Pentru a face acest lucru, se realizează testul chi-pătrat:
H_0: cele două variabile sunt independente
H_1: cele două variabile nu sunt independente
Pentru a interpreta rezultatele testului, observăm valoarea p:

valoarea p < 0,05: ipoteza nulă este respinsă și, în consecință, variabilele sunt considerate a fi interdependente într-o anumită măsură.

 

Cum să efectuați AC

Contingency tables Click to read  

După ce ați verificat cerințele pentru AC, puteți trece la analiza efectivă.

În analiza corespondențelor lucrăm cu tabele de contingenta, care conțin frecvențele conjuncte ale modalităților celor două variabile calitative X și Y. Aceste matrici sunt întotdeauna alcătuite din numere întregi niciodată negative care reprezintă numărul de apariții, adică înregistrări simple ale ceea ce s-a întâmplat. În plus, ambele variabile categoriale au un rol simetric în care toate elementele au aceeași natură.

 

Row Profile Matrix and Column Profile Matrix Click to read  

Matricea profilurilor de rând este obținută prin împărțirea frecvențelor absolute (sau frecvențelor relative) la frecvențele marginale de rând corespunzătoare. Prin urmare:

Tabelul de contingență devine:

Pe marginea de rând avem întotdeauna 1 și aceasta reprezintă suma profilurilor de rând.

Pe marginea coloanei se găsesc profilurile medii, care sunt obținute prin adunarea frecvențelor relative pe coloană; sau prin calcularea mediei elementelor matricei profilului de rând, pe coloană. Aceasta este o medie ponderată, în care ponderile sunt reprezentate de frecvențele marginale de rând fi .  
Lucrând cu frecvențe, se pierde o dimensiune, astfel încât spațiul de rând este reprezentat de un spațiu cu C-1 dimensiuni; Se poate construi o matrice diagonală a frecvențelor marginale de rând
DR, care are profilurile de rând pe diagonala principală. Matricea diagonală a frecvențelor marginale de rând este o matrice R· R, care are dimensiuni egale cu numărul de rânduri și pe diagonala principală conține frecvențele marginale de rând a tabelului de frecvențe relative. O matrice diagonală este o matrice ale cărei elemente generice de pe diagonala principală sunt marginalii de rând, iar deasupra sau dedesubtul acesteia există doar zero-uri. Este întotdeauna o matrice simetrică și pătrată. Cu matricea diagonală a marginalilor de rând se poate construi matricea profilurilor de rând: aceasta se obține prin împărțirea frecvențelor relative la marginalii de rând F/DR.  Dimensiunile matricei F sunt R · C, în timp ce matricea Dare dimensiunea R· R. Deoarece nu se poate face împărțirea directă între matrice, se calculează inversa matricei DR și se înmulțește cu matricea F, rezolvând astfel problema dimensionalității. : DR -1. F .
Același lucru se aplică și pentru coloane, cu unele mici diferențe. Matricea profilurilor de coloană este construită prin împărțirea frecvențelor absolute la marginalii relative de coloană:

Tabelul de contingență devine:

În acest caz, pe marginea coloanei veți avea întotdeauna 1, iar pe marginea de rând veți avea profilul mediu al coloanei. În acest caz, ponderile sunt reprezentate de marginalii de coloană f.j. Evident, chiar și în spațiul de coloană se lucrează cu mai puțin de o dimensiune, deci spațiul de coloană este R-1. 
Se poate construi o matrice diagonală a marginalilor de coloană
Dc, care are profilurile de coloană pe diagonala principală. Matricea diagonală a marginalilor de coloană este o matrice C·C, care are dimensiuni egale cu numărul de coloane și pe diagonala principală conține marginalii de coloană ai tabelului de frecvențe relative. O matrice diagonală este o matrice ale cărei elemente generice de pe diagonala principală sunt marginalii de coloană, iar deasupra sau dedesubtul acesteia există doar zero-uri. Este întotdeauna o matrice simetrică și pătrată. 
Cu matricea diagonală a marginalilor de coloană: aceasta se obține prin împărțirea frecvențelor relative la marginalii de coloană F/DR. Dimensiunile matricei F sunt R · C, în timp ce matricea Dc  are dimensiunea C · C. Deoarece împărțirea între matrici nu poate fi efectuată direct, se calculează inversa matricei DC    și se înmulțește cu F prin post-înmulțire, rezolvând astfel problema dimensionalității:  F . Dc -1 

Distanțele Click to read  

În analiza corespondențelor este necesar să înțelegem ce distanță există între valorile respective, în scopul de a înțelege dacă modalitățile sunt apropiate sau îndepărtate una de cealaltă și, prin urmare, dacă se aseamănă sau nu. Acest lucru poate fi realizat prin observarea frecvențelor: cu cât sunt mai mici, cu atât sunt mai apropiate, și viceversa. Există diferite metode de calcul al distanței, cum ar fi distanța euclidiană și distanța chi-pătrat.

Distanța euclidiană este cea mai simplă și acordă mai multă importanță diferențelor mari în defavoarea celor mici. Se calculează prin diferența dintre frecvențele relative și ridicarea lor la pătrat.

 

Pentru profilurile de rând:                        Pentru profilurile de coloană:

Distanța chi-pătrat recompensează distanțele mai mici deoarece frecvențele cu valori mici sunt reponderate în raport cu rândurile, introducând în formulă inversul frecvențelor marginale de coloană (respectiv inversul frecvențelor marginale de rând). Dezavantajul distanței chi-pătrat este că valoarea reciprocă a frecvențelor marginale de coloană (sau de rând) poate tinde către zero și, prin urmare, o singură valoare poate contribui excesiv la calculul distanței.

 

 

Spațiul rândurilor și spațiul coloanelor Click to read  

În spațiul rândurilor cele două componente sunt: 

  • Profile de rând:  DR-1∙F
  • Metrica: DC-1

Să începem cu următoarea formulă:

După înlocuirile adecvate rezultă:

Obiectivul analizei corespondențelor constă în găsirea setului de axe unitare care permite maximizarea distanțelor dintre proiecțiile profilurilor de rând. Trebuie, așadar, să căutăm acei vectori care maximizează proiecțiile. Deoarece vectorii u pot fi infiniți, se adaugă restricția normei unitare.

Problema de maximizare: Se maximează inerția explicată (variația explicată), care corespunde variabilității pentru variabilele cantitative.

Pentru a rezolva problema de maximizare cu restricții, utilizați metoda multiplicatorilor Lagrange:

= multiplicatorul Lagrange, care este un scalar;

u=  vectorul ponderilor, pe care dorim să îl determinăm

Prin efectuarea înlocuirilor necesare, vom avea:

Efectuăm operațiile de transpunere, înlocuim matricea identitate I cu o   și   o înlocuim cu .  WPutem apoi elimina transpusa din matricile diagonale și  , deoarece transpusa unei matrice diagonale nu se modifică.

Rezultă:

Calculăm derivatele parțiale, derivând Lagrange-anul în raport cu u și le egalăm cu 0:

Se înmulțește ecuația cu  :

Dacă înlocuim transpunerea profilelor de rând și matricea profilelor de coloană cu S, putem scrie ecuația caracteristică sub forma:

Maximizarea inerției explicate a profilelor de rânduri este echivalentă cu descompunerea acestei matrice în valori proprii și vectori proprii ai acesteia. Prima valoare proprie este asociată cu primul vector propriu care explică inerția maximă. Vectorii proprii care se extrag ulterior vor fi extrași ortogonal, aplicând constrângerea de ortogonalitate:

Utilizăm constrângerea de ortogonalitate pentru a putea alege cea de-a doua componentă care va explica inerția care nu este explicată de prima componentă. Evident, prima componentă extrasă explică inerția maximă, adică alungirea maximă a norului de puncte. 

În spațiul coloanelor sunt două componente:

  • Profilul de coloana: 
  • Metrica:

Începem cu formula:

După înlocuire, se obține:

Problema de maximizare care trebuie rezolvată cu multiplicatori Lagrange este:

Procedând ca în spațiul rândurilor, în final vom obține:

Înlocuind matricea profilelor de coloană și metrica transpusă a profilelor de rând cu  se obține ecuația caracteristică:

Maximizarea geometrică a inerției explicate, și anume, realizarea unei cantități cât mai mici de informații pierdute și a unei cantități cât mai mari de informații observate, va fi următoarea: distanța să fie cât mai mică și distanța  cât mai mare.

Prin urmare, trebuie să găsim dreapta f (în roșu) care interpolează punctele din spațiul vectorial, astfel încât distanța dintre toate punctele din spațiu și punctele proiectate ortogonal pe dreapta f să fie cea mai mică posibilă.
Valorile proprii în spațiul liniilor corespund vectorilor proprii în spațiul coloanelor, astfel încât valorile proprii ale lui corespund celor ale lui S* . Vectorii proprii sunt egali între ei, cu excepția unei constante. Astfel, atunci când trebuie să maximizăm, nu trebuie să descompunem în valori proprii și vectori proprii S și S* , ci doar să o facem cu unul singur.  Cantitatea de inerție explicată este egală indiferent dacă calculăm  S sau S* , relația dintre cele două spații este reprezentată de formulele de tranziție:

Spațiul rândurilor: 

Cu:

După efectuarea substituțiilor corespunzătoare, se obține:

Rezultă:

Pentru spațiul rândurilor:

Spațiul coloanelor:

Unde:

După efectuarea substituțiilor corespunzătoare, se obține:

Rezultă:

 Pentru spațiul coloanelor:

 

Exemplu cu R

Exemplu cu R Click to read  

Verificarea unei posibile relații între distribuția animalelor și diferitele regiuni italiene. Datele se referă la anul 2011, colectate de către băncile disponibile pe site-ul Istat.
Ipoteză: diferitele regiuni, în funcție de caracteristicile teritoriale și de nevoile populației, aleg să crească anumite capete de bovine mai degrabă decât altele.
Setul de date:

Importăm setul de date:

În câmpul "Row names" (Nume rânduri), selectați formularea: "use first column" (utilizați prima coloană) pentru a avea etichetele atât ale indivizilor, cât și ale variabilelor pe grafice. În câmpul zecimale, selectăm " comma " (virgulă).

With the command:

X<-as.matrix(nome_del_dataset)

Atribuim lui X, ca obiect, setul de date utilizat în analiză.

Înainte de a putea efectua AC este necesar să se stabilească gradul de interdependență dintre cele două personaje luate în considerare, aceasta deoarece în cazul în care acestea sunt independente s-ar putea să nu aibă sens să se continue AC. Pentru a verifica acest lucru, efectuăm testul chi-pătrat.

chiquadro<-chisq.test(X)

Comanda este următoarea:

Se poate observa că valoarea p este mai mică decât nivelul de semnificație cel mai frecvent utilizat, și anume 0,05. Prin urmare, putem respinge ipoteza nulă de independență statistică între cele două variabile și putem continua analiza.

Acum dorim să creăm o matrice de frecvențe relative F.

Calculăm numărul de eșantioane, cu comanda:

n<-sum(X)

și apoi împărțind matricea de pornire (deci toate frecvențele comune) la numărul de eșantioane se obține matricea F. Comandă:

F<-X/n

Următorul pas este obținerea tabelelor de profiluri de rânduri și coloane. Pentru a face acest lucru, în primul rând, este necesar să se calculeze marginalele rândului și ale coloanei. Respectiv, comenzile sunt:

sumrow<-apply(F,1,sum)

sumcol<-apply(F,2,sum)

Apoi calculăm matricea diagonală a frecvențelor marginale de rând și inversa acesteia cu ajutorul comenzilor:

Dr<-diag(sumrow)

Dr_inv<-solve(Dr)

 

Acum putem calcula profilurile rândurilor. În termeni matriciali, înmulțim în prealabil inversa matricei diagonale a rândului marginal cu matricea frecvențelor relative. Comanda care trebuie folosită este:

Pr<-Dr_inv%*%F

Același lucru pentru profilurile coloanelor, ținând cont de faptul că, în acest caz, inversa matricei coloanelor trebuie să fie post-multiplicată la matricea frecvențelor relative.

Dc<-diag(sumcol)

Dc_inv<-solve(Dc)

Pc<-F%*%Dc_inv

Acum putem calcula distanțele dintre puncte. După cum am menționat deja, există două tipuri de distanțe: Euclidiană și Chi-pătrat.

Profilele rândurilor de distanțe euclidiene sunt:

d_euc_r<-dist(rbind(Pr[1,],Pr[2,]))

Profilele coloanelor de distanțe euclidiene sunt:

d_euc_c<-dist(rbind(Pr[,1],Pr[,2]))

Profilele rândurilor de distanțe chi-pătrat sunt:

d_r<-pr[1,]-pr[2,]

d<-d_r^2/sumcol

d_chi_r<-sqrt(sum(d))

 

Profilele coloanelor de distanțe chi-pătrat sunt:

dc<-Pr[,1]-Pr[,2]

dc<-dc^2/sumrow

d_chi_c<-sqrt(sum(dc))

Ecuația caracteristică a matricei profilului de rânduri:

S<-t(Pr)%*%Pc

Deoarece matricea S nu este simetrică, este necesar să o diagonalizăm pentru a obține S_tilde:

A<-t(F)%*%Dr_inv%*%F #simmetria

Dc_12<-diag(sumcol^(-1/2))

S_tilde<-Dc_12%*%A%*%Dc_12

Acum trebuie să maximizăm inerția explicată prin descompunerea matricei în valori proprii și vectori proprii:

AC<-eigen(S_tilde)

lambda<-as.matrix(AC$values)

lambda<-lambda[-1,]

w<-AC$vectors

u<-Dc^(1/2)%*%w

u<-u[,-1]

 

 

Ecuația caracteristică a matricei profilului de coloane:

S_star<-F%*%Dc_inv%*%t(F)%*%Dr_inv

Pentru a ne deplasa de la u la v, folosim formule de tranziție (deoarece cantitatea de inerție explicată este egală atât în spațiul rândurilor, cât și în cel al coloanelor).

sq_lambda<-diag((sqrt(lambda))^(-1))

v<-F%*%Dc_inv%*%u%*%sq_lambda

Calculăm factorii și coordonatele, mai întâi spațiul rândurilor și apoi al coloanelor: 

fp_r<-Dc_inv%*%u

fp_c<-Dr_inv%*%v

PHI_coord<-Dc_inv%*%t(F)%*%fp_c

PSI_coord<-Dr_inv%*%F%*%fp_r

Se afișează graficul coordonatelor principale:

PRINCOORD<-rbind(PSI_coord,PHI_coord)

rows<-row.names(X);columns<-colnames(X)

plot(PRINCOORD[,1],PRINCOORD[,2],type="n",
main="Main Coordinates",xlab="Axis1",ylab="Axis2")+ text(PRINCOORD[1:20,1],PRINCOORD[1:20,2],labels=rows,col="springgreen4")

text(PRINCOORD[21:29,1],PRINCOORD[21:29,2],labels=columns,col="violetred")

abline(h=0,v=0,lty=2,lwd=1.5)

Rezultă:

Dacă ne uităm la acest grafic, putem spune, de exemplu, că în regiuni precum Abruzzo, Molise, Umbria se cresc în principal iepuri. 
Alegem componentele

inertia<-sum(diag(S))-1

sum(lambda)

in_exp<-lambda/inertia

in_exp_<-cumsum(in_exp)

Vizualizăm rezultatele obținute:

Prima dimensiune explică singură 58,57% din variabilitate, iar primele trei împreună explică 92,26% din variabilitatea globală a datelor.
Rezultatele obținute pot fi afișate grafic cu ajutorul graficului scree-plot a inerției explicate:

screeplot<-barplot(in_exp,main="Scree-plot inertia", xlab="Size", ylab="Lambda", col="lightblue")

Pentru calitatea reprezentării:

  • pentru a evalua cât de mult influențează sau participă un mod la axa factorială, se calculează contribuțiile absolute, CA, atât pentru rânduri, cât și pentru coloane:

ca_r<-Dr%*%fp_c^2

ca_c<-DC%*%fp_r^2

  • Pentru a evalua calitatea reprezentării, calculăm contribuțiile relative, CR. Acestea oferă o măsură mai bună a reprezentării punctelor pe axe și este dată de cosinusul unghiului format de vectorul de proiecție al punctului și vectorul relativ i (sau j) în punctul i (sau j) din spațiul său original:

G<-matrix(sumcol,20,9,byrow=T)

di<-(Pr-G)^2%*%Dc_inv

d_ig<-apply(di,1,sum)

cos2r<-PSI_coord^2/d_ig

H<-matrix(sumrow,20,9)

dj<-Dr_inv%*%(Pc-H)^2

d_jh<-apply(dj,2,sum)

COS2C<-PHI_coord^2/d_jh

R oferă un pachet numit FactoMineR pentru analiza corespondențelor, care adaugă informații despre indivizi și variabile și vă permite să creați un grafic bidimensional comun al indivizilor și variabilelor. 
Pe R pentru a putea utiliza acest pachet trebuie mai întâi să îl descărcați:

După ce l-ați instalat, trebuie să îl apelați cu comanda
library(FactoMineR)

Să trecem la crearea graficului bidimensional Persoane și variabile:

CA(X, ncp = 5, row.sup = NULL, col.sup = NULL, quanti.sup=NULL, quali.sup = NULL, graph = TRUE, axes = c(1,2), row.w = NULL)

Grafic, obținem:

 

Interpretarea rezultatelor:
Putem spune că ipoteza inițială este confirmată.  În special, regiunile cele mai dedicate creșterii ovinelor par a fi Toscana, Sardinia și Basilicata, iar acest lucru poate fi explicat prin faptul că aceste regiuni sunt zone de munte și de transhumanță. Caii sunt crescuți mai ales în Puglia, Liguria și Sicilia, deoarece aceste animale au fost întotdeauna folosite pentru muncă în mediul rural. Bovinele sunt prezente în Trentino Alto-Adige, Veneto, Piemont, Lombardia și Emilia-Romagna; de fapt, aceste regiuni au o tradiție de creștere mai dezvoltată pentru uz alimentar. Iepurii apar mai ales în Umbria, Abruzzo și Molise. În schimb, porcii par să fie crescuți mai mult în Marche, Campania și Molise; Aceste regiuni au, de asemenea, o tradiție de creștere mai dezvoltată pentru uz alimentar.
Caprele, pe de altă parte, sunt plasate la mijlocul axei, probabil pentru că nu există regiuni care să prefere creșterea lor.



Keywords

AC, Variabilele calitative, inerția explicată, valorile proprii.

Objectives/goals:

Scopul acestui modul este de a introduce și explica tehnica Analizei Corespondențelor (AC).

La sfârșitul acestui modul veți putea:

•    Cunoaște logica AC

•    Cunoaște cerințele de aplicare a AC

•    Conduce o AC

•    Conduce o AC în R cu pachetul FactoMineR.


Description:

În acest modul de instruire vă va fi prezentată tehnica de analiză multidimensională numită Analiză a Corespondenței, AC.

Analiza Corespondenței este o formă de scalare multidimensională, care construiește în esență un fel de model spațial care arată asocierile între un set de variabile categoriale. Dacă setul include doar două variabile, metoda este de obicei numită Analiză Simplă a Corespondenței (ASC). Dacă analiza implică mai mult de două variabile, atunci este de obicei numită Analiză Multiplă a Corespondenței (AMC). În acest modul ne vom ocupa de analiza corespondențelor simple, obiectivul acestei analize este de a reduce dimensionalitatea fenomenului investigat păstrând totuși informațiile conținute de acesta. Tehnica este aplicabilă la fenomene măsurate cu variabile calitative.

Bibliography

Van der Heijden, P. G. M. & de Leeuw, J. (1985). Correspondence analysis used complementary to loglinear analysis, Psychometrika, 50, pp. 429-447.

Le, S., Josse, J. & Husson, F. (2008). FactoMineR: An R Package for Multivariate Analysis. Journal of Statistical Software. 25(1). pp. 1-18.

Mineo, A. M. (2003). Una Guida all'utilizzo dell'Ambiente

Statistico R, http://cran.r-project.org/doc/contrib/Mineo-dispensaR.pdf.


Related training material

Parteneri

Università del Salento
Demostene Centro Studi
IHF
IWS
Universidad de Oviedo
ASE
WAI