DataScience Training



Análisis de correspondencia, AC

Análisis de Correspondencias

Introducción

Análisis de Correspondencias (AC) Click to read  

El análisis de correspondencias, AC, es una técnica de análisis multidimensional que es capaz de traducir casi cualquier tipo de tabla que consiste en datos numéricos en forma gráfica. El objeto de las CA son las matrices de contingencia, cuyos elementos indican el número de veces que se han detectado juntas las características de dos magnitudes diferentes. El objetivo principal del AC es analizar las relaciones entre dos variables y cualitativas observadas en un conjunto de unidades estadísticas. Esto se hace a través de la identificación de un espacio "óptimo", es decir, de una dimensión reducida que representa la síntesis de la información estructural contenida en los datos originales. El propósito del análisis es sacar a la luz el entrecruzamiento de vínculos o correspondencias que existen entre los datos bajo examen.

Requisitos para el análisis de coincidencia

Requisitos para el análisis de coincidencia Click to read  

Para realizar el análisis de correspondencias es importante analizar las variables a utilizar para tener claras algunas de sus características. En concreto, las variables deben cumplir los siguientes requisitos:

 

  • Las variables deben ser Cualitativas :

Las variables cualitativas son variables que no están representadas por números, sino por modalidades, por ejemplo: género, nivel de educación, estado civil, etc. Estas modalidades, también llamadas categorías, deben ser exhaustivas y mutuamente excluyentes. Mutuamente excluyente significa que las modalidades variables no deben contener el mismo tipo de información. Por ejemplo, para la variable "color de cabello" no se pueden ingresar los modos "cabello oscuro" y "cabello castaño", ya que cabello oscuro también significa cabello castaño y viceversa.  Estaustivo significa que las modalidades de una variable deben tener en cuenta todas las posibilidades. Por ejemplo, para la variable "nivel de estudios" se insertan las modalidades "diploma", "licenciatura", "título de segundo nivel". Estas tres modalidades no tienen en cuenta todos los posibles niveles de educación.

 

  • Las variables deben ser interdependientes :

Antes de realizar el análisis de las correspondencias es necesario verificar el grado de interdependencia entre las dos variables consideradas, ya que si fueran independientes no tendría sentido realizar el análisis de los partidos.

 

Para hacer esto, realice la prueba de chi-cuadrado:

H0: las dos variables son independientes

H1: las dos variables no son independientes

 

Para interpretar los resultados de la prueba observamos el p-valor:

p-valor < 0,05: se rechaza la hipótesis nula y en consecuencia las variables se consideran con cierto grado de dependencia.

Cómo conducir CA

Tablas de contingencia Click to read  

Después de verificar los requisitos de CA, puede pasar al análisis real.

En el análisis de correspondencias trabajamos con tablas de contingencia, que contienen las frecuencias conjuntas de las modas de las dos variables cualitativas X e Y. Estas matrices están formadas siempre por enteros nunca negativos que son conteos, es decir, simples registros de lo ocurrido. Además, ambas variables categóricas juegan un papel simétrico en el que todos los elementos tienen la misma naturaleza.

X, Y son las variables cualitativas.

x1, x2 , x3: son las modas de la variable de X

y1, y2 , y3: son las modas de la variable de Y

ni,j: son las frecuencias conjuntas absolutas, es decir, las frecuencias de los pares, por ejemplo n1,1X=x1; Y= y1

ni: son las filas marginales: 

n·j: son los marginales de columna: 

Estos son la suma de la fila (o columna) fija de las frecuencias conjuntas en los modos de Y (para las columnas en los modos de X).

n = es el número de muestra, que se puede obtener sumando los marginales de fila o columna: 

Puede cambiar de frecuencias absolutas a frecuencias relativas dividiendo cada frecuencia absoluta por n: 

Matriz de Perfil de Fila y Matriz de Perfil de Columna Click to read  

