Introducción

Para poder representa los datos de una forma inteligible, saber cual es la distribución real de las variables, poder desarollar un modelo de predicción basado en múltiples variables es necesario del análisis multivariante. Se ha de abordar las técnicas de escalado multidimensional son una generalización de la idea de componentes principales.Siendo una técnica multivariada de interdependencia que trata de representar en un espacio geométrico de pocas dimensiones las proximidades existentes entre un conjunto de objetos o de estímulos. Tambien se da conocer una visualización del funcionamiento de escalimento multidimensional simple y métrico en los Software de SPSS Y R, los cuales nos brindan muchas opciones con respecto a dichos análisis. Mientras que el análisis de correspondencia es una técnica de análisis exploratorio de datos diseñado para tablas de doble entrada (correspondencia simple) y tablas de múltiples entradas (correspondencia múltiple) que presentan algún tipo de relación entre las filas y las columnas. Es de útil aplicación en trabajos exploratorios donde son pocas o inexistentes las hipótesis previas del comportamiento de la población, tanto en las vertientes correlaciones como experimentales. Sin olvidar Al mismo tiempo es una técnica descriptiva de análisis multivariable de datos usada para la simplificación de datos que presentan dificultad para su descripción o comprensión.De igual manera se su aplicación en R y SPSS, tanto para un análisis de correspondencia simple como para la multiple.

El análisis de correlación canónica es un tipo de análisis estadístico lineal de múltiples variables, su objetivo es cuantificar la validez de la relación, en este caso entre los dos conjuntos de variables (dependiente e independiente).Dicho método se asemeja al análisis factorial en la creación de compuestos de variables. También se parece al análisis discriminante en su capacidad para determinar las dimensiones independientes para cada conjunto de variables que produce la correlación máxima entre las dimensiones. Porponiendo de igual manera ejemplos en el R y SPSS.

Objetivos

Objetivo General:
\(\blacklozenge\) Aplicar técnicas multivariantes.

Objetivos Específicos:
\(\blacklozenge\)Conocer el análisis de escalamineto multivariante, correspondencia simple y múltiple y correlación canónica.
\(\blacklozenge\)Implementar las diferentes tecnicas en el software R y SPSS.

Justificación

Se propone entonces investigar acerca del escalamiento multidimensional, correspondiente simple y múltiple y de la correspondencia canónica dado a que se será de suma importancia para la interpretación de los resultados. Se prevee que sea de utilidad tanto como la teoría, como los ejemplos propuestos en los sofware R, dado a que dicho software brinda diversos paquetes para los temas de estudio, en cuanto al software SPSS, brinda mucha diversidad en cuanto gráficos. Por lo que con esto se prevee que sera de ayuda para posteriores análisis a cada tema respectivamente.

Metodología

Método de inducción-deducción.- Este es el método que se basa en lo lógica directamente, sus razonamientos son estructurados por jerarquías directas (premisa mayor, premisa menor y conclusión), es aplicado en especial a las matemáticas, aunque su estructura es la más aplicable a todos los métodos de investigación.

Sus partes son las siguientes:

Observación y análisis.
-Libros
-Sitios Web
-Audiovisual

Deducción. Segun lo estudiado anteriormente, implementar segun las posibles opciones que brinda un software como R y SPSS.

Experimentación. Interpretar los ejemplos desarollados en R y SPSS.

Marco Teórico

Escalado multidimensional.

La escala multidimensional (MDS) se ocupa del problema de construir una configuración de n puntos en el espacio euclidiano utilizando información acerca de las distancias entre los n objetos, las distancias entre puntos ellos mismos pueden estar sujetos a error.

Definición 1:Una matriz D (nxn) se llama una matriz de distancia si es simétrico y

\[d_{rr}=0, d_{rs}\geq0, r \neq s\]

Comenzando con una matriz de distancias D, el objeto de MDS es encontrar puntos \(P_{1},.....,P_{n}\) en k dimensiones tales que si \(\hat{d}_{rs}\) denota la distancia euclidiana entre \(P_{r}\) y \(P_{s}\), entonces es “similar” en algún sentido a \(\hat{D}\). Los puntos \(P_{r}\) son desconocidas y normalmente la dimensión k también se desconoce.

