1-práctica de análisis de correspondencias simple …gallardo/pdf/acs-11.pdf1-práctica de...

17
1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional de un estudio sobre los peligros del hábito de fumar, el director de una gran compañía, decide realizar un estudio sobre sus empleados. Para ello elige convenientemente una muestra de 193 personas correspondiente al 10%, de entre las cinco categorías profesionales existentes en la empresa: Directivos senior, Directivos junior, Empleados senior, Empleados junior y Administrativos, según nomenclatura anglosajona. El hábito de fumar se categoriza en 4 niveles: No, Poco, Regular y Mucho. Posteriormente se pregunta a los 193 empleados de la muestra de la compañía sobre si consumen bebidas alcohólicas, por la posible influencia en el hábito de fumar. Los datos obtenidos se reflejan en las siguientes tablas: Plantilla No Poco Regular Mucho Total Dir_sen 4 2 3 2 11 Dir_jun 4 3 7 4 18 Empl_sen 25 10 12 4 18 Empl-Jun 18 24 33 13 88 Adminis 10 6 7 2 25 Total 61 45 62 25 193 A través de un estudio similar al realizado por el director de la empresa, se conoce que el porcentaje a nivel nacional, de los diferentes niveles de hábitos de fumar es el siguiente: NO 42%, POCO 29%, REGULAR 20%, MUCHO 9%. En este ejemplo la información sobre los hábitos de bebidas alcohólicas entre los empleados de la empresa, y los datos del estudio a nivel nacional, la vamos a tratar como puntos suplementarios. En esta práctica vamos a utilizar sucesivamente 3 métodos de resolución: 1. En primer lugar vais a realizar todo el proceso del Análisis de Correspondencias paso a paso, con cada una de las operaciones necesarias para obtener todos los resultados del análisis, hasta llegar a la representación gráfica de los perfiles fila y columna. Podéis guiaros por las órdenes que aparecen en esta simulación, indicando en cada paso la operación que estáis utilizando. 2. En segundo lugar vais a emplear el paquete ca de Michael Greenacre y Oleg Nenadic, de fecha 10/10/2018 cuya documentación está en este documento, del que debéis extraer las órdenes necesarias para realizar el correspondiente análisis, incluyendo los puntos suplementarios. 3. En tercer lugar utilizaréis el paquete anacor de Jan de Leeuw, publicado el 29/4/2017, cuya documentación podéis encontrar aquí, y de la cual debéis extraer la información necesaria para realizar dicho análisis. 4. Por último debéis extraer las conclusiones del ejercicio, teniendo en cuenta que en estos tipos de problemas, se sacan 3 tipos de conclusiones. Las relacionadas con las categorías de las filas entre sí, las relacionadas con las de las columnas entre sí, y por último las relaciones que se dan entre las categorías de las filas y las columnas, pero antes de nada tendréis que definir la dimensión del problema, para saber qué gráficas (dimensiones), tenéis que analizar. Las conclusiones del ejercicio están resueltas en las páginas 10-11. En caso de duda o de no poder completar algún método de resolución, consultar el siguiente documento. Plantilla Bebe No_bebe Total Dir_sen 0 11 11 Dir_jun 1 17 18 Empl_sen 5 46 51 Empl-Jun 10 78 88 Adminis 7 18 25 Total 23 170 193

Upload: others

Post on 30-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

1-Práctica de Análisis de Correspondencias Simple en R

Después de la publicación a escala nacional de un estudio sobre los peligros del hábito de fumar, el director de una gran compañía, decide realizar un estudio sobre sus empleados. Para ello elige convenientemente una muestra de 193 personas correspondiente al 10%, de entre las cinco categorías profesionales existentes en la empresa: Directivos senior, Directivos junior, Empleados senior, Empleados junior y Administrativos, según nomenclatura anglosajona. El hábito de fumar se categoriza en 4 niveles: No, Poco, Regular y Mucho. Posteriormente se pregunta a los 193 empleados de la muestra de la compañía sobre si consumen bebidas alcohólicas, por la posible influencia en el hábito de fumar. Los datos obtenidos se reflejan en las siguientes tablas:

Plantilla No Poco Regular Mucho Total Dir_sen 4 2 3 2 11 Dir_jun 4 3 7 4 18

Empl_sen 25 10 12 4 18 Empl-Jun 18 24 33 13 88 Adminis 10 6 7 2 25

Total 61 45 62 25 193 A través de un estudio similar al realizado por el director de la empresa, se conoce que el porcentaje a nivel nacional, de los diferentes niveles de hábitos de fumar es el siguiente: NO 42%, POCO 29%, REGULAR 20%, MUCHO 9%. En este ejemplo la información sobre los hábitos de bebidas alcohólicas entre los empleados de la empresa, y los datos del estudio a nivel nacional, la vamos a tratar como puntos suplementarios. En esta práctica vamos a utilizar sucesivamente 3 métodos de resolución:

1. En primer lugar vais a realizar todo el proceso del Análisis de Correspondencias paso a paso, con cada una de las operaciones necesarias para obtener todos los resultados del análisis, hasta llegar a la representación gráfica de los perfiles fila y columna. Podéis guiaros por las órdenes que aparecen en esta simulación, indicando en cada paso la operación que estáis utilizando.