La matriz de perfiles de fila se obtiene dividiendo las frecuencias absolutas (o frecuencias relativas) por los márgenes de fila respectivos. Por lo tanto:

 

La tabla de contingencia será:

En los márgenes de la fila tenemos todos 1 y esto representa la suma de los perfiles de fila.

En los márgenes de la columna se encuentran los perfiles medios que se obtienen sumando las frecuencias relativas por columna; o promediando los elementos de la matriz de perfil de fila, por columna. Este es un promedio ponderado, donde las masas están representadas por las filas marginales fi.

Trabajar con frecuencias pierde dimensión, por lo que el espacio fila se representa por un espacio C-1 dimensiones, es decir:

Se puede construir una diagonal matriz de marginales de fila DR, que tiene perfiles de fila en la diagonal mayor. La matriz diagonal de filas marginales es una matriz R· R, que tiene dimensiones iguales a las filas y en la diagonal mayor contiene las filas marginales de la tabla de frecuencias relativas. Una matriz diagonal es una matriz cuyo elemento genérico en la diagonal mayor es el marginal de fila, encima o debajo de ella, son todos ceros. Siempre es una matriz simétrica y cuadrada. Con la matriz diagonal de márgenes de fila se puede construir el arreglo de perfiles de fila: se obtiene dividiendo las frecuencias relativas por los márgenes de fila . Las dimensiones de F son R· C, mientras que DR tiene dimensión R· R, como no se puede hacer la división entre matrices, se calcula la inversa DR y se multiplica por F , resolviendo así el problema de dimensionalidad:  DR-1·F.

Lo mismo ocurre con las columnas, con algunas pequeñas diferencias.

La matriz de perfiles de columna se construye dividiendo las frecuencias absolutas por los márgenes de columna relativos:

La tabla de contingencia que obtendrás será:

En este caso en los marginales de la columna tendrás todo 1 y en los marginales de la fila tendrás el perfil medio de la columna. En este caso las masas están representadas por los marginales de las columnas f.j. Obviamente, incluso en el espacio de columnas se trabaja en menos de una dimensión, por lo que el espacio de columnas es R-1.

Se puede construir una matriz diagonal de columnas marginales DC, que tenga perfiles de columna en la diagonal mayor. La matriz diagonal de marginales de columna es una matriz C·C, que tiene dimensiones iguales a las columnas y en la diagonal mayor contiene los marginales de columna de la tabla de frecuencias relativas. Una matriz diagonal es una matriz cuyo elemento genérico en la diagonal mayor es el marginal de columna, arriba o abajo de ella, son todos ceros. Siempre es una matriz simétrica y cuadrada. Con la matriz diagonal de marginales de columna se puede construir la matriz de perfiles de columna : se obtiene dividiendo las frecuencias relativas entre los marginales de columna . Las dimensiones de F son R· C, DC teniendo dimensión C·C, dado que no se puede hacer la división entre matrices, se calcula la inversa Dy posmultiplica a F , resolviendo así el problema de dimensionalidad:   F·DC-1.

Distancias Click to read  

En el análisis de correspondencias es necesario entender qué distancia hay entre los valores, esto para entender si las modalidades están lejos o cerca entre sí y por lo tanto si se parecen o no. Puedes hacer esto observando las frecuencias: cuanto más bajas son, más cerca están y viceversa. Existen varios métodos para calcular la distancia: distancia euclidiana y distancia chi-cuadrado.

La distancia euclidiana es la más sencilla y premia las distancias más altas a expensas de las más bajas. Se calcula haciendo la diferencia de las frecuencias relativas elevándolas al cuadrado.

Para perfiles de fila:

Para perfiles de columna:

La distancia chi-cuadrado premia las distancias más bajas porque las frecuencias con número bajo son reponderadas con respecto a las filas, insertando en la fórmula la inversa de la marginal de columna (respecto a las columnas, insertando en la fórmula la inversa de la marginal de fila ). La desventaja de la distancia chi-cuadrado es que el recíproco de los marginales de columna (o fila) puede tender a cero y, por lo tanto, una sola respuesta puede contribuir en exceso al cálculo de la distancia.