En general, si \(P_{1},.....,P_{n}\) con coordenadas \(X_{i}'=(X_{i1},.....,X_{ip}),\qquad i=1,...,n\) representa una solución MDS en p dimensiones, entonces

\[y_{i}=AX_{i}+b, \qquad i=1,..,n\]

también es una solución, donde A es una matriz ortogonal y b es cualquier vector.

Tipos de solución

Métodos de solución que utilizan solo el orden de clasificación del distancias
\[d_{r_1s_1}<d_{r_2s_2}<....<d_{r_ms_m}, \qquad m=\frac{1}{2}n(n-1)\]
donde \((r_1, s_1), ..., (r_m, s_m)\) denota todos los pares de subíndices de r y s, r <s, se denominan métodos no métricos de escalado multidimensional. Los órdenes de rango son invariantes bajo transformaciones crecientes monótonas \(f\) de la \(d_{rs}, i.e\) \[d_{r_1s_1}<d_{r_2s_2}<....\Leftrightarrow f(d_{r_1s_1})<f(d_{r_2s_2})<....\]

Por lo tanto, las configuraciones que surgen del escalado no métrico son indeterminado no solo con respecto a la traslación, rotación y reflexión, sino también con respecto a la expansión o contracción uniforme.Soluciones que intentan obtener \(P_i\) directamente de las distancias dadas son llamados métodos métricos. Estos métodos derivan \(P_r\) tal que, en cierto sentido, las nuevas distancias \(\hat{d}_{rs}\) entre los puntos \(P_r\) y \(P_s\) están lo más cerca del original \(d_{rs}\) como sea posible.

Existen dos tipos de análisis multidimensional:
1. Análisis multidimensional métrico (MDS) o solución clásica.
2.Análisis multidimensional no métrico (NMDS).

Análisis multidimensional métrico (MDS) o solución clásica.

La solución clásica es un procedimiento de obtención de puntuaciones a partir de una matriz de distancias. Se basa en ciertas propiedades que cumple una matriz de distancias euclídeas entre cierto conjunto de puntos. En primer lugar definimos dicha matriz, para después establecer en un teorema una caracterización, que da pie al algoritmo de cálculo de las puntuaciones.

Definición Una matriz de distancias \(D (n × n)\) se dice Euclídea si existe un conjunto de n puntos en algún espacio euclídeo cuyas distancias entre puntos vienen dadas por D. Dicho de otro modo, si para alguna dimensión p, existen n puntos en el espacio de dimensión p, \(x1, . . . , xn ∈ R^P\) tales que

\[d^2_{rs}=(x_r-x_s)'(x_r-x_s)\] El teorema siguiente nos permite decir si una matriz D es euclídea, y en tal caso, cómo se puede obtener el conjunto de puntos correspondiente. Empezamos considerando las siguientes matrices
\[A=(a_{rs}) \qquad a_{rs}=-\frac{1}{2}d^2_{rs}\] y \[B=HAH\]

siendo \(H=I_n-n^{-1}11'\) la matriz que centra una muestra de datos.Si se multiplica la matriz H por la izquierda, el resultado será una matriz cuyas columnas estén centradas (tengan media cero). Si se multiplica H por la derecha, se consigue que las las estén centradas. Al multiplicar a ambos lados de la matriz A, se obtiene la matriz B, que tiene tanto las filas como las columnas centradas.

Teorema 1:Sea D una matriz de distancias y construyamos B como se acaba de indicar. Entonces:D es Euclídea si y sólo si B es semidefinida positiva. En concreto, esta caracterización se puede descomponer en los siguientes resultados:

i)Si D es la matriz de distancias euclídeas de los puntos \(Z = (z_1, . . . , z_n)'\),entonces \[b_{rs}=(z_r-\bar{z})'(z_s-\bar{z}) \qquad \forall r,s\in \{1,...,n\}\] La expresión anterior se puede escribir en forma matricial así: \(B = (HZ)(HZ)'\), lo cual prueba que B es semidefinida positiva. Nótese que B se puede interpretar como la matriz de productos interiores centrados entre las filas de Z.

ii)Recíprocamente, si B es semidefinida positiva de rango p, entonces se puede construir un conjunto de puntos para B de la siguiente manera. Sean \(λ_1 ≥ · · · ≥ λ_p> 0\) los autovalores positivos de B, cuyos autovectores asociados se encuentran en la matriz \(X = (x_{(1)}, . . . , x_{(p)})\), y están normalizados de manera que

\[x'_(i)x_(i)=λ_i \qquad \forall_i\in \{1,...,p\}\] Entonces los puntos con coordenadas \(x_r = (x_{r1}, . . . , x_{rp})'(x_r\) es la fila r-ésima de $ X)$ tienen distancias dadas por D.
Además, este conjunto de puntos tiene centro de gravedad en el origen, \(\bar{x}=0\), y B constituye la matriz de productos interiores de estos puntos.

  1. Supongase. \[d^2_{rs}=-2a_{rs}=(Z_r-Z_s)'(Z_r-Z_s) \qquad \qquad (1)\] Podemos escribir \[ \pmb{B}=\pmb{HAH}=\pmb{A}-n^{-1}\pmb{AJ}-n^{-1}\pmb{JA}-n^{-2}\pmb{JAJ} \qquad donde,\qquad \pmb{J=11'} \] Ahora
    \[\frac{1}{n}\pmb{AJ}=\begin{equation} \begin{bmatrix} \bar{a_1} & ... & \bar{a_1}\\ . & & .\\ . & & .\\ \bar{a_n} & ... & \bar{a_n} \end{bmatrix} \end{equation}\]

\[\qquad \frac{1}{n}\pmb{JA}=\begin{equation} \begin{bmatrix} \bar{a_{.1}} & ... & \bar{a_{.n}}\\ . & & .\\ . & & .\\ \bar{a_{.1}} & ... & \bar{a_{.n}} \end{bmatrix} \end{equation}\]

\[\frac{1}{n^2}\pmb{JAJ}=\begin{equation} \begin{bmatrix} \bar{a_{..}} & ... & \bar{a_{..}}\\ . & & .\\ . & & .\\ \bar{a_{..}} & ... & \bar{a_{..}} \end{bmatrix} \end{equation}\]

Donde \[\bar{a_{r.}}=\frac{1}{n}\sum_{s=1}^na_{rs}, \qquad \bar{a_{.s}}=\frac{1}{n}\sum_{r=1}^na_{rs}, \qquad \bar{a_{..}}=\frac{1}{n^2}\sum_{r.s=1}^na_{rs}. \qquad \qquad (b) \] Por lo tanto \[b_{rs}=a_{rs}-\bar{a}_{r.}-\bar{a}_{.s}+\bar{a}_{..} \qquad \qquad (c)\] Después de sustituir un de (a) y usar (b), esta fórmula simplifica a \[b_{rs}=(Z_r-\bar{Z})'(Z_s-\bar{Z}) \qquad \qquad (1)\] ii)Supongamos \(B\geq0\) Sea \(\land = diag (λ_1,....λ_p)\) y sea \(\Gamma = X\land^{1/2}\), de modo que las columnas de r, ‘Ym = A; -  12 "’ 0 son vectores propios estandarizados de B. Entonces por el teorema de descomposición de espectros
\[B=\Gamma\land\Gamma'=XX'\]

eso es, \(b_{rs}=X_r'X_{sr}\) entonces B representa la matriz de producto interno.

Ahora debemos demostrar que D representa la matriz de distancias entre puntos. Usando (c) para escribir B en términos de A, obtenemos: \[(X_r-X_s)'(X_r-X_s)=X_r'X_r-2X'_rX_s+X_s'X_s\] \[\qquad \qquad \qquad =b_{rr}-2b_{rs}+b_{ss}\] \[\qquad \qquad \qquad =a_{rr}-2a_{rs}+a_{ss}\] \[\qquad =-2b_{rs}\] \[\ =d^2_{rs}\] porque \(a_{rr}=-\frac{1}{2}d^2_{rr}=0 y -2a_{rs}=d^2_{rs}\)
Finalmente,observe que \(\pmb {B1=HAH1}\) de modo que 1 es un vector propio de B correspondiente al e igenvalue O.Así que 1 es ortogonal a las columnas de \(X, x'_{(i)}1=0,i=1,...,p\) .Por eso

\[n\bar{X}=\sum_{r=1}^n X_i=X'1=(x'_{(1)}1,....,x'_{(p)}1)'=0\] de modo que el centro de gravedad se encuentra en el origen.

Análisis multidimensional no métrico (NMDS).

Implícito en las secciones anteriores está el supuesto de que existe un “verdadero” configuración en k dimensiones con distancias \(\delta_{rs}\) entre puntos. Deseamos reconstruir esta configuración utilizando una matriz de distancia observada \(D\) cuya los elementos son de la forma. \[d_{rs}=\delta_{rs}+e_{rs}\] Aquí la \(e_{rs}\) "representa errores de medición más errores de distorsión que surgen porque las distancias no corresponden exactamente a una configuración en \(R^k\).
Sin embargo, en algunas situaciones es más realista hipotecar un tamaño menor relación rígida entre \(d_{rs}\) y \(\delta_{rs}\) a saber.Suponer

\[d_{rs}=(\delta_{rs}+e_{rs}),\]

Donde f es una función creciente monótona desconocida. Para este “modelo”, la única información que podemos utilizar para reconstruir la \(\delta_{rs}\) es el orden de \(d_{rs}\)“. En este enfoque no métrico, D no se compra como una matriz de”distancia" sino como una matriz de “disimilitud”. De hecho, el enfoque no métrico es a menudo más apropiado cuando los datos se presentan como una matriz de similitud. Porque en esta situación, la transformación de similitudes a distancias es algo arbitraria y quizás la afirmación más fuerte que uno debería hacer es esa mayor similitud implica menos disimilitud. Un algoritmo para construir una configuración basada en el orden de clasificación.

La información ha sido desarrollada por Shepard (1962) y Kruskal(1964)

Por ejemplo, el método de Kruskal consiste en: 1. Fijar una dimensión euclídea \(p\). 2. Transformar la distancia \(\delta_{ij}\) en la “disparidad” \({\hat \delta_{ij}}=\varphi(\delta_{ij})\), donde \(\varphi\) es una función monótona creciente. Las disparidades conservan la preordenación de las distancias. 3. Ajustar una distancia euclídea \(d_{ij}\) a las disparidades \(\hat \delta_{ij}\) de manera que minimice

\[\sum_{i<j}(d_{ij}-\hat \delta_{ij})^2\] 4. Asociar a las distancias \(d_{ij}\) una configuración euclídea \(p-\)dimensional, y representar los \(n\) objetos a partir de las coordenadas de la configuración. Para saber si la representación obtenida refleja bien las distancias entre los objetos, se calcula la cantidad \[S=\sqrt{\frac{\sum_{i<j}(d_{ij}-\hat \delta_{ij})^2}{\sum_{i<j}d_{ij}^2}}\] denominada stress, que verifica \(0\leq S\leq1,\) pero se expresa en forma de porcentaje. La representación es considerada buena si \(S\) no supera el 5%.

También es conveniente obtener el diagrama de Sheppard, que consiste en representar los \(n\frac{(n-1)}{2}\) puntos \((\delta_{ij},d_{ij})\). Si los puntos dibujan una curva creciente, la representación es buena, porque entonces se puede decir que conserva bien la preordenación.

Ejemplo en R

Ejemplo escalonamiento multidimensional métrico
Ejemplo: Teniendo una variable de segmentacion, zona. Generando un promedio para cada una de las siguientes variables: Precio,Aceptación,Te Natural, Supermercados,Redes Sociales

library(readxl)
te<- read_excel("C:/Users/HP/Desktop/Metrico_Delicia_Te.xlsx")

head(te,2)

Normalizamos los datos, debido a que no se encuentran en la misma escala.

datos<- scale(te[2:6],center=T, scale=T)
datos<-as.data.frame(datos)

Matriz de distancias euclideas

distancia_euc<-dist(datos,method = "euclidean", diag = T,upper = T)

Asignar nombre a los objetos

m<-as.matrix(distancia_euc)
rownames(m)<-paste(te$zona)
colnames(m)<-paste(te$zona)
euclideas<-as.dist(m)

Algoritmo esc,ulti.metric

library(smacof)
aemm<-mds(delta=euclideas,ndim=2,type="ratio")

Stress Como se menciono anteriormente es un indicador de la bondad del ajuste.El valor del stress debera ser tan pequeño como sea posible. Tomando en cuenta lo siguiente:

Stress Bondad de Ajuste
0,2 Malo
0,1 Minimo Razonable
0,05 Bueno
0,025 Excelente
0 Perfecto
print(aemm$stress)
## [1] 0.07988643

` Por lo que podemos notar que tiene un Stress aproximadamente 0.08 por lo que esta entre minimo razonable y bueno, es decir que es bueno.

Stress por punto, ayuda a identificar a los objetos que esten peor representados.

print(aemm$spp)
##         1         2         3         4         5         6         7         8 
##  5.349642 14.226684  5.844294  3.892204 26.254532  3.206912 25.313888  4.745913 
##         9 
## 11.165931

La peor representacion seria Plaza Peñate (25,31%) y Santa Lucia (26.25%)

RSQ
Es un indicador de la bondad de ajuste de la representación gráfica o bien mapa conceptual, como se sabe se encuentra en el rango de 0 a 1, por lo cual entre mas cerca este a 1, el modelo sera más considerado como bueno, mientras mas proximo a cero el modelo es malo.

dist<-cbind(c(aemm$dhat))
dism<-cbind(c(aemm$confdist))
summary(lm(dist~dism))
## 
## Call:
## lm(formula = dist ~ dism)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.123315 -0.043568  0.000588  0.026586  0.245381 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.09852    0.02732   3.606 0.000986 ***
## dism         0.91061    0.02741  33.225  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06991 on 34 degrees of freedom
## Multiple R-squared:  0.9701, Adjusted R-squared:  0.9692 
## F-statistic:  1104 on 1 and 34 DF,  p-value: < 2.2e-16

Podemos observar que el valor Multiple R-Squeard es de 0.9701, este valor esta bastante cercano a 1 por lo que el ajuste del modelo es bastante bueno, se podria decir que excelente.

Mapa perceptual

plot(aemm$conf,pch=7, xlim= range(aemm$conf),repel=T)

zonas<- c( "Av_Independencia",
"Vista_Hermosa",
"La_Hacienda",
"Villa_Verde",
"Santa_Lucia",
"Merliot",
"Plaza_Peñate",
"Paso_Jaguar",
"La_ Brisello")
text(aemm$conf,pos = 1,labels = zonas)

Se observan los siguientes segmentos: segmento 1:AV_Independencia,Villa_Verde,Vista_Hermosa,La_Hacienda,Merliot Segmento 2: La_Brisello,Paso_Jaguar Segmento 3:Santa_Lucia Segmento 4:Plaza_Peñate

Coordenadas, es decir las ubicaciones de los puntos.

print(aemm$conf)
##           D1          D2
## 1 -0.6605409  0.20743499
## 2 -0.4518969 -0.07260947
## 3 -0.5782937 -0.29573510
## 4 -0.3557123  0.09485941
## 5  0.5242705 -0.06261851
## 6 -0.1466881 -0.23822207
## 7  0.7826446 -0.80100043
## 8  0.5807881  0.63118878
## 9  0.3054286  0.53670239

Ejemplo escalonamiento multidimensional no métrico

Se tienen las variables ambiantes, PH,Crecimiento,Distancia, Temperatura.Con 12 observaciones

#Importar la base de datos
library(readxl)
NMetrico_Ambientales <- read_excel("C:/Users/HP/Desktop/Seminario I/NMetrico_Ambientales.xlsx")
head(NMetrico_Ambientales,3)

Cargar los paquetes necesarios

library(vegan)

Realizar la ordenación

set.seed(0) #Para que los resultados no se brinden aleatorios
nmds <- metaMDS(NMetrico_Ambientales, k=2, trymax=100) #con k seleccionamos el n de dimensiones y con trymax incrementamos el n de iteraciones
## Wisconsin double standardization
## Run 0 stress 0.03395919 
## Run 1 stress 0.1304085 
## Run 2 stress 0.0339592 
## ... Procrustes: rmse 5.589458e-06  max resid 9.792431e-06 
## ... Similar to previous best
## Run 3 stress 0.0339592 
## ... Procrustes: rmse 1.53828e-05  max resid 2.643177e-05 
## ... Similar to previous best
## Run 4 stress 0.03395919 
## ... Procrustes: rmse 4.125994e-06  max resid 7.211559e-06 
## ... Similar to previous best
## Run 5 stress 0.0339592 
## ... Procrustes: rmse 2.372765e-05  max resid 4.066899e-05 
## ... Similar to previous best
## Run 6 stress 0.03395919 
## ... New best solution
## ... Procrustes: rmse 1.12015e-06  max resid 1.827972e-06 
## ... Similar to previous best
## Run 7 stress 0.0339592 
## ... Procrustes: rmse 1.335262e-05  max resid 2.293153e-05 
## ... Similar to previous best
## Run 8 stress 0.0339592 
## ... Procrustes: rmse 1.238987e-05  max resid 2.135384e-05 
## ... Similar to previous best
## Run 9 stress 0.0339592 
## ... Procrustes: rmse 1.017131e-05  max resid 1.799031e-05 
## ... Similar to previous best
## Run 10 stress 0.0339592 
## ... Procrustes: rmse 1.118966e-05  max resid 2.051083e-05 
## ... Similar to previous best
## Run 11 stress 0.03395919 
## ... Procrustes: rmse 2.065146e-06  max resid 4.902426e-06 
## ... Similar to previous best
## Run 12 stress 0.0339592 
## ... Procrustes: rmse 1.712618e-05  max resid 2.99993e-05 
## ... Similar to previous best
## Run 13 stress 0.0339592 
## ... Procrustes: rmse 5.830032e-06  max resid 1.015275e-05 
## ... Similar to previous best
## Run 14 stress 0.0339592 
## ... Procrustes: rmse 1.830454e-06  max resid 3.369993e-06 
## ... Similar to previous best
## Run 15 stress 0.03395919 
## ... Procrustes: rmse 1.793848e-06  max resid 4.310326e-06 
## ... Similar to previous best
## Run 16 stress 0.03395919 
## ... Procrustes: rmse 2.750906e-06  max resid 5.189539e-06 
## ... Similar to previous best
## Run 17 stress 0.03395919 
## ... Procrustes: rmse 2.140851e-06  max resid 3.452452e-06 
## ... Similar to previous best
## Run 18 stress 0.0339592 
## ... Procrustes: rmse 1.902157e-05  max resid 3.252084e-05 
## ... Similar to previous best
## Run 19 stress 0.0339592 
## ... Procrustes: rmse 5.910961e-06  max resid 1.144259e-05 
## ... Similar to previous best
## Run 20 stress 0.0339592 
## ... Procrustes: rmse 4.610894e-06  max resid 9.674482e-06 
## ... Similar to previous best
## *** Solution reached

Plot de distancias de la ordenación y el ajuste frente a las disimilitudes originales.

stressplot(nmds) 

nmds
## 
## Call:
## metaMDS(comm = NMetrico_Ambientales, k = 2, trymax = 100) 
## 
## global Multidimensional Scaling using monoMDS
## 
## Data:     wisconsin(NMetrico_Ambientales) 
## Distance: bray 
## 
## Dimensions: 2 
## Stress:     0.03395919 
## Stress type 1, weak ties
## Two convergent solutions found after 20 tries
## Scaling: centring, PC rotation, halfchange scaling 
## Species: expanded scores based on 'wisconsin(NMetrico_Ambientales)'

En el grafico de Shepard anterior podemos notar que los puntos se acoplan bien a las lineas, por lo que podriamos decir que el ajuste del modelo es bueno. Mientras que el Stress es de 0.03 por lo que el modelo presenta buen ajuste. Es decir que es muy valido para tomar una decision

plot(nmds)

Mejora de la representación gráfica

plot(nmds, type="t")

Complicando la representación

ordiplot(nmds,type="n")
orditorp(nmds,display="species",col="blue",air=0.01)
orditorp(nmds,display="sites",cex=1.2,air=0.01)

Obteniendo esto podemos decir, que el posible mejorar dicha representacion.

Ejemplo en SPSS .

Escalamineto multidimensional métrico
Se tiene una matriz de distancias recorridas por diferentes marcas de autos.

Seleccionar
\(\checkmark\) Analizar
\(\checkmark\)Escala
\(\checkmark\)Escalamiento multidimensional (ALSCAL).
\(\checkmark\)Se seleccionan las variables
\(\checkmark\)Filas: La variable categorica.
-Modelo

\(\blacklozenge\) Nivel de medición: Razón
\(\blacklozenge\) Condicionalidad: Matriz
\(\blacklozenge\) Modelo de escalamiento: Distancia euclidea
-Opciones
\(\diamondsuit\)Visualización:Graficos de grupos, resumen de modelo y de las opciones

Se obtiene la salida textual del procedimiento ALSCAL.

Opciones de procedimiento Alscal

Data Options-

Number of Rows (Observations/Matrix). 10
Number of Columns (Variables) . . . 10
Number of Matrices . . . . . . 1
Measurement Level . . . . . . . Ratio
Data Matrix Shape . . . . . . . Symmetric
Type . . . . . . . . . . . Dissimilarity
Approach to Ties . . . . . . . Leave Tied
Conditionality . . . . . . . . Matrix
Data Cutoff at . . . . . . . . .000000

Model Options-

Model . . . . . . . . . . . Euclid
Maximum Dimensionality . . . . . 2
Minimum Dimensionality . . . . . 2
Negative Weights . . . . . . . Not Permitted

Output Options-

Job Option Header . . . . . . . Printed
Data Matrices . . . . . . . . Not Printed
Configurations and Transformations . Plotted
Output Dataset . . . . . . . . Not Created
Initial Stimulus Coordinates . . . Computed

Algorithmic Options-

Maximum Iterations . . . . . . 30
Convergence Criterion . . . . . .00100
Minimum S-stress . . . . . . . .00500
Missing Data Estimated by . . . . Ulbounds

Iteration history for the 2 dimensional solution (in squared distances)

              Young's S-stress formula 1 is used.

            Iteration     S-stress      Improvement

                1           .33459
                2           .30650         .02809
                3           .30356         .00294
                4           .30277         .00078

                     Iterations stopped because
             S-stress improvement is less than   .001000


                                     Stress and squared correlation (RSQ) in distances

                         RSQ values are the proportion of variance of the scaled data (disparities)
                                    in the partition (row, matrix, or entire data) which
                                     is accounted for by their corresponding distances.
                                       Stress values are Kruskal's stress formula 1.



            For  matrix
Stress  =   .25257      RSQ =  .66507



       Configuration derived in 2 dimensions



               Stimulus Coordinates

                    Dimension

Stimulus   Stimulus     1        2
Number      Name

   1      Audi       -.1082   1.0672
   2      BMW       -1.0259   -.0730
   3      Citroen     .9342   1.1647
   4      Daewoo    -1.2829   -.4993
   5      Fiat       1.1664    .4046
   6      Ford      -1.3793   -.5766
   7      Honda       .8999   1.0698
   8      Huyndai   -1.1992    .1238
   9      Mercede     .6990   -.7331
  10      Nissan     1.2960  -1.9481

Podemos observar a través de la fórmula de Young que el proceso iterativo se detiene en la tercera iteración al no conseguir una mejora superior a 0.001

Los estadisticos de Stress y RSQ nos indican el ajuste a la solución.Stress es un indicador de la maldad de ajuste, por lo que cuanto mas próximo sea su valor a cero, mejor será el ajuste.En dicho ejemplo se tiene un Stress de 0.25257 este es menor que 0.5, tambien se tiene un RSQ de 0.66507, para este indicador de la bondad de ajuste, se necesita que sea cercano a uno, entre mas cerca este mejor será.Por lo tanto el ajuste a la solución del procedimiento ALSCAL para el MDS es mínimo razonable.
Configuración de estímulos derivada.Modelo de distancia euclídea

En el gráfico “Configuración de estímulos derivada. Modelo de distancia euclídea” sepuede ver la posición de cada variable en relación con las demás. Se observa lossubgrupos:Citroen,Honda,Fiat , por un lado y BMW,Huyndai,Ford,Daewoo por el otro lado, con comportamientosimilar dentro del grupo, y se observa que la Audi,Mercedes Nissan tienen comportamiento distinto a las demás variable.

Diagrama de dispersión o ajuste lineal, Modelo de distancias euclidea

Sí se puedeobservar que los valores altos están mejor ajustados que los bajos, este efecto sedebe a que el índice Stress busca el mejor ajuste entre disparidades y distancias alcuadrado, con lo que tiende a ajustar mejor las distancias mayores que las menores,por lo que el grado de ajuste para estas últimas tiende siempre a ser más bajo quepara las primeras.

Escalamiento multidimensional no métrico

Se presentan los mismos datos que en el ejemplo anterior
Seleccionar
\(\checkmark\) Analizar
\(\checkmark\)Escala
\(\checkmark\)Escalamiento multidimensional (ALSCAL).
\(\checkmark\)Se seleccionan las variables
\(\checkmark\)Filas: La variable categorica.
-Modelo

\(\blacklozenge\) Nivel de medición: Ordinal
\(\blacklozenge\) Condicionalidad: Matriz
\(\blacklozenge\) Modelo de escalamiento: Distancia euclidea
-Opciones
\(\diamondsuit\)Visualización:Graficos de grupos,individual, resumen de modelo y de las opciones

Se obtiene la salida textual del procedimiento ALSCAL.

Alscal Procedure Options

Data Options-

Number of Rows (Observations/Matrix). 10
Number of Columns (Variables) . . . 10
Number of Matrices . . . . . . 1
Measurement Level . . . . . . . Ordinal
Data Matrix Shape . . . . . . . Symmetric
Type . . . . . . . . . . . Dissimilarity
Approach to Ties . . . . . . . Leave Tied
Conditionality . . . . . . . . Matrix
Data Cutoff at . . . . . . . . .000000

Model Options-

Model . . . . . . . . . . . Euclid
Maximum Dimensionality . . . . . 2
Minimum Dimensionality . . . . . 2
Negative Weights . . . . . . . Not Permitted

Output Options-

Job Option Header . . . . . . . Printed
Data Matrices . . . . . . . . Not Printed
Configurations and Transformations . Plotted
Output Dataset . . . . . . . . Not Created
Initial Stimulus Coordinates . . . Computed

Algorithmic Options-

Maximum Iterations . . . . . . 30
Convergence Criterion . . . . . .00100
Minimum S-stress . . . . . . . .00500
Missing Data Estimated by . . . . Ulbounds
Tiestore . . . . . . . . . . 45

Iteration history for the 2 dimensional solution (in squared distances)

              Young's S-stress formula 1 is used.

            Iteration     S-stress      Improvement

                1           .30348
                2           .26538         .03811
                3           .25743         .00795
                4           .25086         .00656
                5           .24642         .00445
                6           .24268         .00374
                7           .23944         .00324
                8           .23663         .00281
                9           .23424         .00239
               10           .23227         .00197
               11           .23064         .00163
               12           .22929         .00135
               13           .22818         .00111
               14           .22727         .00092

                     Iterations stopped because
             S-stress improvement is less than   .001000


                                     Stress and squared correlation (RSQ) in distances

                         RSQ values are the proportion of variance of the scaled data (disparities)
                                    in the partition (row, matrix, or entire data) which
                                     is accounted for by their corresponding distances.
                                       Stress values are Kruskal's stress formula 1.



            For  matrix
Stress  =   .20990      RSQ =  .76576



       Configuration derived in 2 dimensions



               Stimulus Coordinates

                    Dimension

Stimulus   Stimulus     1        2
 Number      Name

  1      Audi       1.1698    .1435
  2      BMW         .5509   -.8596
  3      Citroen    1.2691    .7128
  4      Daewoo      .0222  -1.3623
  5      Fiat       -.4305    .9199
  6      Ford        .3474  -1.4210
  7      Honda       .4793   1.1329
  8      Huyndai    -.4486   -.8973
  9      Mercede    -.5704    .2971
 10      Nissan    -2.3892   1.3342

Podemos observar a través de la fórmula de Young que el proceso iterativo se detiene en la trece interación al no conseguir una mejora superior a 0.001

Los estadisticos de Stress y RSQ nos indican el ajuste a la solución.Stress es un indicador de la maldad de ajuste, por lo que cuanto mas próximo sea su valor a cero, mejor será el ajuste.En dicho ejemplo se tiene un Stress de 0.20990 este es menor que 0.5, tambien se tiene un RSQ de 0.76576, para este indicador de la bondad de ajuste, se necesita que sea cercano a uno, entre mas cerca este mejor será.Por lo tanto el ajuste a la solución del procedimiento ALSCAL para el MDS es mínimo razonable.

Diagrama de dispersión o ajuste lineal.Modelo de distancia euclidea

En la figura anterior se observa el gráfico de ajuste lineal entre las disparidades derivadas a partir de nuestros datos y las distancias entre ciudades en el espacio de dos dimensiones. El ajuste no parece ser excelente.
Diagrama de dispersión o ajuste no lineal.Modelo de distancia euclidea

En el gráfico de ajuste no lineal se diferencia con el anterior, que ahora se representa en el eje horizontal los rangos originales(y no sus transformaciones) frente a las distancias derivadas por el MDS.Podemos notar que hay algunos mejores en cuanto a los rangos mayores.
Diagrama de dispersión de transformación.Modelo de distancia euclidea
El gráfico de transformación que representa los rangos originales de la matriz de proximidades frente a los datos transformados.Como tiene pocos tramos horizontales, se podria decir que el ajuste es aceptable.

Análisis de Correspondencias simples y múltples.

El Análisis de Correspondencias (AC) es una tÈcnica multivariante que permite representar las categorias de las filas y columnas de una tabla de contingencia.
Supongamos que tenemos dos variables categóricas A y B con I y J categorías respectivamente, y que han sido observadas cruzando las I categorías A con las J categorías B, obteniendo \(n=\sum_{ij}f_{ij}\) observaciones, donde \(f_{ij}\) es el número de veces en que aparece la intersección \(A_i\cap B_j\), dando lugar a la tabla de contigencia \(IxJ\):
donde \(f_{i.}=\sum_jf_{ij}\) es la frecuencia marginal de \(A_{i,}f_{.j}=\sum_if_{ij}\) es la frecuencia marginal de \(B_{j}\).Debemos tener en cuenta que, en realidad, la tabla anterior resume la matriz de datos inicial, que típicamente es de la forma:

en la que damos el valor 1 cuando se presenta una característica y 0 cuando no se presenta. Así, el individuo “1” presentaría las características \(A_1\) y \(B_1\), el individuo “i” presentaría las características \(A_I\) y \(B_2\), y el individuo “n” las características \(A_I\) y \(B_J\). La matriz de datos \(nx(I + J)\) es pues
\[Z=[X,Y]\] A partir de ahora utilizaremos el nombre de variables filas y variables columnas a las variables A y B, respectivamente. Indiquemos por \(N = (f_{ij})\) la matriz \(IxJ\) con las frecuencias de la tabla de contingencia y por \(1_k\) el vector de unos de dimensión k. La matriz.
\[P=\frac{1}{n}N\] es la matriz de correspondencias. Indiquemos por r el vector \(Ix1\) con los totales marginales de las filas de P, y por c el vector \(Jx1\) con los totales marginales de las columnas de P : \[r=P1_J, \qquad c=P'1_I\] Tenemos entonces que \[r=\frac{1}{n}X'1_n, \qquad c=\frac{1}{n}Y'1_n\] son los vectores de medias de las matrices de datos \(X,Y\). Indiquemos además \[D_r)diag(r) \qquad D_c=diag(c),\] las matrices diagonales que contienen los valores marginales de Ölas y columnas de P. Se verifica \[XX'=nD_r, \qquad YY'=nD_c, \qquad X'Y=nP=N\] Por lo tanto, las matrices de covarianzas entre Ölas, entre columnas y entre filas y columnas, son \[S_{11}=D_r-rr', \qquad S_{22}=D_c=cc', \qquad S_{12}=P-rc'\] Puesto que la suma de las variables es igual a 1, las matrices \(S_{11}\) y \(S_{22}\) son singulares.

Corrrespondencia Simple

Si las variables estudiadas son cualitativas, es necesario acudir al Análisis de Correspondencia Simple (si se trabajan con dos variables). La matriz de coordenadas (distancias) utilizando la distancia chi‐cuadrado, que permitirá calibrar la magnitud de las diferencias entre la tabla de datos analizada y una tabla de datos sin relación entre las variables.

El método consiste en encontrar la descomposición en valores singulares de la matriz:

\(C=(r_{ij})\) siendo \(r_{ij}=\frac{n_{ij}-e_{ij}}{\sqrt{e_{ij}}}\)

para construir un sistema de coordenadas (generalmente, bidimensional) asociado a las filas y columnas de la tabla de contingencia, que refleje las relaciones existentes entre dichas filas y columnas.

En la representación tienen un papel importante las llamadas distancias \(χ^2\) entre perfiles, que son las que el análisis de correspondencias intenta reproducir en sus representaciones gráficas. Dichas distancias son distancias pitagóricas ponderadas entre perfiles que vienen dadas por las siguientes expresiones:
Distancia entre perfiles fila: \(d_{ij}=\sum_{h=1}^m \frac{1}{N_{i.}}[\frac{n_{ih}}{N_{i.}}-\frac{n_{jh}}{N_{j.}}]^2\)
Distancia entre perfiles columnas: \(d_{ij}^c=\sum_{h=1}^k \frac{1}{N_{h.}}[\frac{n_{hi}}{N_{.i}}-\frac{n_{hj}}{N_{.j}}]^2\)

Las distancias no se miden entre dos filas o dos columnas sino con relación al perfil medio de fila o columna, es decir, con relación al promedio de las coordenadas de esa fila (o columna) ponderada por su masa (peso proporcional a su importancia en el conjunto).
Este perfil medio aparecerá situado en el origen de coordenadas y es conocido como centro de gravedad. La media de las distancias al cuadrado de cada punto de fila al centro de gravedad se conoce como inercia de filas, o inercia de columnas cuando se trata de las columnas, e inercia total de la nube de puntos cuando se consideran todos los elementos de la tabla. Una inercia baja significa que todos los productos están situados muy cerca del centro de gravedad y que en consecuencia son muy similares, mientras que altos valores de inercia en determinadas categorías implican grandes diferencias del perfil medio de las filas o las columnas.

Posteriormente se procede a diagonalizar la matriz C de varianza‐covarianza con el fin de obtener los vectores y valores propios que definirán los nuevos ejes sobre los que será proyectada la nube de puntos. Cuando la cantidad de inercia explicada con los primeros factores sea alta bastará con seleccionar un pequeño número de éstos (dos o tres) y representar la nube de puntos sobre gráficos de dos o tres dimensiones, obteniendo así una visión simplificada de las relaciones.

El análisis de correspondencias busca encontrar dos matrices (A, B) de coordenadas cartesianas:
\[A=\begin{equation} \begin{bmatrix} a'_1\\ a'_2\\ .\\ .\\ .\\ a'_k \end{bmatrix} \end{equation}\] que representa a los puntos fila con \(a_i=(a_{i1},..,a_{ih})'\)

\[B=\begin{equation} \begin{bmatrix} b'_1\\ b'_2\\ .\\ .\\ .\\ b'_m \end{bmatrix} \end{equation}\]

que representa a los puntos columna con \(b_j=(b_{j1},..,b_{jh})'\)

(generalmente h=2)

Hay diversas formas de calcular las matrices A y B, conocidas como normalizaciones. Una forma muy utilizada es la conocida como normalización simétrica o canónica (ACC), que busca satisfacer que el producto escalar \((a_i .b_j )\) sea proporcional a los residuos tipificados \(r_{ij}.\)

La normalizacion simétrica o canónica descompone la matriz \(C=(r_{ij})\) en valores singulares calculando matrices \(U_{kxh}\), D Y \(V_{mxh}\), con \(H=mínimo {k-1,m-1}\), tales que \(C=UDV'\), SIENDO \(U'U=V'V=I\), \[D=diagonal{\mu_i,\mu_2,..,\mu_H} \qquad donde \qquad \mu_i = valores \qquad singulares(i=1,..,H)\] Las matrices A y B se calculan a partir de las expresiones \(A=D_k^{-1/2}UD\) y \(B=D_m^{-1/2}VD\) con \(D_k= diagonal \qquad {n_1,n_2,..,n_k}, D_m=diagonal \qquad {n_1,n_2,..,n_m}\)

Corrrespondencia Múltiple

El AC combina y representa dos variables categÛricas. Pero se puede adaptar para estudiar más de dos variables. Presentemos primero el procedimiento para dos variables, que después generalizaremos.
Escribimos la matriz \(n x (I+J)\) de datos binarios como una matriz \(n x (J_1 + J_2)\) \[Z=[Z_1,Z_2]\] Entonces tenemos que

\[B_u=Z'Z=\begin{equation} \begin{bmatrix} Z_1'Z_1 & Z_1'Z_2\\ Z_2'Z_1 & Z_2'Z_2 \end{bmatrix} \end{equation}\] \[=\begin{equation} \begin{bmatrix} D_r & P\\ P' & D_c \end{bmatrix} \end{equation}\]

La matriz de frecuencias, donde F y C contienen las marginales de filas y columnas,

\[B_u=\begin{equation} \begin{bmatrix} F & N\\ N' & C \end{bmatrix} \end{equation}\] es la llamada matriz de Burt.

La matriz de Burt se construye por superposición de cajas. En los bloques diagonales aparecen matrices diagonales conteniendo las frecuencias marginales de cada una de las variables analizadas. Fuera de la diagonal aparecen las tablas de frecuencias cruzadas correspondientes a todas las combinaciones 2 a 2 de las variables analizadas. Se toman como dimensiones aquellas cuya distribución a la inercia supera (1/p).

Ejemplo en R

Correspondencia Simple

Estos datos corresponden a una encuesta que se realizó a 500 personas con relación tipo de trabajo con respecto a su nivel academico obteniendo los siguientes datos.

#Crear la matriz de datos
CorrespondenciaS <- matrix(c(70,    90, 35, 
                      68,   49, 38, 
                      54,   22, 40, 
                      39,   27, 58,
                      23, 50, 34),nrow=4,byrow=T) #ncol=3
CorrespondenciaS
##      [,1] [,2] [,3] [,4]
## [1,]   70   90   35   68
## [2,]   49   38   54   22
## [3,]   40   39   27   58
## [4,]   23   50   34   70
#Nombrar filas y columnas
library(automap)

dimnames(CorrespondenciaS)<- list(Tipo_Trabajo=c("Formal",  "Informal", "Dependiente","Otro"),
                                  Nivel_academico=c("Sin educación","primaria","secundaria","superior"))
CorrespondenciaS
##              Nivel_academico
## Tipo_Trabajo  Sin educación primaria secundaria superior
##   Formal                 70       90         35       68
##   Informal               49       38         54       22
##   Dependiente            40       39         27       58
##   Otro                   23       50         34       70
addmargins(CorrespondenciaS)
##              Nivel_academico
## Tipo_Trabajo  Sin educación primaria secundaria superior Sum
##   Formal                 70       90         35       68 263
##   Informal               49       38         54       22 163
##   Dependiente            40       39         27       58 164
##   Otro                   23       50         34       70 177
##   Sum                   182      217        150      218 767

Podemos observa que en la ultima fila nos aparecen la suma correspondiente a cada columna, es decir la visualización de una Tabla de Contingencia usando una matriz gráfica.

#Con las gráficas se analizará la asociación entre las variables

#Primera forma - Balloonplots
library(gplots)

# Convertir los datos en una tabla
CS <- as.table(CorrespondenciaS)
CS
##              Nivel_academico
## Tipo_Trabajo  Sin educación primaria secundaria superior
##   Formal                 70       90         35       68
##   Informal               49       38         54       22
##   Dependiente            40       39         27       58
##   Otro                   23       50         34       70
str(CS)
##  'table' num [1:4, 1:4] 70 49 40 23 90 38 39 50 35 54 ...
##  - attr(*, "dimnames")=List of 2
##   ..$ Tipo_Trabajo   : chr [1:4] "Formal" "Informal" "Dependiente" "Otro"
##   ..$ Nivel_academico: chr [1:4] "Sin educación" "primaria" "secundaria" "superior"
# Para graficarlo con % fila (perifles fila)
CS <- prop.table(CS,margin=1) 
CS
##              Nivel_academico
## Tipo_Trabajo  Sin educación  primaria secundaria  superior
##   Formal          0.2661597 0.3422053  0.1330798 0.2585551
##   Informal        0.3006135 0.2331288  0.3312883 0.1349693
##   Dependiente     0.2439024 0.2378049  0.1646341 0.3536585
##   Otro            0.1299435 0.2824859  0.1920904 0.3954802
#Grafico Nivel academico Nivel economico
balloonplot(t(CS), 
            main ="Gráfico Nivel académico Tipo de trabajo", 
            xlab ="Nivel académico", 
            ylab="Tipo de trabajo",
            label = F, cum.margins=F, 
            label.lines=F, show.margins = FALSE)

Balloonplot se encarga de trazar una matriz gráfica donde cada celda contiene un punto cuyo tamaño refleja la magnitud relativa del componente correspondiente. Por lo que la magnitud mayor se aprecia en un nivel academico superior en cual posee un diferente trabajo.

#Segunda forma - Mosaicos
library(graphics)
mosaicplot(t(CS),shade=F)

Prueba de Independencia Chi-Cuadrado

Contrastamos la hipótesis nula de independencia entre las dos variables que conforman la tabla de contingencia.

\(H_0:\)Las variables son independientes

\(H_1:\)Las variables son dependientes

Aplicación del test Chi-Cuadrado

prueba <- chisq.test(CorrespondenciaS)
prueba
## 
##  Pearson's Chi-squared test
## 
## data:  CorrespondenciaS
## X-squared = 63.472, df = 9, p-value = 2.857e-10

Tenemos p-value de 2.857e-10, por rechaza la hipótesis nula.Es decir que las variables están asociadas.

#Tabla de perfiles fila y perfiles columnas

# Frecuencia Relativa (fij)
prop.table(CorrespondenciaS)
##              Nivel_academico
## Tipo_Trabajo  Sin educación   primaria secundaria   superior
##   Formal         0.09126467 0.11734029 0.04563233 0.08865711
##   Informal       0.06388527 0.04954368 0.07040417 0.02868318
##   Dependiente    0.05215124 0.05084746 0.03520209 0.07561930
##   Otro           0.02998696 0.06518905 0.04432855 0.09126467
# Perfiles Fila
prop.table(CorrespondenciaS, 1) 
##              Nivel_academico
## Tipo_Trabajo  Sin educación  primaria secundaria  superior
##   Formal          0.2661597 0.3422053  0.1330798 0.2585551
##   Informal        0.3006135 0.2331288  0.3312883 0.1349693
##   Dependiente     0.2439024 0.2378049  0.1646341 0.3536585
##   Otro            0.1299435 0.2824859  0.1920904 0.3954802

Los datos observados anteriormente podemos notar que se tiene un margen de 1, el cual usa los totales de las filas.

# Perfiles Columna
prop.table(CorrespondenciaS, 2) 
##              Nivel_academico
## Tipo_Trabajo  Sin educación  primaria secundaria  superior
##   Formal          0.3846154 0.4147465  0.2333333 0.3119266
##   Informal        0.2692308 0.1751152  0.3600000 0.1009174
##   Dependiente     0.2197802 0.1797235  0.1800000 0.2660550
##   Otro            0.1263736 0.2304147  0.2266667 0.3211009

Los datos observados tiene un margen de 2, el cual usa usa los totales de las columnas.

# Tabla con el paquete gmodels y función CrossTable()
library(gmodels)

CrossTable(CorrespondenciaS,
           prop.t=F,         # Frecuencia Relativa
           prop.r=F,         # Perfil Fila
           prop.c=F,         #Perfil Columna
           prop.chisq=FALSE)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |-------------------------|
## 
##  
## Total Observations in Table:  767 
## 
##  
##              | Nivel_academico 
## Tipo_Trabajo | Sin educación |      primaria |    secundaria |      superior |     Row Total | 
## -------------|---------------|---------------|---------------|---------------|---------------|
##       Formal |            70 |            90 |            35 |            68 |           263 | 
## -------------|---------------|---------------|---------------|---------------|---------------|
##     Informal |            49 |            38 |            54 |            22 |           163 | 
## -------------|---------------|---------------|---------------|---------------|---------------|
##  Dependiente |            40 |            39 |            27 |            58 |           164 | 
## -------------|---------------|---------------|---------------|---------------|---------------|
##         Otro |            23 |            50 |            34 |            70 |           177 | 
## -------------|---------------|---------------|---------------|---------------|---------------|
## Column Total |           182 |           217 |           150 |           218 |           767 | 
## -------------|---------------|---------------|---------------|---------------|---------------|
## 
## 
Correspondencia Múltiple

Se utilizará la una base brinda por el paquete “Factoextra”, la cual nos ayudara a la interpretación de un análisis de correspondencia múltiple.

#Cargar los paquetes
library("FactoMineR")
library("factoextra")
# Conjuntos de datos de demostración poison disponibles en el paquete FactoMineR
data(poison)
head(poison[, 1:7], 3)
#Subconjunto solo de individuos activos y variables para análisis de correspondencia múltiple
Subc.poison <- poison[1:55, 5:15]
head(Subc.poison[, 1:6], 3)
#Resumen Estadistico
summary(Subc.poison)[, 1:4]
##       Nausea      Vomiting   Abdominals     Fever   
##  Nausea_n:43   Vomit_n:33   Abdo_n:18   Fever_n:20  
##  Nausea_y:12   Vomit_y:22   Abdo_y:37   Fever_y:35

El tamaño de cada categoría de variable Nauseas de 43, vomit con 33, abdominals con 18 y Fever de 20

# Utilizando la función MCA ().Un formato simplificado es:
  
res.mca <- MCA(Subc.poison, graph = FALSE)

#Salida de la función MCA () es una lista que incluye:
  
  print(res.mca)
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 55 individuals, described by 11 variables
## *The results are available in the following objects:
## 
##    name              description                       
## 1  "$eig"            "eigenvalues"                     
## 2  "$var"            "results for the variables"       
## 3  "$var$coord"      "coord. of the categories"        
## 4  "$var$cos2"       "cos2 for the categories"         
## 5  "$var$contrib"    "contributions of the categories" 
## 6  "$var$v.test"     "v-test for the categories"       
## 7  "$ind"            "results for the individuals"     
## 8  "$ind$coord"      "coord. for the individuals"      
## 9  "$ind$cos2"       "cos2 for the individuals"        
## 10 "$ind$contrib"    "contributions of the individuals"
## 11 "$call"           "intermediate results"            
## 12 "$call$marge.col" "weights of columns"              
## 13 "$call$marge.li"  "weights of rows"

El objeto que se crea usando la función MCA () contiene mucha información que se encuentra en muchas listas y matrices diferentes.

get_eigenvalue(res.mca)
##        eigenvalue variance.percent cumulative.variance.percent
## Dim.1  0.33523140        33.523140                    33.52314
## Dim.2  0.12913979        12.913979                    46.43712
## Dim.3  0.10734849        10.734849                    57.17197
## Dim.4  0.09587950         9.587950                    66.75992
## Dim.5  0.07883277         7.883277                    74.64319
## Dim.6  0.07108981         7.108981                    81.75217
## Dim.7  0.06016580         6.016580                    87.76876
## Dim.8  0.05577301         5.577301                    93.34606
## Dim.9  0.04120578         4.120578                    97.46663
## Dim.10 0.01304158         1.304158                    98.77079
## Dim.11 0.01229208         1.229208                   100.00000

Se extrae los valores propios / varianzas retenidos por cada dimensión (eje)

fviz_eig(res.mca)

Visualización los valores propios / varianzas

get_mca_ind(res.mca)
## Multiple Correspondence Analysis Results for individuals
##  ===================================================
##   Name       Description                       
## 1 "$coord"   "Coordinates for the individuals" 
## 2 "$cos2"    "Cos2 for the individuals"        
## 3 "$contrib" "contributions of the individuals"
get_mca_var(res.mca)
## Multiple Correspondence Analysis Results for variables
##  ===================================================
##   Name       Description                  
## 1 "$coord"   "Coordinates for categories" 
## 2 "$cos2"    "Cos2 for categories"        
## 3 "$contrib" "contributions of categories"

Se extraen los resultados para individuos y variables, respectivamente.

#Funciones Factoextra
  
#Autovalores / Varianzas
#La proporción de variaciones retenidas por las diferentes dimensiones (ejes) se puede extraer utilizando la función get_eigenvalue()[ paquete de factoextra ] de la siguiente manera:
 
library("factoextra")
 eig.val <- get_eigenvalue(res.mca)
 
#Para visualizar los porcentajes de inercia explicados por cada dimensión de MCA, use la función fviz_eig()o fviz_screeplot()[ paquete factoextra ]:
    
fviz_screeplot(res.mca, addlabels = TRUE, ylim = c(0, 45))

Los porcentajes de inercia explicados por las dimensiones

#Biplot
#La función fviz_mca_biplot()[ paquete factoextra ] se usa para dibujar el biplot de individuos y categorías de variables:
  
fviz_mca_biplot(res.mca, 
                  repel = TRUE, 
                  ggtheme = theme_minimal())
## Warning: ggrepel: 29 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

#Gráfica de variables
#Resultados
#La función get_mca_var()[in factoextra ] se utiliza para extraer los resultados de las categorías de variables. Esta función devuelve una lista que contiene las coordenadas, el cos2 y la contribución de las categorías de variables:
  
var <- get_mca_var(res.mca)
var
## Multiple Correspondence Analysis Results for variables
##  ===================================================
##   Name       Description                  
## 1 "$coord"   "Coordinates for categories" 
## 2 "$cos2"    "Cos2 for categories"        
## 3 "$contrib" "contributions of categories"
#Se puede acceder a los diferentes componentes de la siguiente manera:
# Coordinates
head(var$coord)
##               Dim 1       Dim 2        Dim 3       Dim 4       Dim 5
## Nausea_n  0.2673909  0.12139029 -0.265583253  0.03376130  0.07370500
## Nausea_y -0.9581506 -0.43498187  0.951673323 -0.12097801 -0.26410958
## Vomit_n   0.4790279 -0.40919465  0.084492799  0.27361142  0.05245250
## Vomit_y  -0.7185419  0.61379197 -0.126739198 -0.41041713 -0.07867876
## Abdo_n    1.3180221 -0.03574501 -0.005094243 -0.15360951 -0.06986987
## Abdo_y   -0.6411999  0.01738946  0.002478280  0.07472895  0.03399075
# Cos2: quality on the factore map
head(var$cos2)
##              Dim 1        Dim 2        Dim 3       Dim 4       Dim 5
## Nausea_n 0.2562007 0.0528025759 2.527485e-01 0.004084375 0.019466197
## Nausea_y 0.2562007 0.0528025759 2.527485e-01 0.004084375 0.019466197
## Vomit_n  0.3442016 0.2511603912 1.070855e-02 0.112294813 0.004126898
## Vomit_y  0.3442016 0.2511603912 1.070855e-02 0.112294813 0.004126898
## Abdo_n   0.8451157 0.0006215864 1.262496e-05 0.011479077 0.002374929
## Abdo_y   0.8451157 0.0006215864 1.262496e-05 0.011479077 0.002374929
#Correlación entre variables y dimensiones principales
#Para visualizar la correlación entre las variables y las dimensiones principales de MCA, escriba esto:
head(var$contrib)  
##              Dim 1       Dim 2        Dim 3      Dim 4      Dim 5
## Nausea_n  1.515869  0.81100008 4.670018e+00 0.08449397 0.48977906
## Nausea_y  5.431862  2.90608363 1.673423e+01 0.30277007 1.75504164
## Vomit_n   3.733667  7.07226253 3.627455e-01 4.25893721 0.19036376
## Vomit_y   5.600500 10.60839380 5.441183e-01 6.38840581 0.28554563
## Abdo_n   15.417637  0.02943661 7.192511e-04 0.73219636 0.18424268
## Abdo_y    7.500472  0.01432051 3.499060e-04 0.35620363 0.08963157
fviz_mca_var(res.mca, choice = "mca.cor", 
               repel = TRUE, # Avoid text overlapping (slow)
               ggtheme = theme_minimal())

#Coordenadas de categorías de variables
#El código R a continuación muestra las coordenadas de cada categoría de variable en cada dimensión (1, 2 y 3):
  
head(round(var$coord, 2), 4) 
##          Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Nausea_n  0.27  0.12 -0.27  0.03  0.07
## Nausea_y -0.96 -0.43  0.95 -0.12 -0.26
## Vomit_n   0.48 -0.41  0.08  0.27  0.05
## Vomit_y  -0.72  0.61 -0.13 -0.41 -0.08
#Utilice la función fviz_mca_var()[in factoextra ] para visualizar solo categorías de variables:
  
  fviz_mca_var(res.mca, col.var="blue", shape.var = 15,
               repel = TRUE)

#Calidad de representación de categorías de variables
  head(var$cos2, 4)  
##              Dim 1      Dim 2      Dim 3       Dim 4       Dim 5
## Nausea_n 0.2562007 0.05280258 0.25274850 0.004084375 0.019466197
## Nausea_y 0.2562007 0.05280258 0.25274850 0.004084375 0.019466197
## Vomit_n  0.3442016 0.25116039 0.01070855 0.112294813 0.004126898
## Vomit_y  0.3442016 0.25116039 0.01070855 0.112294813 0.004126898
# Color by cos2 values: quality on the factor map
  fviz_mca_var(res.mca, col.var = "cos2",
               gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), 
               repel = TRUE, # Avoid text overlapping
               ggtheme = theme_minimal())  

  # Change the transparency by cos2 values
  fviz_mca_var(res.mca, alpha.var="cos2",
               repel = TRUE,
               ggtheme = theme_minimal())

  #Puede visualizar el cos2 de las categorías de filas en todas las dimensiones usando el paquete corrplot:
    
    library("corrplot")
  corrplot(var$cos2, is.corr=FALSE)

  #También es posible crear un diagrama de barras de la variable cos2 usando la función fviz_cos2()[in factoextra ]:
    
    # Cos2 of variable categories on Dim.1 and Dim.2
    fviz_cos2(res.mca, choice = "var", axes = 1:2) 

 #Contribución de las categorías de variables a las dimensiones
    head(round(var$contrib,2), 4) 
##          Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Nausea_n  1.52  0.81  4.67  0.08  0.49
## Nausea_y  5.43  2.91 16.73  0.30  1.76
## Vomit_n   3.73  7.07  0.36  4.26  0.19
## Vomit_y   5.60 10.61  0.54  6.39  0.29
  #El código R a continuación muestra las 15 categorías de variables principales que contribuyen a las dimensiones:
      
  # Contributions of rows to dimension 1
      fviz_contrib(res.mca, choice = "var", axes = 1, top = 15)

  # Contributions of rows to dimension 2
    fviz_contrib(res.mca, choice = "var", axes = 2, top = 15)    

  #Las contribuciones totales a las dimensiones 1 y 2 se obtienen de la siguiente manera:
      
  # Total contribution to dimension 1 and 2
      fviz_contrib(res.mca, choice = "var", axes = 1:2, top = 15)

  #Las categorías de variables más importantes (o contribuyentes) se pueden resaltar en el diagrama de dispersión de la siguiente manera:
        
        fviz_mca_var(res.mca, col.var = "contrib",
                     gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), 
                     repel = TRUE, # avoid text overlapping (slow)
                     ggtheme = theme_minimal()
        ) 

 #Gráfico de individuos
        ind <- get_mca_ind(res.mca)
        ind      
## Multiple Correspondence Analysis Results for individuals
##  ===================================================
##   Name       Description                       
## 1 "$coord"   "Coordinates for the individuals" 
## 2 "$cos2"    "Cos2 for the individuals"        
## 3 "$contrib" "contributions of the individuals"
#Para obtener acceso a los diferentes componentes, use esto:
          
          # Coordinates of column points
          head(ind$coord)
##        Dim 1       Dim 2       Dim 3       Dim 4       Dim 5
## 1 -0.4525811 -0.26415072  0.17151614  0.01369348 -0.11696806
## 2  0.8361700 -0.03193457 -0.07208249 -0.08550351  0.51978710
## 3 -0.4481892  0.13538726 -0.22484048 -0.14170168 -0.05004753
## 4  0.8803694 -0.08536230 -0.02052044 -0.07275873 -0.22935022
## 5 -0.4481892  0.13538726 -0.22484048 -0.14170168 -0.05004753
## 6 -0.3594324 -0.43604390 -1.20932223  1.72464616  0.04348157
        # Quality of representation
        head(ind$cos2)
##        Dim 1        Dim 2        Dim 3        Dim 4        Dim 5
## 1 0.34652591 0.1180447167 0.0497683175 0.0003172275 0.0231460846
## 2 0.55589562 0.0008108236 0.0041310808 0.0058126211 0.2148103098
## 3 0.54813888 0.0500176790 0.1379484860 0.0547920948 0.0068349171
## 4 0.74773962 0.0070299584 0.0004062504 0.0051072923 0.0507479873
## 5 0.54813888 0.0500176790 0.1379484860 0.0547920948 0.0068349171
## 6 0.02485357 0.0365775483 0.2813443706 0.5722083217 0.0003637178
        # Contributions
        head(ind$contrib)   
##      Dim 1      Dim 2        Dim 3        Dim 4      Dim 5
## 1 1.110927 0.98238297  0.498254685  0.003555817 0.31554778
## 2 3.792117 0.01435818  0.088003703  0.138637089 6.23134138
## 3 1.089470 0.25806722  0.856229950  0.380768961 0.05776914
## 4 4.203611 0.10259105  0.007132055  0.100387990 1.21319013
## 5 1.089470 0.25806722  0.856229950  0.380768961 0.05776914
## 6 0.700692 2.67693398 24.769968729 56.404214518 0.04360547
#Parcelas: calidad y aportación
 fviz_mca_ind(res.mca, col.ind = "cos2", 
                     gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
                     repel = TRUE, # Avoid text overlapping (slow if many points)
                     ggtheme = theme_minimal())
## Warning: ggrepel: 25 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

 #El siguiente código R crea gráficos de barras de los individuos cos2 y contribuciones:
   
 fviz_mca_ind(res.mca, 
              label = "none", # hide individual labels
              habillage = "Vomiting", # color by groups 
              palette = c("#00AFBB", "#E7B800"),
              addEllipses = TRUE, ellipse.type = "confidence",
              
gtheme = theme_minimal()) 

 # habillage = index of the column to be used as grouping variable
 fviz_mca_ind(res.mca, habillage = 2, addEllipses = TRUE)

 # habillage = external grouping variable
 fviz_mca_ind(res.mca, habillage = poison$Vomiting, addEllipses = TRUE)

 fviz_ellipses(res.mca, c("Vomiting", "Fever"),
               geom = "point")

 #Descripción de la dimensión
 res.desc <- dimdesc(res.mca, axes = c(1,2))
 # Description of dimension 1
 res.desc[[1]]
## $quali
##                   R2      p.value
## Abdominals 0.8451157 4.055640e-23
## Diarrhae   0.7994680 3.910776e-20
## Fever      0.7846788 2.600566e-19
## Mayo       0.3829749 4.756234e-07
## Vomiting   0.3442016 2.510738e-06
## Nausea     0.2562007 8.062777e-05
## Cheese     0.1944181 7.534834e-04
## 
## $category
##                       Estimate      p.value
## Abdominals=Abdo_n    0.5671866 4.055640e-23
## Diarrhae=Diarrhea_n  0.5380920 3.910776e-20
## Fever=Fever_n        0.5330918 2.600566e-19
## Mayo=Mayo_n          0.4644981 4.756234e-07
## Vomiting=Vomit_n     0.3466915 2.510738e-06
## Nausea=Nausea_n      0.3547892 8.062777e-05
## Cheese=Cheese_n      0.3830043 7.534834e-04
## Cheese=Cheese_y     -0.3830043 7.534834e-04
## Nausea=Nausea_y     -0.3547892 8.062777e-05
## Vomiting=Vomit_y    -0.3466915 2.510738e-06
## Mayo=Mayo_y         -0.4644981 4.756234e-07
## Fever=Fever_y       -0.5330918 2.600566e-19
## Diarrhae=Diarrhea_y -0.5380920 3.910776e-20
## Abdominals=Abdo_y   -0.5671866 4.055640e-23
## 
## attr(,"class")
## [1] "condes" "list"
 # Description of dimension 2
 res.desc[[2]]
## $quali
##                  R2      p.value
## Courgette 0.4464145 2.500166e-08
## Potato    0.3957543 2.690662e-07
## Vomiting  0.2511604 9.728027e-05
## Icecream  0.1409011 4.743927e-03
## 
## $category
##                       Estimate      p.value
## Courgette=Courg_n    0.4176013 2.500166e-08
## Potato=Potato_y      0.4977523 2.690662e-07
## Vomiting=Vomit_y     0.1838104 9.728027e-05
## Icecream=Icecream_n  0.2597197 4.743927e-03
## Icecream=Icecream_y -0.2597197 4.743927e-03
## Vomiting=Vomit_n    -0.1838104 9.728027e-05
## Potato=Potato_n     -0.4977523 2.690662e-07
## Courgette=Courg_y   -0.4176013 2.500166e-08
## 
## attr(,"class")
## [1] "condes" "list"

Ejemplo en SPSS

Ejemplo Correspondencia Simple

Se tienen 9 variables rama de conocimiento, la cual se refiere a la carrera desarrolada,siendo las demas variables calculadas segun el tipo de inteligencia tales como: Inteligencia Naturalista, matemática, corporal, musical, interpersonal, visual espacial, Linguistica y intrapersonal. Codificada con No=0 y Si=1.

Procedimiento: Seleccionar
\(\checkmark\) Ponderar casos
\(\checkmark\) Variable de frecuencia:Frecuencia

\(\checkmark\) Analizar
\(\checkmark\)Reducción de dimensiones
\(\checkmark\)Análisis de correspondencia.
\(\checkmark\)Fila:Rama de conocimiento

-Rango

\(\blacklozenge\) Minimo:1
\(\blacklozenge\) Máximo:5
\(\blacklozenge\) Actualizar

Ahora modificamos lo siguiente
\(\checkmark\)Fila:Inteligencia multiple

-Rango

\(\blacklozenge\) Minimo:1
\(\blacklozenge\) Máximo:8

Se obtiene la salida:

Tabla de correspondencias
rama_conocimiento Inteligencias_multiples
Inteligencia matemática Inteligencia musical inteligencia interpersonal Inteligencia naturalista Inteligencia Visual-Espacial Inteligencia Intrapersonal Inteligencia Lingüística Inteligencia Corporal Margen activo
Ciencias 12 2 5 16 15 12 10 7 79
Ciencias de la Salud 10 4 5 14 14 13 10 12 82
Arquitectura_Ingenieria 18 4 6 8 19 8 6 5 74
Ciencias Sociales 10 8 14 11 10 14 17 16 100
Artes_Humanidades 9 19 12 8 15 9 17 16 105
Margen activo 59 37 42 57 73 56 60 56 440

En la tabla anterior de correspondencia, se ha agrupado por ramas de conocimiento y inteligencias múltiple. Por lo que se puede concluir para cada casilla de la siguiente manera.Por lo que personas de ciencia con inteligencia matemática hay 12 y asi para cada una respectivamente. Podemos observar que se tiene un total de 440 casos.

Resumen
Dimensión Valor singular Inercia Chi cuadrado Sig. Proporción de inercia Valor singular de confianza
Contabilizado para Acumulado Desviación estándar Correlación
2
1 0.290 0.084 0.665 0.665 0.046 0.078
2 0.178 0.032 0.250 0.915 0.047
3 0.094 0.009 0.069 0.984
4 0.045 0.002 0.016 1.000
Total 0.127 55.695 .001a 1.000 1.000
a. 28 grados de libertad

En la tabla resumen, nos interesa la significancia la cual es de 0.001 la cual es menor a 0.05 por lo cual es estadisticamente significativo por lo que hay una relación entre las categorias del modelo. Podrias observar que se tiene porción de inercia acumulada de 91.5%

Puntos de fila generales
rama_conocimiento Masa Puntuación en dimensión Inercia Contribución
1 2 Del punto en la inercia de dimensión De la dimensión en la inercia del punto
1 2 1 2 Total
Ciencias 0.180 -0.566 0.283 0.021 0.198 0.081 0.800 0.123 0.923
Ciencias de la Salud 0.186 -0.257 0.356 0.010 0.043 0.132 0.358 0.420 0.778
Arquitectura_Ingenieria 0.168 -0.619 -0.718 0.035 0.222 0.487 0.533 0.440 0.973
Ciencias Sociales 0.227 0.344 0.354 0.017 0.093 0.160 0.448 0.291 0.739
Artes_Humanidades 0.239 0.735 -0.323 0.043 0.444 0.140 0.864 0.102 0.966
Total activo 1.000 0.127 1.000 1.000
a. Normalización simétrica

En la tabala anterior podemos notar que en la parte del punto de la inercia de dimensión 1, la que mas aportado es de Artes_Humanidades minetras que en la 2, la que mas apartado es la Arquitectura_Ingeneria.

Puntos de columna generales
Inteligencias_multiples Masa Puntuación en dimensión Inercia Contribución
1 2 Del punto en la inercia de dimensión De la dimensión en la inercia del punto
1 2 1 2 Total
Inteligencia matemática 0.134 -0.610 -0.507 0.022 0.172 0.193 0.667 0.282 0.950
Inteligencia musical 0.084 1.126 -0.634 0.039 0.367 0.190 0.800 0.156 0.956
inteligencia interpersonal 0.095 0.477 -0.003 0.010 0.075 0.000 0.615 0.000 0.615
Inteligencia naturalista 0.130 -0.480 0.501 0.016 0.103 0.183 0.531 0.355 0.886
Inteligencia Visual-Espacial 0.166 -0.443 -0.439 0.016 0.112 0.180 0.601 0.362 0.962
Inteligencia Intrapersonal 0.127 -0.225 0.435 0.006 0.022 0.136 0.296 0.682 0.978
Inteligencia Lingüística 0.136 0.368 0.246 0.007 0.064 0.046 0.743 0.203 0.946
Inteligencia Corporal 0.127 0.439 0.318 0.010 0.084 0.072 0.680 0.219 0.899
Total activo 1.000 0.127 1.000 1.000
a. Normalización simétrica

En la tabala anterior podemos notar que en la parte del punto de la inercia de dimensión 1, la que mas aportado es de Inteligencia_Musical minetras que en la 2, la que mas apartado es la inteligencia_matemática entre otras.

En el grafico anterior podemos notar que entre mas cerca esten los puntos, mayor sera la relacion entre las categorias. la arquiterura_Ingeneria se interesan por la inteligencia visual y matemática. Yasi estudiar todo a detalle.

Ejemplo Correspondencia Múltiple

En este documento, se abordará un análisis de correspondencia multiple con la base de datos DogBreeds,la cual representa una tabla cruzada de 27 filas y 7 columnas, las filas corresponden a 27 “tipos de razas de perro”, en cuanto a las columnas, son 7 variables cualitativas: “tamaño”, “peso”, “velocidad” (Características Físicas) e “inteligencia”, “afectividad”, “agresividad” (características Mentales), además, como variable suplementaria se tiene a “función”.

Tamáño: Pequeño(sma), Mediano(med), largo(lar) Peso: ligero(lig), Medio(med), Pesado(hea) Velocidad: Bajo(low), Media(med), Alto(hig) Inteligencia: Bajo(low), Media(med), Alto(hig) Afectividad: Bajo(low), Alto(hig) Agresividad: Bajo(low), Alto(hig) Función: Compañia(com), Cazador(hun), Utilidad(uti)

Procedimiento: Seleccionar

\(\checkmark\) Analizar
\(\checkmark\)Reducción de dimensiones
\(\checkmark\)Escalamiento Óptimo.
\(\checkmark\)Dejamos todo por defecto, continuar.
\(\blacklozenge\) Variables de análisis:Seleccionamos las de nuestro interes.
\(\blacklozenge\) Etiquetado: variables ->Var(Razas)

-Objeto

\(\checkmark\)Etiquetar: var(raza)
\(\checkmark\)Continuar

-Variable

\(\checkmark\)Graficos de categoria: Tamaño,Peso y Velocidad
\(\checkmark\)Graficos de categoria conjuntas: Todas las variables

Obteniendo los siguientes resultados.

Podemos notar que en el gráfico anterior de Tamaño, muestra las siguientes categorias: grande, pequeño y mediano. Si prestamos atención nos damos cuenta que existe mucha dispersión entre las diversas categorias.

Para el gráfico de puntos de catégoria:Peso, muestra las siguientes categorias: medio, pesado y ligero.Si nos damos cuenta existe mucha dispersión entre las diversas categorias.

Para el gráfico de puntos de catégoria:Velocidad, muestra las siguientes categorias: alto, medio y bajo.Si nos damos cuenta existe mucha dispersión entre las diversas categorias como en los dos casos anteriores.

Para el gráfico anterior podemos notar que se ha trazo una recta x e y en el origen. Pudiendo hacer notar que el primer cuadrante esta lo que se ha calificado como Alto, en el segundo cuadrante podemos notar que se tiene en cuanto a mediano.Yasi para los dos cuadrantes restantes

Tomando de referencia la gráfica anterior podemos notar que las razas: dogo, bulm, mast y tern se encontrarian en una categoria de bajo tanto para inteligencia y afectividad.Y asi para los demás

Se aparecia el gráfico de medidas discriminantes.Donde se nota las dimensiones donde se explican dichas variables.

Análisis de Correlación Canónica.

El ACC es generalmente utilizado para investigar la presencia de cualquier patrón de cambio que ocurra de forma simultánea en dos conjuntos de variables por separado, para este objetivo se determina la correlación existente entre ellos En general, el ACC aborda los siguientes aspectos:
1. Calcula la magnitud de las relaciones lineales existentes entre dos conjuntos de variables observadas sobre los mismos individuos.
2. Deriva los pesos o ponderaciones para cada uno de los conjuntos de variables, de manera que las combinaciones lineales de cada conjunto esténmáximamente correlacionados. Otras funciones lineales que maximizan lacorrelación restante son independientes del conjunto o conjuntos anteriores de combinaciones lineales.
3. Explica la naturaleza de las relaciones que existen entre los dos conjuntosde variables, por lo general mediante la medición de la contribución relativade cada variable con las funciones canónicas (relaciones) que son extraídas

En el ACC se está interesado en las medidas de asociación entre dos gruposde variables. El primer grupo, depvariables, está representado por el vector aleatorio \(X= (x_1,x_2,x_p)\) de orden \((px1)\) y el segundo grupo, de q variables,está representado por el vector aleatorio \(Y= (y_1,y_2,..,y_q)\) de orden \((qx1)\),cada variable tomada sobre un número n de individuos.Se asume que,\(p \leq q\). Losvectores \(X\) y \(Y\) están representadas como matrices de datos como a continuación

\[X=\begin{equation} \begin{bmatrix} x_{11} & x_{12}&... & x_{1p}\\ x_{21} & x_{22}&... & x_{2p}\\ . & & . & .\\ . & & . & .\\ x_{n1} & x_{n2}&... & x_{np} \end{bmatrix} \end{equation}\]

\[Y=\begin{equation} \begin{bmatrix} y_{11} & y_{12}&... & y_{1p}\\ y_{21} & y_{22}&... & y_{2p}\\ . & & . & .\\ . & & . & .\\ y_{n1} & y_{n2}&... & y_{np} \end{bmatrix} \end{equation}\]

Con los vectores X y Y se calculan:

\[E[X]=\mu x, Var(X)=\sum xx\] \[E[Y]=\mu y, Var(Y)=\sum yy\] \[Cov(X,Y)=\sum xy=\sum 'yx\]

Se definen también U y V, que son combinaciones lineales que proporcionan medidas de resumen simples de los conjuntos de variables. \[U=a'X\] \[V=b'Y\] donde a y b son vectores de coeficientes. Ademas, sean
\[Var(U)=a'\sum_{XX} a\] \[Var(V)=b'\sum_{YY} b\] \[Cor(U,V)=a'\sum_{XX} b\]

Entonces el objetivo principal de la ACC es buscar los vectores de coeficientes a y b tales que

\[p=Corr(U,V)=\frac{a'\sum_{XY} b}{\sqrt{a'\sum_{XX} a}\sqrt{b'\sum_{yy} b}}\]

Sea maxima. Sujeto a \[a'\sum _{XX}a=b'\sum _{XX}b=1\]

Ejemplo en R

Para realizar el análisis de correlación canónica en R,datos obtenidos respecto 10 municipios donde se observa la presencia de 5 especies endémicas y 5 variables climaticas medidas en cada sitio. Esta información se proporciona en dos bases de datos.

#Cargar paquetes
library(fields)
library(CCA)
library(vegan)
library(readr)
#Matriz de datos clima
x1 <- c(18,26,25,38,36,24,32,36,27,26)
x2 <- c(58 ,85 ,30,90,38,38,28,68,54,41)
x3 <- c(30,19,56,43,12,12,32,11,23,20)
x4 <- c(54,23,66,52,22,25,37,45,41,50)
x5 <- c(32,31,30,33,39,36,35,33,35,30)
clima <- data.frame(x1, x2, x3,x4,x5)
clima
colnames(clima)<-c("temperatura","humedad","presion","presipitacion","radiacion")
clima
#Matriz de datos especies
y1 <- c(5,1, 1,10,1,100, 11,4, 1,1)
y2 <- c(0,3,0,8,3,85,8,5,3,2)
y3 <- c(3,1,2,1,30,4,141,2,3,26)
y4 <- c(1,0,4,5,1,10,3,0,5,3)
y5 <- c(1,5,3,1,99,0,143,1,0,2)
especies <- data.frame(y1, y2, y3,y4,y5)
especies
colnames(especies)<-c("Escarabajos","Arañas","Corales","Musgos","Esponjas")
especies
#Análisis de Correlación Canónica
mat_cor  <-matcor(clima,especies)
mat_cor
## $Xcor
##               temperatura     humedad     presion presipitacion  radiacion
## temperatura    1.00000000  0.24109139 -0.09558531    -0.1789809  0.4077607
## humedad        0.24109139  1.00000000 -0.05157632    -0.0347074 -0.2571578
## presion       -0.09558531 -0.05157632  1.00000000     0.7493482 -0.4755282
## presipitacion -0.17898087 -0.03470740  0.74934821     1.0000000 -0.6562061
## radiacion      0.40776071 -0.25715780 -0.47552825    -0.6562061  1.0000000
## 
## $Ycor
##             Escarabajos      Arañas     Corales      Musgos   Esponjas
## Escarabajos  1.00000000  0.99687444 -0.06930491  0.79622537 -0.1228720
## Arañas       0.99687444  1.00000000 -0.08417887  0.79313256 -0.1260129
## Corales     -0.06930491 -0.08417887  1.00000000 -0.06684124  0.8846077
## Musgos       0.79622537  0.79313256 -0.06684124  1.00000000 -0.1872049
## Esponjas    -0.12287201 -0.12601294  0.88460768 -0.18720492  1.0000000
## 
## $XYcor
##               temperatura     humedad     presion presipitacion  radiacion
## temperatura    1.00000000  0.24109139 -0.09558531   -0.17898087  0.4077607
## humedad        0.24109139  1.00000000 -0.05157632   -0.03470740 -0.2571578
## presion       -0.09558531 -0.05157632  1.00000000    0.74934821 -0.4755282
## presipitacion -0.17898087 -0.03470740  0.74934821    1.00000000 -0.6562061
## radiacion      0.40776071 -0.25715780 -0.47552825   -0.65620612  1.0000000
## Escarabajos   -0.21564458 -0.21953980 -0.28993062   -0.37385958  0.3318045
## Arañas        -0.18062085 -0.20852160 -0.33250371   -0.41651837  0.3523476
## Corales        0.21929713 -0.49538302  0.05206921   -0.16975994  0.2721984
## Musgos        -0.16226507 -0.28550374  0.11487339   -0.02959587  0.2180916
## Esponjas       0.38510939 -0.48290361 -0.06281521   -0.37275589  0.5652595
##               Escarabajos      Arañas     Corales      Musgos    Esponjas
## temperatura   -0.21564458 -0.18062085  0.21929713 -0.16226507  0.38510939
## humedad       -0.21953980 -0.20852160 -0.49538302 -0.28550374 -0.48290361
## presion       -0.28993062 -0.33250371  0.05206921  0.11487339 -0.06281521
## presipitacion -0.37385958 -0.41651837 -0.16975994 -0.02959587 -0.37275589
## radiacion      0.33180453  0.35234764  0.27219842  0.21809155  0.56525947
## Escarabajos    1.00000000  0.99687444 -0.06930491  0.79622537 -0.12287201
## Arañas         0.99687444  1.00000000 -0.08417887  0.79313256 -0.12601294
## Corales       -0.06930491 -0.08417887  1.00000000 -0.06684124  0.88460768
## Musgos         0.79622537  0.79313256 -0.06684124  1.00000000 -0.18720492
## Esponjas      -0.12287201 -0.12601294  0.88460768 -0.18720492  1.00000000
cca1<- cc(clima,especies)
cca1
## $cor
## [1] 1.00000000 0.96344690 0.61462696 0.43078726 0.01173142
## 
## $names
## $names$Xnames
## [1] "temperatura"   "humedad"       "presion"       "presipitacion"
## [5] "radiacion"    
## 
## $names$Ynames
## [1] "Escarabajos" "Arañas"      "Corales"     "Musgos"      "Esponjas"   
## 
## $names$ind.names
##  [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"
## 
## 
## $xcoef
##                      [,1]         [,2]        [,3]         [,4]        [,5]
## temperatura    0.06952561  0.055966365  0.15393229 -0.071068052  0.02208013
## humedad       -0.02301387 -0.003112791 -0.03312916 -0.034040770 -0.01399577
## presion        0.01506531 -0.058247578  0.01777373  0.001855502 -0.08155562
## presipitacion -0.05482296 -0.027254505 -0.02003715 -0.031300328  0.10032123
## radiacion      0.02710605 -0.375437964 -0.37447095 -0.180158615  0.17166248
## 
## $ycoef
##                    [,1]        [,2]        [,3]        [,4]         [,5]
## Escarabajos -0.17294744 -0.26685042 -0.16598471  0.11992413  0.221806969
## Arañas       0.21862529  0.35095008  0.15697218 -0.11109765 -0.246726664
## Corales     -0.01008075  0.02644946  0.03095195  0.03397736 -0.004637471
## Musgos       0.02056065 -0.41127712  0.16869286 -0.10054148 -0.336260084
## Esponjas     0.02356280 -0.02630642 -0.01648117 -0.02182765  0.009591631
## 
## $scores
## $scores$xscores
##              [,1]        [,2]       [,3]       [,4]        [,5]
##  [1,] -1.52590709 -0.67970868 -1.4796699  0.4660922  0.36271003
##  [2,] -0.08438941  1.54502785 -0.3425873  0.1085052 -2.22304350
##  [3,] -0.71522905 -1.29140114  1.4960857  0.9547137 -0.35076385
##  [4,] -0.53923785 -0.73813818  0.4355045 -2.1380099 -0.73275524
##  [5,]  1.85873280 -0.31752348 -0.3463405 -0.4252162  0.49942704
##  [6,]  0.77863849  0.05543052 -1.1302265  0.8741753  0.02044177
##  [7,]  1.18130665 -0.58227831  0.9220232  0.4877033 -0.26187968
##  [8,] -0.27031308  1.27311453  0.4279821 -1.0872507  1.43852282
##  [9,] -0.11956166 -0.52783252 -0.9491087 -0.1839173  0.39911509
## [10,] -0.56403979  1.26330941  0.9663373  0.9432044  0.84822553
## 
## $scores$yscores
##              [,1]       [,2]        [,3]       [,4]       [,5]
##  [1,] -1.52590709 -0.7725955 -0.95946097  0.4146705  1.5909857
##  [2,] -0.08438941  1.6008090 -0.12112701 -0.4530428  0.3474794
##  [3,] -0.71522905 -1.0180875  0.14664218 -0.4442831 -0.2812017
##  [4,] -0.53923785 -0.9972544  0.07926049 -0.3446107 -0.6095582
##  [5,]  1.85873280 -0.5162372 -0.60405720 -1.6200400  0.7783459
##  [6,]  0.77863849  0.0586328 -1.81970403  1.5150940 -1.3496885
##  [7,]  1.18130665 -0.4741378  1.56883789  1.6336999  0.9975346
##  [8,] -0.27031308  1.6338330 -0.20826016 -0.1941778  0.4764429
##  [9,] -0.11956166 -0.2711456  0.86664705 -0.7786573 -1.3910542
## [10,] -0.56403979  0.7561832  1.05122175  0.2713472 -0.5592859
## 
## $scores$corr.X.xscores
##                     [,1]        [,2]       [,3]         [,4]       [,5]
## temperatura    0.4797934  0.05697587  0.4016412 -0.768972531  0.1179730
## humedad       -0.4040437  0.35374824 -0.2197250 -0.714227723 -0.3914213
## presion       -0.4389514 -0.67713989  0.4949736  0.009372563 -0.3220505
## presipitacion -0.7575943 -0.39924505  0.4548292  0.005541102  0.2444461
## radiacion      0.8171193 -0.24288877 -0.4152518 -0.220200858  0.2289073
## 
## $scores$corr.Y.xscores
##                  [,1]        [,2]       [,3]       [,4]         [,5]
## Escarabajos 0.2797811 -0.02132130 -0.3750242 0.25674852 -0.005163379
## Arañas      0.3165523  0.02204322 -0.3690714 0.24040188 -0.005592726
## Corales     0.5201545 -0.15716757  0.3502943 0.21134737  0.004347151
## Musgos      0.1391218 -0.36074823 -0.1475350 0.19265723 -0.008956057
## Esponjas    0.7497428 -0.23442075  0.2196935 0.06522306  0.005601622
## 
## $scores$corr.X.yscores
##                     [,1]        [,2]       [,3]         [,4]         [,5]
## temperatura    0.4797934  0.05489323  0.2468595 -0.331263568  0.001383991
## humedad       -0.4040437  0.34081765 -0.1350489 -0.307680202 -0.004591927
## presion       -0.4389514 -0.65238833  0.3042241  0.004037581 -0.003778109
## presipitacion -0.7575943 -0.38465141  0.2795503  0.002387036  0.002867700
## radiacion      0.8171193 -0.23401043 -0.2552250 -0.094859724  0.002685408
## 
## $scores$corr.Y.yscores
##                  [,1]        [,2]       [,3]      [,4]       [,5]
## Escarabajos 0.2797811 -0.02213023 -0.6101656 0.5959984 -0.4401326
## Arañas      0.3165523  0.02287953 -0.6004803 0.5580524 -0.4767306
## Corales     0.5201545 -0.16313050  0.5699300 0.4906073  0.3705563
## Musgos      0.1391218 -0.37443499 -0.2400399 0.4472213 -0.7634249
## Esponjas    0.7497428 -0.24331465  0.3574420 0.1514043  0.4774889
#Gráficos del análisis de correspondencia canónica.
img.matcor(mat_cor, type = 2)

plt.cc(cca1,var.label=T)

#Otra manera de realizarlo en R
cca2<- cca(clima,especies)
cca2
## Call: cca(X = clima, Y = especies)
## 
##               Inertia Proportion Rank
## Total         0.08809    1.00000     
## Constrained   0.05612    0.63707    4
## Unconstrained 0.03197    0.36293    4
## Inertia is scaled Chi-square 
## 
## Eigenvalues for constrained axes:
##    CCA1    CCA2    CCA3    CCA4 
## 0.03745 0.01704 0.00114 0.00050 
## 
## Eigenvalues for unconstrained axes:
##      CA1      CA2      CA3      CA4 
## 0.021625 0.008453 0.001892 0.000003
#Grágico plot
plot(cca2)

Ejemplo en SPSS

Se tiene la base coches el procemiendo para implementar ánalisis de correspondencia canónica es el siguiente:

\(\checkmark\) Abrir sintaxis.
\(\checkmark\)Ejecutar el siguiente comando:

MANOVA
CV PESO MOTOR WITH CONSUMO ACEL
/DISCRIM(ALL ALPHA(1.0))
/DESING

En el comando anterior se considera lo siguiente, primer conjunto de variables potencia(cv), peso(peso) y cilindrada(motor) y como segundo conjunto aceleración(acel) y consumo(consumo).

Los test multivariantes de Pillais, Hotellings, Lambda de Wilks y Poys, que contrasta la hipótesis nula de que la correlación entre los dos conjuntos de las variables es igual a cero.Teniendo esto en cuenta se procede a visualizar los resultados.

El término de error predeterminado en MANOVA ha cambiado de WITHIN CELLS a WITHIN+RESIDUAL. Tenga en cuenta que son los mismos para todos los diseños factoriales.

Analysis o f Variance

   392 cases accepted.
     0 cases rejected because of out-of-range factor values.
    14 cases rejected because of missing data.
     1 non-empty cell.

     1 design will be processed.

Analysis o f Variance – Design 1

EFFECT .. WITHIN CELLS Regression
Multivariate Tests of Significance (S = 2, M = 0, N = 192 1/2)

Test Name Value Approx. F Hypoth. DF Error DF Sig. of F
Pillais 1.18345 187.44701 6.00 776 0.00
Hotellings 4.86089 312.71749 6.00 772 0.00
Wilks 0.11901 244.92882 6.00 774 0.00
Roys 0.81007

Note.. F statistic for WILKS’ Lambda is exact.


EFFECT .. WITHIN CELLS Regression (Cont.)
Univariate F-tests with (2,389) D. F.

Variable Sq.Mul.R Adj. R-sq. Hypoth. MS Error MS F Sig. of F
Cv 0.80518 0.80418 230104.2743 286.25566 803.84183 0.00
Peso 0.69988 0.69834 11043959.9 24348.22526 453.58377 0.00
motor 0.7181 0.71665 415126657.1 837856.3724 495.46279 0.00

La primera parte de la salida ofrece diversos contraste y estadísticos para el ajuste.Observando un p-valor de cero, por lo cual se acepta la hipotesis de que el conjunto de que los dos conjuntos de variables están relacionados (no son independientes). Tambien se observa el contrstate de la F para la significatividad individual de cada variable en la correlación canónica.Dicho valor es de ceri para todos ellos, por lo cual se acepta significatividad de todas las variables.

Raw canonical coefficients for DEPENDENT variables
Function No. 

Variable 1 2
cv .02289 -.04014
Peso -.00041 .00759
motor .00014 -.00021

Standardized canonical coefficients for DEPENDENT variables
Function No.

Variable 1 2
cv 0.87508 -1.5345
Peso -0.11596 2.15616
motor 0.24696 -0.36273

Correlations between DEPENDENT and canonical variables
Function No.

Variable 1 2
cv 0.99695 -0.01137
Peso 0.86473 0.50214
motor 0.92268 0.27606

Variance in dependent variables explained by canonical variables

CAN. VAR. Pct Var DEP Cum Pct DEP Pct Var COV Cum Pct COV
1 86.43369 86.43369 70.01710 70.01710
2 10.94934 97.38303 4.08831 74.10541

Raw canonical coefficients for COVARIATES
Function No.

COVARIATE 1 2
Consumo 0.1855 0.22252
acel -0.14696 0.38593

Standardized canonical coefficients for COVARIATES
CAN. VAR.

COVARIATE 1 2
Consumo 0.73459 0.88095
acel -0.40818 1.07195

Correlations between COVARIATES and canonical variables
CAN. VAR.

COVARIATE 1 2
Consumo 0.93454 0.35586
acel -0.76802 0.64043

Variance in covariates explained by canonical variables

CAN. VAR Pct Var DEP Cum Pct DEP Pct Var COV Cum Pct COV
1 59.26519 59.26519 73.16083 73.16083
2 10.02131 69.2865 26.83917 100

Podemos notar que se tiene un porcentaje de varianza explicado por las variables canónicas en las variables dependientes superior a 70%. Por lo que se tiene una buena calidad de ajuste.

En cuanto a los coeficientes c´´anonicos estandarizados para las variables dependinetes y para los covariantes, tendriamos un primer par de combinaciones lineal definida como.

\[U_1=0.875cv -0.116 peso +0.247 motor\] \[V_1= 0.735 consumo - 0.408 acel\] El segundo par de combinaciones lineales es:
\[U_2=-1.534cv+2.156peso-0.363motor\] \[V_2= 0.881 consumo + 1.072 acel\] La parte anterior nos muestra una salida, de intervalos de confianza con un 95% para los parámetros de todas variables canónica.


Regression analysis for WITHIN CELLS error term
— Individual Univariate .9500 confidence intervals
Dependent variable .. cv Potencia (CV)

COVARIATE B Beta Std.Err. t-value Sig.of t Lower-95% CL-Upper
Consumo 6.3064744770 .6530234996 .24790 25.43935 .000 5.81908 6.79387
acel -5.1440262397 -.3737063733 .35334 -14.55820 .000 -5.83873 -4.44933

Dependent variable .. peso Peso total (kg)

COVARIATE B Beta Std.Err. t-value Sig.of t Lower-95% CL-Upper
Consumo 60.4252478839 .8420309493 2.28632 26.42903 .000 55.93016 64.92034
acel 1.1478611908 .0112223588 3.25876 .35224 .725 -5.25912 7.55484

Dependent variable .. motor Cilindrada en cc

COVARIATE B Beta Std.Err. t-value Sig.of t Lower-95% CL-Upper
Consumo 329.5169220958 .7586455975 13.41184 24.56911 .000 303.14816 355.88568
acel -97.9114120880 -.1581538233 19.11627 -5.12189 .000 -135.49555 -60.32728

Analysis of Variance–Design 1

EFFECT .. CONSTANT
Multivariate Tests of Significance (S = 1, M = 1/2, N = 192 1/2)

Test Name Value Exact F Hypoth.DF Error DF Sig. of F
Pillais .46613 112.63112 3.00 387.00 .000
Hotellings .87311 112.63112 3.00 387.00 .000
Wilks .53387 112.63112 3.00 387.00 .000
Roys .46613

Note.. F statistics are exact.


EFFECT .. CONSTANT (Cont.)
Univariate F-tests with (1,389) D. F.

Variable Hypoth.SS Error SS Hypoth.MS F Sig. of F
Cv 68192.66160 111353.45144 68192.66160 286.25566 .000
Peso 450099.48004 9471459.62527 450099.48004 24348.22526 .000
motor 5134118.58032 325926128.86719 5134118.58032 837856.37241 .014

EFFECT .. CONSTANT (Cont.)
Raw discriminant function coefficients
Function No.

Variable 1
Cv .07914
peso -.00117
motor -.00064

Standardized discriminant function coefficients
Function No.

Variable 1
Cv 1.33895
peso -.18320
motor -.58534

Correlations between DEPENDENT and canonical variables
Canonical Variable

Variable 1
Cv .83750
Peso .23330
Motor .13432

Estimates of effects for canonical variables
Canonical Variable

Parameter 1
1 7.97363
En la ultima parte podemos notar una salida que representa contraste de significatividad multivariante(conjunta) y univariante para las funciones discriminantes y estima sus coeficientes.

Conclusión

Se ha mostrado que la técnica de escalado multidimensional, a pesar de seguir siendo infrautilizada en muchas áreas, puede ser perfectamente utilizada en muchos casos, como alternativa a otras técnicas multivariantes o bien como complemento a las mismas.En el análisis de correspondencia simple y múltiple nos permite un análisis geométrico que permite visualizar la relación geométrica entre las categorías que conforman una tabla de contingencia, tambien nos permite conocer las asociaciones que se produce entre las categorías de columna y filas y entre ellas. Por lo estudiado podemos notar para variables de cualquier tipo que conformen una tabla de contigencia, teniendo en cuenta que se trabaja con datos cualitativos de estas.Podemos notar que es muy utilizado para realizar posicionamientos de atributos y marcas.
El análisis de correlación canónica, es el método de selección cuando se tienen variables multivariantes dependientes en un contexto de otra forma adecuado para regresión múltiple, estos se utiliza mejor como parte de un grupo de métodos analíticos.El ACC es capaz de describir en una forma objetiva(con datos) algunos de los patrones complejos en los datos de los estudios de campo entre otros.

En cuanto al casos prácticos realizados podemos notar que R tienen muchos paquetes, los cuales brindan mas a detalles el estudio de estos temas. En cuanto a SPSS nos ayuda a que la practica de dichos temas, sea un poco más accesible dado a que no se debe utilizar un código. Solo es de familiarizarse con el sotfware, dado a que nos brinda una hoja de resultados en la cual los resultados son bien detallados, en cuanto a las tablas obtenidas podemos notar que trae aclaraciones si dicho proceso no ha brindado lo esperado o mensajes de alerta.