2. En segundo lugar vais a emplear el paquete ca de Michael Greenacre y Oleg Nenadic, de fecha 10/10/2018 cuya documentación está en este documento, del que debéis extraer las órdenes necesarias para realizar el correspondiente análisis, incluyendo los puntos suplementarios.

3. En tercer lugar utilizaréis el paquete anacor de Jan de Leeuw, publicado el 29/4/2017, cuya documentación podéis encontrar aquí, y de la cual debéis extraer la información necesaria para realizar dicho análisis.

4. Por último debéis extraer las conclusiones del ejercicio, teniendo en cuenta que en estos tipos de problemas, se sacan 3 tipos de conclusiones. Las relacionadas con las categorías de las filas entre sí, las relacionadas con las de las columnas entre sí, y por último las relaciones que se dan entre las categorías de las filas y las columnas, pero antes de nada tendréis que definir la dimensión del problema, para saber qué gráficas (dimensiones), tenéis que analizar. Las conclusiones del ejercicio están resueltas en las páginas 10-11. En caso de duda o de no poder completar algún método de resolución, consultar el siguiente documento.

Plantilla Bebe No_bebe Total Dir_sen 0 11 11 Dir_jun 1 17 18

Empl_sen 5 46 51 Empl-Jun 10 78 88 Adminis 7 18 25

Total 23 170 193

Page 2: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

ACS paso a paso

#matriz de datos por columnas > X <- matrix(c(4,4,25,18,10,2,3,10,24,6,3,7,12,33,7,2,4,4,13,2), ncol=4) > colnames(X) <- c("No", "Poco", "Regular","Mucho") > rownames(X) <- c("Dir_sen", "Dir_jun", "Emp_sen","Emp_jun","Adminis") > X No Poco Regular Mucho Dir_sen 4 2 3 2 Dir_jun 4 3 7 4 Emp_sen 25 10 12 4 Emp_jun 18 24 33 13 Adminis 10 6 7 2

#matriz de datos por filas > X <- matrix(c(4,2,3,2,4,3,7,4,25,10,12,4,18,24,33,13,10,6,7,2), nrow=5, byrow=T) > X [,1] [,2] [,3] [,4] [1,] 4 2 3 2 [2,] 4 3 7 4 [3,] 25 10 12 4 [4,] 18 24 33 13 [5,] 10 6 7 2

#matriz de datos por filas > X <- matrix(c(4,2,3,2,4,3,7,4,25,10,12,4,18,24,33,13,10,6,7,2), ncol=4, byrow=T) > X [,1] [,2] [,3] [,4] [1,] 4 2 3 2 [2,] 4 3 7 4 [3,] 25 10 12 4 [4,] 18 24 33 13 [5,] 10 6 7 2 #matriz de datos por columnas > X <- matrix(c(4,4,25,18,10,2,3,10,24,6,3,7,12,33,7,2,4,4,13,2), nrow=5) > X [,1] [,2] [,3] [,4] [1,] 4 2 3 2 [2,] 4 3 7 4 [3,] 25 10 12 4 [4,] 18 24 33 13 [5,] 10 6 7 2

#tabla de datos con los nombres de las variables > carfumar <- read.table("carfumar.asc",header=T) > carfumar No Poco Regular Mucho Dir_sen 4 2 3 2 Dir_jun 4 3 7 4 Emp_sen 25 10 12 4 Emp_jun 18 24 33 13 Adminis 10 6 7 2

#test de independencia chi cuadrado entre las 2 variables > chisq.test(carfumar) Pearson's Chi-squared test data: carfumar X-squared = 16.442, df = 12, p-value = 0.1718 > carfumar.mat <- as.matrix(carfumar) > carfumar.mat No Poco Regular Mucho Dir_sen 4 2 3 2 Dir_jun 4 3 7 4 Emp_sen 25 10 12 4 Emp_jun 18 24 33 13 Adminis 10 6 7 2

> carfumar.prop <- carfumar.mat/sum( carfumar) #f_ij > carfumar.prop No Poco Regular Mucho Dir_sen 0.02072539 0.01036269 0.01554404 0.01036269

Page 3: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

Dir_jun 0.02072539 0.01554404 0.03626943 0.02072539 Emp_sen 0.12953368 0.05181347 0.06217617 0.02072539 Emp_jun 0.09326425 0.12435233 0.17098446 0.06735751 Adminis 0.05181347 0.03108808 0.03626943 0.01036269

> carfumar.filat <- apply( carfumar.prop,1,sum) #f_i. > carfumar.filat Dir_sen Dir_jun Emp_sen Emp_jun Adminis fila.05699482 0.09326425 0.26424870 0.45595855 0.12953368

> carfumar.colt <- apply( carfumar.prop,2,sum) #f_.j > carfumar.colt No Poco Regular Mucho 0.3160622 0.2331606 0.3212435 0.1295337