Espacio de Filas y Espacio de Columnas Click to read  

En el espacio de filas, los dos componentes son:

  • Perfil de fila: DR-1∙F
  • Métrico: DC-1

Comencemos con la fórmula:

Haciendo las sustituciones apropiadas:

El objetivo del análisis de correspondencias es el conjunto de ejes unitarios que permiten maximizar las distancias entre las proyecciones de los perfiles de fila. Por lo tanto, debemos buscar aquellos vectores que maximicen las proyecciones. Dado que los vectores  pueden ser infinitos, se agrega la restricción de la norma unitaria.

Problema de maximización: Maximizar la inercia explicada (variación explicada), que corresponde a la variabilidad para variables cuantitativas.

Para resolver el problema de maximización con restricciones, utilice el método de los multiplicadores de Lagrange:

λ = multiplicador de Lagrange, que es un escalar;

u = vector de pesos que buscamos

Realizando las sustituciones necesarias, tendremos:

Realizamos las operaciones de transposición, sustituimos a DR∙DR-1 por la matriz identidad I y [(-λ)·(-1)] la reemplazamos por λ. Entonces podemos eliminar la transpuesta de las matrices diagonales DC-1 y DR-1, ya que la transpuesta de una matriz diagonal no cambia. Conseguir:

Calculamos las derivadas parciales, derivando el lagrangiano respecto a u y las igualamos a 0:

Multiplica la ecuación por DC-1:

Si reemplazamos la transposición de perfiles de fila y la matriz de perfiles de columna con S , podemos escribir la ecuación característica como:

Maximizar la inercia explicada de los perfiles de fila equivale a descomponer esta matriz en autovalores y autovectores de la misma. El primer valor propio está asociado con el primer vector propio que explica la inercia máxima. Los autovectores que se extraigan posteriormente , se extraerán ortogonalmente poniendo la restricción de ortogonalidad

Usamos la restricción de ortogonalidad para poder elegir el segundo componente que explicará la inercia que no explica el primer componente. Obviamente, la primera componente extraída explica la máxima inercia, es decir, la máxima elongación de la nube de puntos.

En el espacio de columnas dos componentes son:

  • Perfil de columna: F·DC-1
  • Métrico: DR-1

Comencemos con la fórmula:

Reemplazamos y obtenemos

El problema de maximización a resolver con multiplicadores de Lagrange es:

Procediendo como en el espacio de las filas, finalmente obtendremos:

Sustituyendo la matriz de perfiles de columna y la métrica transpuesta de perfiles de fila por S* obtenemos la ecuación característica:

Maximizar geométricamente la inercia explicada, es decir, hacer que la información perdida sea lo más pequeña posible y la información observada lo más grande posible, será: hacer la distancia lo más pequeña posible M1H1 y la distancia OH1 lo más grande posible.

Por tanto, debemos encontrar la recta f (en rojo) interpolando los puntos del espacio vectorial, para que la distancia entre todos los puntos del espacio y los puntos proyectados ortogonalmente sobre la recta f sea la mínima posible.

Los valores propios en el espacio de filas corresponden a los vectores propios en el espacio de columnas, por lo que los valores propios de S corresponden a los de S*. Los vectores propios son iguales entre sí excepto por una constante. Entonces, cuando tenemos que maximizar, no necesitamos descomponer en valores propios y vectores propios S y S*, solo hacerlo con uno. La cantidad de inercia explicada es igual ya sea que calculemos S o S*, la relación entre los dos espacios está representada por las fórmulas de transición:

Espacio de filas :

Con:

Aplicando las sustituciones adecuadas:

Conseguir:

Para el espacio de las filas, por lo tanto:

Espacio de columna:

