Primero, hay diferentes formas de construir los llamados biplots en el caso del análisis de correspondencia. En todos los casos, la idea básica es encontrar una manera de mostrar la mejor aproximación 2D de las "distancias" entre las celdas de fila y de columna. En otras palabras, buscamos una jerarquía (también hablamos de "ordenación") de las relaciones entre filas y columnas de una tabla de contingencia.
Muy brevemente, CA descompone la estadística de chi-cuadrado asociada con la tabla de dos vías en factores ortogonales que maximizan la separación entre los puntajes de fila y columna (es decir, las frecuencias calculadas a partir de la tabla de perfiles). Aquí, verá que hay alguna conexión con PCA pero la medida de varianza (o la métrica) retenida en CA es el , que solo depende de los perfiles de columna (ya que tiende a dar más importancia a las modalidades que tienen valores marginales grandes , también podemos volver a ponderar los datos iniciales, pero esta es otra historia).χ2
Aquí hay una respuesta más detallada. La implementación que se propone en la corresp()
función (en MASS
) se deduce de una vista de CA como una descomposición SVD de matrices codificadas ficticias que representan las filas y columnas (de modo que , con N la muestra total). Esto está a la luz con el análisis de correlación canónica. Por el contrario, la escuela francesa de análisis de datos considera a CA como una variante del PCA, donde busca las direcciones que maximizan la "inercia" en la nube de datos. Esto se hace diagonalizando la matriz de inercia calculada a partir de la tabla bidireccional centrada y escalada (por frecuencias marginales), y expresando perfiles de fila y columna en este nuevo sistema de coordenadas.RtC= Nnorte
Si considera una tabla con filas y j = 1 , ... , J columnas, cada fila se pondera por su suma marginal correspondiente que produce una serie de frecuencias condicionales asociadas a cada fila: f j | i = n i j / n i ⋅ . La columna marginal se llama perfil medio (para filas). Esto nos da un vector de coordenadas, también llamado perfil (por fila). Para la columna, tenemos f i | ji = 1 , ... , yoj = 1 , ... , JFj | yo= nyo j/ nyo ⋅ . En ambos casos, consideraremos losperfiles de fila I (asociados a su peso f i ⋅ ) como individuos en el espacio de la columna, y losperfiles de columna J (asociados a su peso f ⋅ j ) como individuos en el espacio de la fila. La métrica utilizada para calcular la proximidad entre dos individuos es ladistancia χ 2 . Por ejemplo, entre dos filas i e i ′ , tenemosFyo | j= nyo j/ n⋅ jyoFyo ⋅JF⋅ jχ2yoyo′
re2χ2( i , i′) = ∑j = 1Jnortenorte⋅ j( nyo jnorteyo ⋅- nyo′jnorteyo′⋅)2
χ2H0 0norteyo ⋅× n⋅ j/ n( i , j )
χ2cos2yojχ2chisq.test(tab)$expected-chisq.test(tab)$observed
χ2norteϕ2
En realidad, hay varios paquetes que pueden proporcionarle las CA mejoradas en comparación con la función disponible en el MASS
paquete: ade4 , FactoMineR , Anacor , y ca .
La última es la que se utilizó para su ilustración en particular, y se publicó un artículo en el Journal of Statistical Software que explica la mayor parte de sus funcionalidades: Análisis de Correspondencias en R, con gráficos bidimensionales y tridimensionales: la ca paquete .
Por lo tanto, su ejemplo sobre los colores de ojos / cabello se puede reproducir de muchas maneras:
data(HairEyeColor)
tab <- apply(HairEyeColor, c(1, 2), sum) # aggregate on gender
tab
library(MASS)
plot(corresp(tab, nf=2))
corresp(tab, nf=2)
library(ca)
plot(ca(tab))
summary(ca(tab, nd=2))
library(FactoMineR)
CA(tab)
CA(tab, graph=FALSE)$eig # == summary(ca(tab))$scree[,"values"]
CA(tab, graph=FALSE)$row$contrib
library(ade4)
scatter(dudi.coa(tab, scannf=FALSE, nf=2))
En todos los casos, lo que leemos en el biplot resultante es básicamente (limito mi interpretación al primer eje que explica la mayor parte de la inercia):
- el primer eje resalta la clara oposición entre el color del cabello claro y oscuro, y entre los ojos azules y marrones;
- las personas con cabello rubio también tienden a tener ojos azules, y las personas con cabello negro tienden a tener ojos marrones.
Hay muchos recursos adicionales sobre análisis de datos en el laboratorio de bioinformática de Lyon, en Francia. Esto es principalmente en francés, pero creo que no sería un problema para ti. Los siguientes dos folletos deberían ser interesantes como primer comienzo:
k