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.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.
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.
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: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.
\[\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.
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 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.
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 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.
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}\)
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).
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últipleSe 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 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.
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\]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)
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 |
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.