Dónde:

Aplicando las sustituciones adecuadas:

Conseguir:

Para el espacio de la columna:

 

Ejemplo con software R Click to read  

Queremos estudiar la posible relación entre las distribuciones del ganado y las diferentes regiones italianas. Los datos se refieren al año 2011, recogidos por los bancos disponibles en la web del Istat.

Hipótesis: las distintas regiones, según las características territoriales y las necesidades de la población, optan por criar unas cabezas de ganado frente a otras.

Conjunto de datos:

Importamos el conjunto de datos:

En el campo row names, seleccionamos: “use first column" para tener las etiquetas de individuos y variables en los gráficos.

En el campo decimal seleccionamos "comma".

Con el comando:

X<- as.matrix ( nombre_del_conjunto de datos)

Atribuimos a X, como objeto, el conjunto de datos utilizado en el análisis.

Antes de poder realizar el AC es necesario establecer el grado de interdependencia entre las dos variables consideradas, esto se debe a que en el caso de que sean independientes puede no tener sentido continuar con el AC. Para verificar esto realizamos la prueba de chi-cuadrado.

El comando es: 

Nombre del objeto en R<- chisq.test (X)

Se puede observar que el valor de p es inferior al nivel de significación más utilizado, es decir, 0,05. Por lo tanto, podemos rechazar la hipótesis nula de independencia estadística entre las dos variables y podemos continuar con el análisis.

Ahora queremos crear una matriz de frecuencias relativas F.

Calculamos el número de muestra, con el comando:

n<-sum(X)

y luego dividiendo la matriz inicial (por lo tanto todas las frecuencias conjuntas) por el número de muestra obtenemos la matriz F . Dominio:

F<-X/n

El siguiente paso es obtener las tablas de perfiles fila y columna. Para ello, en primer lugar, es necesario calcular las sumas de fila y columna. Respectivamente los comandos son:

umrow<-apply(F,1,sum)

sumcol<-apply(F,2,sum)

Luego calculamos la matriz diagonal de los marginales de fila y su inversa con los comandos:

Dr<-diag(sumrow)

Dr_inv<-solve(Dr)

Ahora podemos calcular perfiles fila. En términos matriciales, premultiplicamos la inversa de la matriz diagonal de la fila marginal a la matriz de frecuencias relativas. El comando a utilizar es:

Pr <- Dr_inv %*%F

Lo mismo para los perfiles de columnas, recordando que en este caso se debe postmultiplicar la inversa de la matriz de columnas por la matriz de frecuencias relativas.

Dc<-diag(sumcol)

Dc_inv<-solve(Dc)

Pc<-F%*%Dc_inv

Ahora podemos calcular las distancias entre los puntos. Como ya se mencionó, hay dos tipos de distancia: euclídea y chi-cuadrado .

Distancia euclídea para perfiles fila:

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

Distancia euclídea para perfiles columna:

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

Distancia chi-cuadrado para perfiles fila:

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

d<-d_r^2/ sumcol

d_chi_r <-sqrt(sum(d))

Distancia chi-cuadrado para perfiles columna:

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

dc<-dc^2/sumrow

d_chi_c<-sqrt(sum(dc))

La ecuación característica de la matriz de perfiles fila es:

S<-t( Pr )%*%Pc

Como la matriz S no es simétrica, es necesario diagonalizarla para obtener S_tilde :

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

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

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

Ahora tenemos que maximizar la inercia explicada descomponiendo la matriz en autovalores y vectores propios:

AC<-eigen(S_tilde)

lambda<-as.matrix(AC$values)

lambda<-lambda[-1,]

w<-AC$vectors

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

u<-u[,-1]

La ecuación característica de la matriz de perfiles de columna es:

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

Para pasar de u a v, usamos fórmulas de transición (ya que la cantidad de inercia explicada es igual por filas y columnas).

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

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

Calculamos factores y coordenadas, primero por filas y luego columnas:

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