> fdiag <- diag(1/sqrt(carfumar.filat)) #matriz diagonal con 1/sqrt(f_i.) > fdiag [,1] [,2] [,3] [,4] [,5] [1,] 4.188729 0.00000 0.000000 0.00000 0.000000 [2,] 0.000000 3.27448 0.000000 0.00000 0.000000 [3,] 0.000000 0.00000 1.945331 0.00000 0.000000 [4,] 0.000000 0.00000 0.000000 1.48094 0.000000 [5,] 0.000000 0.00000 0.000000 0.00000 2.778489

> cdiag <- diag(1/sqrt(carfumar.colt)) #matriz diagonal con 1/sqrt(f_.j) > cdiag [,1] [,2] [,3] [,4] [1,] 1.778745 0.000000 0.000000 0.000000 [2,] 0.000000 2.070963 0.000000 0.000000 [3,] 0.000000 0.000000 1.764342 0.000000 [4,] 0.000000 0.000000 0.000000 2.778489 > E <- fdiag%*%(carfumar.prop-carfumar.filat%*%t(carfumar.colt))%*%cdiag

#matriz X=(f_(ij)-f_i.f_.j)/sqrt(f_i.f.j) > E [,1] [,2] [,3] [,4] [1,] 0.02020239 -0.025384382 -0.02043562 0.03468162 [2,] -0.05097522 -0.042054470 0.03644840 0.07864884 [3,] 0.15922216 -0.039477006 -0.07795287 -0.07298869 [4,] -0.13394189 0.055330472 0.06404368 0.03413421 [5,] 0.05373569 0.005097772 -0.02618966 -0.04953368 Coordenadas con la autodescomposición de X’X y XX’

> eigen(t(E)%*%E) #autodescomposición de X'X=UDλU’, vectores u de las filas en R4 $values [1] 7.475911e-02 1.001718e-02 4.135741e-04 -1.467134e-17 $vectors [,1] [,2] [,3] [,4] [1,] 0.8087001 -0.17127755 -0.0246170 -0.5621941 [2,] -0.1756411 0.68056865 0.5223178 -0.4828671 [3,] -0.4069601 0.04167443 -0.7151246 -0.5667835 [4,] -0.3867013 -0.71116353 0.4638695 -0.3599079 > C_f <- (E/sqrt(carfumar.filat))%*%eigen(t(E)%*%E)$vectors[,1:2] #Coordenadas de las filas sobre los 2 primeros ejes [X/sqrt(f_i.)]U[,1:2], hay que dividir X por sqrt(f_i.) porque la X de X’X no es la misma que la X de Xuα, la de X’X lleva la raíz cuadrada de la masa de los puntos > C_f [,1] [,2] [1,] 0.06576838 -0.19373700 [2,] -0.25895842 -0.24330457 [3,] 0.38059489 -0.01065991 [4,] -0.23295191 0.05774391 [5,] 0.20108912 0.07891123

> eigen(E%*%t(E)) #autodescomposición de XX'=VDλV’, vectores v de las columnas en R5 $values [1] 7.475911e-02 1.001718e-02 4.135741e-04 6.098637e-19 -8.884879e-19 $vectors [,1] [,2] [,3] [,4] [,5] [1,] -0.05742524 0.46212293 0.8332653 0.00000000 -0.2980161 [2,] 0.28923816 0.74239515 -0.5061482 -0.08228828 -0.3197395 [3,] -0.71554563 0.05475038 -0.1303234 -0.66929754 -0.1416103

Page 4: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

[4,] 0.57530335 -0.38957951 0.1097504 -0.58195015 -0.4080965 [5,] -0.26469630 -0.28376408 -0.1430158 0.45453654 -0.7888960

> C_c <- (t(E)/sqrt(carfumar.colt))%*%eigen(E%*%t(E))$vectors[,1:2] #Coordenadas de las columnas sobre los 2 primeros ejes [X’/sqrt(f.j)]V[,1:2] > C_c [,1] [,2] [1,] -0.39330845 0.030492071 [2,] 0.09945592 -0.141064289 [3,] 0.19632096 -0.007359109 [4,] 0.29377599 0.197765656 Con la DVS de X

> carfumar.sva <- svd(E) #calcula la DVS de X=VDαU’, las letras de los vectores u y v están cambiadas respecto a la teoría, es decir $u son los vectores v de las columnas y $v son los vectores u de las filas. $d son los valores singulares, raíces cuadradas de los autovalores obtenidos con la función eigen > carfumar.sva $d [1] 2.734211e-01 1.000859e-01 2.033652e-02 5.600256e-17 $u [,1] [,2] [,3] [,4] [1,] -0.05742524 -0.46212293 0.8332653 -0.08273461 [2,] 0.28923816 -0.74239515 -0.5061482 -0.16781906 [3,] -0.71554563 -0.05475038 -0.1303234 -0.68230206 [4,] 0.57530335 0.38957951 0.1097504 -0.67236949 [5,] -0.26469630 0.28376408 -0.1430158 0.21765779 $v [,1] [,2] [,3] [,4] [1,] -0.8087001 -0.17127755 -0.0246170 0.5621941 [2,] 0.1756411 0.68056865 0.5223178 0.4828671 [3,] 0.4069601 0.04167443 -0.7151246 0.5667835 [4,] 0.3867013 -0.71116353 0.4638695 0.3599079

