Análisis Factorial de Correspondencias Simples con FactoMineR
El aná lisis de correspondencia en R se puede realizar a través de diversos paquetes: el
paquete ca de Nenadic y Greenacre (2007), el paquete FactoMineR (Husson, Lê, y Pagès,
2011), el paquete ade4, el paquete MASS, el paquete homals, el paquetes anacor (de Leeuw y
Mair, 2009) y el paquete de visualizació n factoextra.
CA Correspondence Analysis
Description. Realiza el aná lisis de correspondencias (CA), incluyendo fila y/o columna
suplementarias
Sintaxis del commando en R:
CA(X,ncp = 5, row.sup = NULL, col.sup = NULL,
graph = TRUE, axes = c(1,2), row.w = NULL)
Argumentos
X un dataframe con n filas y p columnas, que equivale a una tabla de contingencia
ncp número de dimensiones que se mantienen en los resultados (por defecto 5)
row.sup un vector que indica los índices de las filas suplementarias
filas col.sup un vector que indica los índices de las columnas suplementarias.
graph boolean, si es TRUE se visualiza un gráfico.
axes una longitud de 2 vectores que especifica los componentes para graficar
row.w peso fila - opcional (por defecto, los pesos fila son uniforme)
Valores de Salida
Devuelve una lista que incluye:
eig una matriz que contiene todos los valores propios, el porcentaje de
variació n y el porcentaje acumulativo de la varianza
col una lista de matrices con todos los resultados de la variable en columnas
respecto a los factores (las coordenadas, del coseno cuadrado, las
contribuciones, la inercia)
row una lista de matrices con todos los resultados de la variable en filas
respecto a los factores (las coordenadas, del coseno cuadrado, las
contribuciones, la inercia)
col.sup una lista de matrices con todos los resultados de la variable en columnas
suplementarias (las coordenadas, del coseno cuadrado)
row.sup una lista de matrices con todos los resultados de la variable en filas
suplementarias (las coordenadas, del coseno cuadrado)
call una lista con algunas estadísticas
Devuelve la fila y columna de puntos de mapa de factores.
Autores(s) Jeremy Mazet, Francois Husson <
[email protected]>
Referencias
Benzecri, J.-P. (1992) Correspondence Analysis Handbook, New-York : Dekker
Benzecri, J.-P. (1980) L’analyse des données tome 2 : l’analyse des correspondances, Paris :
Bordas
Greenacre, M.J. (1993) Correspondence Analysis in Practice, London : Academic Press
Ver también print.CA, plot.CA, dimdesc
plot.CA Draw the Correspondance Analysis (CA) graphs
Sintaxis del commando en R:
## S3 method for class 'CA'
plot(x, axes = c(1, 2),xlim = NULL, ylim = NULL, invisible = NULL, col.row
="blue", col.col = "red", col.row.sup = "darkblue", col.col.sup =
"darkred", label = "all", cex = 1, title = NULL, palette = NULL, ...)
Argumentos
Valores de Salida
Returns the individuals factor map y the variables factor map.
Autores(s) Jeremy Mazet, Francois Husson <[email protected]>
Ver tambien CA
Ejemplos
data(children)
res.ca <- CA (children, col.sup = 6:8, row.sup = 15:18)
print.CA
Print the Correspondance Analysis (CA) results
Sintaxis del commando en R:
## S3 method for class 'CA'
print(x, file = NULL, sep = ";", ...)
Argumentos
Autores(s) Jeremy Mazet, Francois Husson <[email protected]>
Ver también CA, write.infile
Presentamos análisis de correspondencias realizado con FactoMineR en los datos de Grang'ey
Lebart (1993). Los datos utilizados hay una tabla de contingencia que resume las respuestas dadas
por las diferentes categorías de personas a la siguiente pregunta: "de acuerdo con usted, ¿cuáles
son las razones que pueden hacer dudar a una mujer o una pareja para tener hijos?". Son 18 filas y
8 columnas, las filas representan las diferentes razones mencionadas, las columnas representan las
distintas categorías (educación, edad) personas pertenecen.
R> datos ("niños")
R> res.ca <- CA (niños, col.sup = 6:8, row.sup = 15:18)
Las columnas de 6 a 8 son complementarias (se refieren a los grupos de edad de la población), y las
filas 15 a 18 son complementarias. De manera predeterminada, la función de CA ofrece una
representación gráfica (Figura 5). Si sólo queremos visualizar los elementos activos (Figura 6),
nosotros utilizar el siguiente código:
R> plot (res.ca, invisible = C ("row.sup", "col.sup"))
El análisis de correspondencias: las filas activas son de color azul, las columnas de activos son de color rojo, las líneas
adicionales son de color azul oscuro, las columnas adicionales son de color rojo oscuro
El análisis de correspondencias con sólo los elementos activos
a. Análisis Factorial de Correspondencias Simples con FactoClass
FactoClass: es la función principal del paquete, enlaza las funciones de ade4 y de stats para
realizar el análisis factorial y el método de clasificación mixta. La función FactoClass, realiza un
análisis factorial solicitando el número de ejes a retener para analizar, posteriormente solicita el
número de ejes a retener para el método de clasificación y finalmente el número de clases según
lo observado en el diagrama de índices de nivel y el dendrograma. Si scanFC=FALSE la función
realiza todo el análisis usando los parámetros dados.
Sintaxis del commando en R:
FactoClass( dfact, metodo, dfilu = NULL , nf = 2, nfcl = 10, k.clust = 3,
scanFC = TRUE , n.max = 5000 , n.clus = 1000 ,sign = 2.0,
conso=TRUE , n.indi = 25 )
print.FactoClass(x, ...)
analisis.clus(X,W)
En el paquete de R FactoClass (Campo, 2007), se implementa la estrategia descrita en Lebart et al.
(1995), que combina métodos factoriales con análisis de conglomerados, en la exploración
multivariada de tablas de datos. FactoClass es una función que conecta a las funciones de ade4
(Chessel et al. 2004) para realizar el análisis factorial de los datos y de stats para el análisis de
conglomerados. Funciones complementarias que, incluyendo para producir salidas en formato L
ATEX1, utilizando el paquete xtable (Dahl 2006).
FactoClass utiliza el paquete estadístico ade4 (Chessel et al. 2004) para realizar el análisis factorial
de los datos. Estas funciones retornan un objeto de tipo dudi con los valores y vectores propios y las
coordenadas factoriales de las filas y columnas. Las demás ayudas a la interpretación se obtienen
con la función inertia.dudi.
Las funciones dudi de ade4 reciben los datos en un objeto data.frame y utlizan todas las columnas
como activas. El paquete ade4 tiene varias funciones para obtener los planos factoriales; si
embargo en FactoClass se incluye la función planfac que recibe un objeto dudi y produce un plano
factorial similar a los del paquete ade4.
La función ward.cluster transforma la distancia euclidiana en distancia de Ward y llama la función
hclust del paquete básico stats. En ward.cluster se incluye una gráfica de los índices de nivel para
facilitar la decisión de cuántas clases seleccionar para la partición.
La función kmeans de stats no maneja pesos distintos para las filas. Estos pesos influyen en los
centros de gravedad y en las inercias intra de las clases. Se modificó (Campo, 2007) esta función
para incluir los pesos de las filas y obtener las inercias intra clases; se nombra kmeansW. En su
opción por defecto la función kmeans utiliza el algoritmo de Hartigan & Wong (1979).
Para la caracterización de las clases, se incluye la función cluster.carac, donde se calculan los
valores test y se retorna un objeto list con información similar a la que se obtiene en los programas
SPAD (Lebart et al. 1999) y DTM (Lebart 2007).
La función analisis.clus calcula las características geométricas de cada clase: el tamaño, la inercia,
el peso y el cuadrado de la distancia de origen.
Para impresión en formato de látex ver FactoClass.tex ()
Para dibujar planos factorial ver con el grupo plotFactoClass (), recibe un objeto de tipo FactoClass
y produce el plano factorial solicitado.
Objeto de la clase FactoClass:
dudi objeto de la clase dudi de ade4 con las especificaciones del análisis factorial
nfcl número de ejes seleccionados para la clasificación
k número de clases
indices tabla de los índices obtenidos mediante el método de WARD
cor.clus coordenadas de los grupos
clus.summ resumen de los grupos
cluster vector que indica el grupo de cada uno de los elementos
carac.cate caracterización del grupo por variables cualitativas
carac.cont caracterización del grupo por las variables cuantitativas
carac.frec caracterización del grupo por las variables frecuencia activa
Ejemplo: descripción de los colores según adjetivos que connotan
Importar los datos a R desde Excel.
> library(xlsReadWrite)
> AdjColor <- read.xls( "adjetivo-color.xls" ,colNames = TRUE, sheet = 1,
type = "data.frame", from = 1, rowNames = TRUE, colClasses = NA,
checkNames = TRUE,dateTimeAs = "numeric",stringsAsFactors =
default.stringsAsFactors() )
Con el parámetro rowNames en TRUE, indicamos que la primer columna corresponde a las etiquetas que identifican a
los individuos. Si la tabla no tiene identificado las filas, se coloca rowNames = “NA”.
> AdjColor #Muestro la hoja de datos
Realizar el análisis factorial con FactoClass.
> library(ade4)
> library(xtable)
> library(FactoClass)
> FC.col <-FactoClass(AdjColor, dudi.coa) #Análisis Correspondencias de tabla de contingencia
5 5 6
> FC.col <-FactoClass(AdjColor, dudi.coa, nf=5, nfcl=5, k.clust=6, scanFC=FALSE,
n.max=5000 , n.clus=1000 ,sign=2.0,conso=TRUE , n.indi=25)
Mostrar en pantalla los resultados
> FC.col
> FC.col$dudi
> FC.col$dudi$co #Coordenadas puntos columnas
> FC.col$dudi$li #Coordenadas puntos fila
> FC.col$co #Coordenadas centros de clase
> FC.col$carac.frec #Caracterización de las clases por frecuencias activas
> plotFactoClass(FC.col,titre="Plano factorial ACS",ucal=50,
col.row= "dark red", col.col= "orchid4", axislabel = T)
Resultados en fichero de texto
> sink("resultadosAFCS.txt") #La salida es un archivo de texto
> FC.col
> FC.col$dudi$co #Coordenadas puntos columnas
> FC.col$dudi$li #Coordenadas puntos fila
> FC.col$cor.clus #Coordenadas centros de clase
> FC.col$carac.frec #Caracterización de las clases por frecuencias activas
> FC.col$cluster #Individuos de la clase
> sink() #La salida vulva a ser la pantalla
Resultados en formato Latex
> FactoClass.tex(FC.col,job="AdjColor", append=TRUE , p.clust = TRUE)