Representamos la gráfica con las coordenadas principales:

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)

Y así obtenemos:

Mirando este gráfico podemos decir, por ejemplo, que en regiones como Abruzzo, Molise o Umbría se crían principalmente conejos.

Seleccionamos los componentes:

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

sum(lambda)

in_exp<-lambda/inertia

in_exp_<-cumsum(in_exp)

Y visualizamos los resultados obtenidos:

La primera dimensión por sí sola explica el 58,57% de la variabilidad, y las tres primeras juntas explican el 92,26% de la variabilidad global de los datos.

Los resultados obtenidos se pueden visualizar gráficamente con el scree-plot de la inercia explicada:

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

Para estudiar la calidad de la representación, procedemos como sigue:

  • para evaluar cuánto influye o participa una categoría en el eje factorial calculamos las contribuciones absolutas , ca, tanto para filas como para columnas:

ca_r <-Dr%*%fp_c^2

ca_c <-DC%*%fp_r^2

para evaluar la calidad de la representación calculamos las contribuciones relativas, cr. Éstas dan una mejor medida de la representación de los puntos sobre los ejes y vienen dadas por el coseno del ángulo formado por el vector de proyección del punto y el vector relativo i (o j) en el punto i ( o j ) en su espacio 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 posibilita emplear un paquete llamado FactoMineR para el análisis de correspondencias, que agrega información sobre puntos y variables y permite crear un gráfico bidimensional conjunto. Para poder usar este paquete de R primero debes descargarlo:

Después de instalarlo, debe llamarlo con el comando:

library(FactoMineR)

Pasemos a la creación del gráfico bidimensional para puntos y variables:

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)

Gráficamente tendremos:

Interpretación de resultados:

Podemos decir que se confirma la hipótesis inicial. En particular, las regiones más dedicadas a la ganadería ovina parecen ser Toscana, Cerdeña y Basilicata, y esto puede explicarse por el hecho de que estas regiones son áreas de montaña y trashumancia. Los caballos se crían principalmente en Puglia, Liguria y Sicilia porque estos animales siempre se han utilizado para el trabajo en el campo. El ganado está presente en Trentino Alto-Adige, Veneto, Piamonte, Lombardía y Emilia-Romaña. De hecho, estas regiones tienen una tradición de crianza más desarrollada para uso alimentario. Los conejos aparecen principalmente en Umbria, Abruzzo y Molise. En cambio, parece que los cerdos se crían más en Marche, Campania y Molise. Estas regiones también tienen una tradición de cría más desarrollada para uso alimentario.Las cabras, en cambio, se colocan en medio de los ejes, probablemente porque no hay regiones que prefieran su cría.

 



Keywords

AC, variables cualitativas, inercia explicada, valores propios

Objectives/goals:

El objetivo de este módulo es presentar y explicar la técnica del análisis de componentes principales.



Al finalizar este módulo será capaz de:



- Conocer la lógica del AC



- Conocer los requisitos



- Realizar un AC 



- Realizar un AC en R con el paquete FactoMineR


Description:

En este módulo de formación se te presentará la técnica de análisis multidimensional denominada Análisis de Correspondencias, AC.

El Análisis de Correspondencias es una forma de escalado multidimensional, que esencialmente construye una especie de modelo espacial que muestra las asociaciones entre un conjunto de variables categóricas. Si el conjunto incluye sólo dos variables, el método suele denominarse Análisis de Correspondencias Simple (ACS). Si el análisis incluye más de dos variables, suele denominarse Análisis de Correspondencias Múltiples (ACM). En este módulo trataremos el análisis de correspondencias simples, el objetivo de este análisis es reducir la dimensionalidad del fenómeno investigado preservando la información que contiene. La técnica es aplicable a fenómenos medidos con variables cualitativas.

La última parte del módulo estará dedicada a la aplicación de AC con el software R.

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

Miembros

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