> raizlambda <- carfumar.sva$d #los valores singulares son las sqrt(autovalores) > raizlambda [1] 2.734211e-01 1.000859e-01 2.033652e-02 5.600256e-17

> U <- carfumar.sva$v[,1:2] #2 primeros vectores propios de las filas > U [,1] [,2] [1,] -0.80870 -0.171278 [2,] 0.17564 0.680569 [3,] 0.40696 0.041674 [4,] 0.38670 -0.711164

> V <- carfumar.sva$u[,1:2] #2 primeros vectores propios de las columnas > V [,1] [,2] [1,] -0.057425 -0.46212 [2,] 0.289238 -0.74240 [3,] -0.715546 -0.05475 [4,] 0.575303 0.38958 [5,] -0.264696 0.28376

> C_f1 <- raizlambda[1]*V[,1]/sqrt(carfumar.filat)#coordenadas de las filas sobre el 1º eje (vector propio) se utiliza la expresión Psi_1i=sqrt(lambda_1)*v_1i/sqrt(fi.)

> C_f2 <- raizlambda[2]*V[,2]/sqrt(carfumar.filat)#coordenadas de las filas sobre el 2º eje(vector propio) se utiliza la expresión Psi_2i=sqrt(lambda_2)*v_1i/sqrt(fi.)

> C_c1 <- raizlambda[1]*U[,1]/sqrt(carfumar.colt)#coordenadas de las columnas sobre el 1º eje (vector propio) se utiliza la expresión Phi_1j=sqrt(lambda_1)*u_1j/sqrt(f.j)

> C_c2 <- raizlambda[2]*U[,2]/sqrt(carfumar.colt)#coordenadas de las columnas sobre el 2º eje ( vector propio) se utiliza la expresión Phi_2j=sqrt(lambda_2)*u_2j/sqrt(f.j) > C_f1 [1] -0.065768 0.258958 -0.380595 0.232952 -0.201089 > C_f2

Page 5: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

[1] -0.193737 -0.243305 -0.010660 0.057744 0.078911 > C_c1 [1] -0.393308 0.099456 0.196321 0.293776 > C_c2 [1] -0.0304921 0.1410643 0.0073591 -0.1977657 > inercia <- sum(raizlambda[raizlambda>0]*raizlambda[raizlambda>0]) > inercia [1] 0.08518986 > pc1 <- (raizlambda[1]*raizlambda[1]/inercia)*100 > pc2 <- (raizlambda[2]*raizlambda[2]/inercia)*100 > pc1 [1] 87.75587 > pc2 [1] 11.75865 Puntos suplementarios

> f_suplem <- matrix(c(42,29,20,9),nrow=1) #fila suplementaria > rownames(f_suplem)<-"Promedio" > colnames(f_suplem)<-c("No","Poco","Regular","Mucho") > f_suplem No Poco Regular Mucho Promedio 42 29 20 9

> c_suplem <- matrix(c(0,1,5,10,7,11,17,46,78,18),ncol=2) #columnas suplementarias > rownames(c_suplem)<-c("Dir_sen","Dir_jun","Empl_sen","Empl_jun","Adminis") > colnames(c_suplem)<-c("Bebe","No_Bebe") > c_suplem Bebe No_Bebe Dir_sen 0 11 Dir_jun 1 17 Empl_sen 5 46 Empl_jun 10 78 Adminis 7 18 > sum(f_suplem) [1] 100

> pf_suplem <- f_suplem /sum(f_suplem) #perfil fila suplementario > pf_suplem No Poco Regular Mucho Promedio 0.42 0.29 0.2 0.09 > sum_c_suplem <- c(sum(c_suplem[,1]),sum(c_suplem[,2])) > sum_c_suplem [1] 23 170 > pc_suplem <- matrix(c(c_suplem[,1]/sum_c_suplem[1],c_suplem[,2]/sum_c_suplem[2]),ncol=2)

> pc_suplem #perfiles columnas suplementarios [,1] [,2] [1,] 0.00000000 0.06470588 [2,] 0.04347826 0.10000000 [3,] 0.21739130 0.27058824 [4,] 0.43478261 0.45882353 [5,] 0.30434783 0.10588235

> C_fS1 <- (pf_suplem%*%C_c1)/raizlambda[1] #coordenadas de la fila suplementaria Se usa esa exprexión con el perfil suplementario > C_fS1 [,1] Promedio -0.2583681 > C_fS2 <- (pf_suplem%*%C_c2)/raizlambda[2] > C_fS2 [,1] Promedio 0.1176478

> C_cS1_1 <- (pc_suplem[,1]%*%C_f1)/raizlambda[1] #coordenadas de las columnas suplementarias Se una esa fórmula con los perfiles columna suplementarios > C_cS1_1 [,1] [1,] -0.1148286 > C_cS1_2 <- (pc_suplem[,1]%*%C_f2)/raizlambda[2]

Page 6: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

> C_cS1_2 [,1] [1,] 0.361956 > C_cS2_1 <- (pc_suplem[,2]%*%C_f1)/raizlambda[1] > C_cS2_1 [,1] [1,] 0.01553563 > C_cS2_2 <- (pc_suplem[,2]%*%C_f2)/raizlambda[2] > C_cS2_2 [,1] [1,] -0.04897051 Representaciones gráficas

#Representación de los perfiles fila sobre los dos primeros ejes > plot(C_f1,C_f2,type="p", col="blue", cex=1, pch=17, + xlab=paste("Eje 1 % inercia=",format(pc1)), + ylab=paste("Eje 2 % inercia=",format(pc2)),xlim=c(-0.4,0.4), ylim=c(-0.3,0.37)) > abline(h=0,lty=2) > abline(v=0,,lty=2) > text(C_f1+0.03,C_f2+0.03,labels=c(dimnames(carfumar.mat)[[1]]),title(main="Perfiles fila"),col="blue" )

#Representación de los perfiles fila sobre los dos primeros ejes y el perfil fila suplementario > plot(C_f1,C_f2,type="p", pch=17,col="blue", cex=1, + xlab=paste("Eje 1 % inercia=",format(pc1)), + ylab=paste("Eje 2 % inercia=",format(pc2)),xlim=c(-0.4,0.4), ylim=c(-0.3,0.37)) > abline(h=0,lty=2) > abline(v=0,,lty=2) > points(C_fS1,C_fS2, pch=17,col=5, cex=1) > text(C_f1+0.03,C_f2+0.03,labels=c(dimnames(carfumar.mat)[[1]]),col="blue") > text(C_fS1+0.03,C_fS2+0.03, labels="Promedio",title(main="Perfiles fila y suplementario"),col=5)

-0.4 -0.2 0.0 0.2 0.4

-0.3

-0.1

0.0

0.1

0.2

0.3

Eje 1 % inercia= 87.75587

Eje

2 %

iner

cia

= 1

1.7

58

65

Perfiles fila

Dir_senDir_jun

Emp_sen

Emp_junAdminis

(figura-1)

Page 7: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

Perfiles columna > plot(C_c1,C_c2,type="p",pch=16,col="red", cex=1, + xlab=paste("Eje 1 % inercia=",format(pc1)), + ylab=paste("Eje 2 % inercia=",format(pc2)),xlim=c(-0.4,0.4), ylim=c(-0.3,0.37)) > abline(h=0,lty=2) > abline(v=0,,lty=2) > text(C_c1+0.03,C_c2+0.03,labels=c(dimnames(carfumar.mat)[[2]]),title(main="Perfiles columna"),col="red")

-0.4 -0.2 0.0 0.2 0.4

-0.3

-0.1

0.0

0.1

0.2

0.3

Eje 1 % inercia= 87.75587

Eje

2 %

ine

rcia

= 1

1.7

586

5

Dir_senDir_jun

Emp_sen

Emp_junAdminis

Perfiles fila y suplementario

Promedio

-0.4 -0.2 0.0 0.2 0.4

-0.3

-0.1

0.0

0.1

0.2

0.3

Eje 1 % inercia= 87.75587

Eje

2 %

ine

rcia

= 1

1.7

586

5

Perfiles columna

No

Poco

Regular

Mucho

(figura-2)

(figura-3)

Page 8: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

Perfiles columna y suplementarios > plot(C_c1,C_c2,type="p",pch=16,col="red", cex=1, + xlab=paste("Eje 1 % inercia=",format(pc1)), + ylab=paste("Eje 2 % inercia=",format(pc2)),xlim=c(-0.4,0.4), ylim=c(-0.3,0.37)) > abline(h=0,lty=2) > abline(v=0,,lty=2) > points(C_cS1_1,C_cS1_2, type="p", pch=16,col=6, cex=1 ) > points(C_cS2_1,C_cS2_2, type="p", pch=16,col=6, cex=1 ) > text(C_c1+0.03,C_c2+0.03,labels=c(dimnames(carfumar.mat)[[2]]),title(main="Perfiles columna y suplementarios"),col="red") > text(C_cS1_1+0.05,C_cS1_2+0.02, labels="Bebe", col=6) > text(C_cS2_1+0.03,C_cS2_2+0.03, labels="No_bebe", col=6)

Perfiles fila y columna > plot(C_f1,C_f2,type="p", pch=17,col="blue", cex=1, + xlab=paste("Eje 1 % inercia=",format(pc1)), + ylab=paste("Eje 2 % inercia=",format(pc2)),xlim=c(-0.4,0.4), ylim=c(-0.3,0.37)) > abline(h=0,lty=2) > abline(v=0,,lty=2) > points(C_c1,C_c2, type="p", pch=16,col=6, cex=1 ) > text(C_f1+0.03,C_f2+0.03,labels=c(dimnames(carfumar.mat)[[1]]),title(main="Perfiles fila y columna"),col="blue") > text(C_c1-0.02,C_c2+0.03,labels=c(dimnames(carfumar.mat)[[2]]),col="red")

-0.4 -0.2 0.0 0.2 0.4

-0.3

-0.1

0.0

0.1

0.2

0.3

Eje 1 % inercia= 87.75587

Eje

2 %

iner

cia

= 1

1.7

58

65

Perfiles columna y suplementarios

No

Poco

Regular

Mucho

Bebe

No_bebe

(figura-4)

Page 9: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

Todos los perfiles > plot(C_f1,C_f2,type="p",pch=17,col="blue", cex=1, + xlab=paste("Eje 1 % inercia=",format(pc1)), + ylab=paste("Eje 2 % inercia=",format(pc2)),xlim=c(-0.4,0.4), ylim=c(-0.3,0.37)) > abline(h=0,lty=2) > abline(v=0,,lty=2) > points(C_c1,C_c2, type="p", pch=16,col=6, cex=1 ) > points(C_fS1,C_fS2, pch=17,col=5, cex=1) > points(C_cS1_1,C_cS1_2, type="p",pch=16,col=6, cex=1 ) > points(C_cS2_1,C_cS2_2, type="p", pch=16,col=6, cex=1 ) > text(C_f1+0.03,C_f2+0.03,labels=c(dimnames(carfumar.mat)[[1]]),title(main="Perfiles fila, columna y suplementarios"),col="blue") > text(C_c1-0.02,C_c2+0.03,labels=c(dimnames(carfumar.mat)[[2]]),col="red") > text(C_fS1,C_fS2+0.04, labels="Promedio", col=5) > text(C_cS1_1+0.05,C_cS1_2+0.02, labels="Bebe",col=6) > text(C_cS2_1+0.03,C_cS2_2+0.03, labels="No_bebe",col=6)

-0.4 -0.2 0.0 0.2 0.4

-0.3

-0.1

0.0

0.1

0.2

0.3

Eje 1 % inercia= 87.75587

Eje

2 %

iner

cia=

11.

758

65

Perfiles fila y columna

Dir_senDir_jun

Emp_sen

Emp_junAdminis

No

Poco

Regular

Mucho

-0.4 -0.2 0.0 0.2 0.4

-0.3

-0.1

0.0

0.1

0.2

0.3

Eje 1 % inercia= 87.75587

Eje

2 %

ine

rcia

= 1

1.7

58

65

Perfiles fila, columna y suplementarios

Dir_senDir_jun

Emp_sen

Emp_junAdminis

No

Poco

Regular

Mucho

Promedio

Bebe

No_bebe

(figura-5)

(figura-6)

Page 10: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

Interpretación y conclusiones

Reglas a tener en cuenta al interpretar y sacar conclusiones de un ejercicio de Análisis de Correspondencias Simple.

Dentro de una tabla bidimensional tenemos que estudiar las relaciones entre las filas, entre las columnas, y las relaciones que puedan existir entre las filas y columnas, por lo tanto hay que sacar tres conclusiones separadas de cada análisis. Para ello hay que elegir correctamente las representaciones gráficas a analizar en función de la dimensión del problema uni, bi o tridimensional.

Asimismo contamos con una serie de datos numéricos cuyo nombre genérico es ayudas a la interpretación, que modulan y complementan lo que las gráficas representan.

El orden que vamos a seguir en el análisis de los resultados es el siguiente: o Analizar la dimensión de la tabla, que viene en función del número de ejes necesarios para explicar

un elevado porcentaje de la variabilidad de la tabla, que a su vez viene condicionado por la proporción acumulada por sus autovalores asociados. En nuestro caso podemos decir que este problema es unidimensional (solo el primer eje explica el 88% de la variabilidad de la tabla). Si en otro ejercicio encontramos por ejemplo que el 1º autovalor explica el 45% y el 2º el 40%, el problema sería bidimensional (45% + 40% = 85%), y todas las conclusiones habría que sacarlas de la representación bidimensional, sin fijarse en las representaciones marginales unidimensionales, que se podrían obtener proyectando cada punto sobe el eje correspondiente.

o Primero analizaremos las filas de la tabla, (perfiles fila = categorías de empleados), observando las representaciones gráficas sobre el primer eje factorial, sobre el segundo eje factorial y sobre ambos ejes bidimensionalmente. La justificación de este orden es que en nuestro caso, el primer eje factorial, explica el 87.8% de la variabilidad existente entre las filas, y el segundo eje el 11.8%, por lo que hay que darle más importancia a lo visto o representado sobre el primer eje que a lo visto sobre el segundo. Se termina con la representación bidimensional que matiza y corrige lo visto sobre la primera dimensión.

o En segundo lugar analizaremos las columnas de la tabla, (perfiles columna = hábitos de fumar), con el mismo procedimiento del apartado anterior.

o En tercer lugar analizaremos las relaciones existentes entre las filas y columnas, también con ese mismo procedimiento, aunque en este caso, si el contraste de independencia basado en el

estadístico χ2 (chisq.test(X)), rechaza la independencia entre ambas variables, fila y columna, (p-value < 0.05) significa que la dependencia existente va a permitir mayores posibilidades de obtener conclusiones entre las categorías de una y otra variable.

Perfiles fila (categorías de empleados) figura-1. En esta gráfica observamos lo siguiente: o Las categorías profesionales Empl_sen y por otro lado Dir_jun y Emp_jun se encuentran en los

extremos negativo y positivo del primer eje respectivamente, lo que indica que tienen comportamientos contrarios en relación a los hábitos de fumar, teniendo los dos grupos últimos mayor parecido. El que unos grupos estén en la parte negativa y otros en la positiva, no tiene ningún significado, solo es interesante analizar las diferencias o similitudes existentes entre ellos.

o Las categorías Adminis y Dir_sen ocupan posiciones intermedias entre los dos grupos anteriores, por lo que el primero tiende a tener un comportamiento más parecido a Emp_sen y el segundo un comportamiento intermedio entre los dos grupos del apartado anterior. Intencionadamente no hemos hecho mención de ninguna categoría de los hábitos de fumar, para insistir en el hecho de que se pueden establecer a través de la observación gráfica, comparaciones exclusivamente entre las filas de la tabla.

Page 11: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

Perfiles columna (hábitos de fumar) figura-3. En este caso, las columnas tienen un mayor interés en la explicación de la asociación entre las dos variables de la tabla, porque se trata del objetivo del estudio. Podemos observar lo siguiente:

o El primer eje divide a los que no fuman de los que fuman, situándose la categoría No a la izquierda del eje y las demás a la derecha.

o Además observamos una jerarquización del primer eje sobre los hábitos de fumar de manera que el orden en el que se presentan las categorías es: No, Poco, Regular y Mucho, lo que siempre es interesante a la hora de establecer relaciones entre filas y columnas.

o Las mayores diferencias se dan entre las categorías No y Mucho, lo que no tiene porqué ser lógico, porque no estamos analizando las diferencias entre las personas que no fuman y que fuman mucho de forma absoluta, sino a través de las categorías profesionales de la empresa, dicho de otra forma, si en las cinco categorías profesionales, hubiese muy pocos que no fuman y muy pocos que fuman mucho, ambos perfiles estarían situados juntos en la representación gráfica.

o Se observa también que no hay grandes diferencias entre las tres categorías de fumadores: Poco, Regular y Mucho, presentando Regular un comportamiento intermedio entre ambas.

Perfiles fila y columna (tipos de empleados y hábitos de fumar) figura-5. Podemos establecer las siguientes relaciones:

o La mayor proporción de no fumadores se da dentro de los Emp_sen y también es cierto que dentro de la categoría profesional Emp_sen mayoritariamente no se fuma.

o Existe una fuerte asociación positiva entre la categoría profesional Dir_jun y fumar Mucho, es decir en esa empresa los directivos junior son los que más fuman,

o Existe una asociación positiva entre la categoría profesional Emp_jun y fumar Poco y Regular. o La categoría Adminis presenta bastante asociación positiva con No fumar y algo menos con fumar

Poco. o Los trabajadores clasificados en Dir_sen, tienen asociación positiva con los hábitos de fumar

extremos, No y Mucho, por estar situados entre ambos. o Por último debido a la jerarquización del primer eje en relación a los hábitos de fumar comentada

antes, cuanto más a la izquierda esté situada una categoría profesional, más tendencia tendrá a no fumar y conforme se vaya situando más a la derecha más tendencia a fumar más, lo que nos permite ordenar las categorías profesionales según los hábitos de fumar de menos a más, de la siguiente forma: Emp_sen, Adminis, Dir_sen, Emp_jun y Dir_jun.

Perfiles suplementarios figuras-2, 4 y 6. Tenemos en este ejemplo una fila y dos columnas suplementarias. En este caso son de naturaleza distinta, mientras la fila llamada Promedio, proviene de una fuente externa al estudio, y se utiliza para establecer una comparación entre la información a nivel nacional y de nuestro trabajo, las columnas llamadas Bebe y No_bebe proceden de la muestra de 193 personas de la empresa, luego podrían haberse incluido, de haberlo estimado necesario, en el estudio inicial. Las conclusiones a las que llegamos son las siguientes:

o Al estar situado el punto Promedio, (perfil que representa el porcentaje a nivel nacional de los hábitos de fumar), entre No y Poco, podemos afirmar que los trabajadores de nuestra empresa tienen una alta proporción de fumadores comparada con la media nacional.

o Los perfiles Bebe y No_bebe están cerca del origen de coordenadas que representa el centroide o valor promedio, por lo que las conclusiones no son muy concluyentes en relación a los hábitos de fumar y a las categorías de empleados de la compañía.

Page 12: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

ACS con el paquete CA

> carfumar <- as.matrix(carfumar) > X <- ca(carfumar) > summary(X) Principal inertias (eigenvalues): dim value % cum% scree plot 1 0.074759 87.8 87.8 ********************** 2 0.010017 11.8 99.5 *** 3 0.000414 0.5 100.0 -------- ----- Total: 0.085190 100.0 Rows: name mass qlt inr k=1 cor ctr k=2 cor ctr 1 | Dr_s | 57 893 31 | -66 92 3 | -194 800 214 | 2 | Dr_j | 93 991 139 | 259 526 84 | -243 465 551 | 3 | Emp_s | 264 1000 450 | -381 999 512 | -11 1 3 | 4 | Emp_j | 456 1000 308 | 233 942 331 | 58 58 152 | 5 | Admn | 130 999 71 | -201 865 70 | 79 133 81 | Columns: name mass qlt inr k=1 cor ctr k=2 cor ctr 1 | No | 316 1000 577 | -393 994 654 | -30 6 29 | 2 | Poco | 233 984 83 | 99 327 31 | 141 657 463 | 3 | Rglr | 321 983 148 | 196 982 166 | 7 1 2 | 4 | Much | 130 995 192 | 294 684 150 | -198 310 506 | > plot(X)

> plot(X, mass=c(T,T))

Dimension 1 (87.8%)

Dim

ens

ion

2 (1

1.8

%)

-0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3

-0.3

-0.2

-0.1

0.0

0.1

0.2

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

No

Poco

Regular

Mucho

Perfiles fila y columna

Page 13: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

plot.ca(X, what=c("all", "none"), mass=T,contrib="relative")

> plot(X, what=c("none", "all"), mass=T,contrib="relative")

Dimension 1 (87.8%)

Dim

ens

ion

2 (

11.8

%)

-0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3

-0.3

-0.2

-0.1

0.0

0.1

0.2

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

No

Poco

Regular

Mucho

Perfiles fila y columna con masas

Dimension 1 (87.8%)

Dim

ens

ion

2 (1

1.8

%)

-0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2

-0.3

-0.2

-0.1

0.0

0.1

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

Page 14: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

> plot3d.ca(X)

Puntos suplementarios

> fs <- matrix(c(42,29,20,9),nrow=1) > rownames(fs) <- "Promedio" > colnames(fs)<-c("No","Poco","Regular","Mucho") > fc <- matrix(c(0,1,5,10,7,11,17,46,78,18),ncol=2) > rownames(fc)<-c("Dir_sen","Dir_jun","Empl_sen","Empl_jun","Adminis") > colnames(fc)<-c("bebe","no_bebe") > m1<-rbind(carfumar,fs) > m1 No Poco Regular Mucho Dir_sen 4 2 3 2 Dir_jun 4 3 7 4 Emp_sen 25 10 12 4 Emp_jun 18 24 33 13 Adminis 10 6 7 2 Promedio 42 29 20 9 > m2<-cbind(carfumar,fc) > m2

Dimension 1 (87.8%)

Dim

ens

ion

2 (

11.8

%)

-0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3

-0.2

-0.1

0.0

0.1

0.2

No

Poco

Regular

Mucho

Page 15: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

No Poco Regular Mucho bebe no_bebe Dir_sen 4 2 3 2 0 11 Dir_jun 4 3 7 4 1 17 Emp_sen 25 10 12 4 5 46 Emp_jun 18 24 33 13 10 78 Adminis 10 6 7 2 7 18 > plot(ca(m1,suprow=6))

> plot(ca(m2,supcol=5:6))

Dimension 1 (87.8%)

Dim

ens

ion

2 (

11

.8%

)

-0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3

-0.3

-0.2

-0.1

0.0

0.1

0.2

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

Promedio

No

Poco

Regular

Mucho

Dimension 1 (87.8%)

Dim

ens

ion

2 (

11

.8%

)

-0.4 -0.2 0.0 0.2 0.4

-0.2

-0.1

0.0

0.1

0.2

0.3

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

No

Poco

Regular

Mucho

bebe

no_bebe

Page 16: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

ACS con el paquete Anacor

> carfumar<-read.table("carfumar.asc",header=T) > X <- anacor(carfumar, scaling=c("standard","standard")) > X CA fit: Total chi-square value: 16.442 Sum of eigenvalues (total inertia): 0.085 Eigenvalues (principal inertias): 0.075 0.01 Chi-square decomposition: Chisq Proportion Cumulative Proportion Dimension 1 14.429 0.878 0.878 Dimension 2 1.933 0.118 0.995 Dimension 3 0.080 0.005 1.000 > X$row.scores D1 D2 Dir_sen 0.2405388 -1.9357079 Dir_jun -0.9471047 -2.4309584 Emp_sen 1.3919733 -0.1065076 Emp_jun -0.8519895 0.5769437 Adminis 0.7354557 0.7884353 > X$col.scores D1 D2 No 1.4384714 -0.30465911 Poco -0.3637463 1.40943267 Regular -0.7180168 0.07352795 Mucho -1.0744451 -1.97595989 > X$singular.values [1] 0.2734211 0.1000859 > plot(X, conf = NULL, main = "Mapa Simétrico",xlim=c(-1.5,1.5))

> plot(X, plot.type = "rowplot",xlim=c(-1.5,1.5))

-3 -2 -1 0 1 2 3

-3-2

-10

1

Mapa Simétrico

Dimension 1

Dim

ens

ion

2

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

No

Poco

Regular

Mucho

Page 17: 1-Práctica de Análisis de Correspondencias Simple …gallardo/pdf/acs-11.pdf1-Práctica de Análisis de Correspondencias Simple en R Después de la publicación a escala nacional

> plot(X, plot.type = "colplot",xlim=c(-1.5,1.5))

-3 -2 -1 0 1 2 3

-3-2

-10

1

Row Plot

Dimension 1

Dim

ens

ion

2

Dir_sen

Dir_jun

Emp_sen

Emp_junAdminis

-3 -2 -1 0 1 2 3

-2-1

01

Column Plot

Dimension 1

Dim

ens

ion

2

No

Poco

Regular

Mucho