setwd("E:/Personal/especializacion/multivariados/repasoexamen/")
library(ade4)
## Warning: package 'ade4' was built under R version 3.6.3
library(factoextra)
## Warning: package 'factoextra' was built under R version 3.6.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.6.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(cluster)
require(cluster)
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 3.6.3
##
## Attaching package: 'FactoMineR'
## The following object is masked from 'package:ade4':
##
## reconst
read.table("perros.txt",header=T,sep="",row.names=1)->perrosi
perrosi
## TAM PES VEL INT AFE AGR FUN
## bass peq liv len baj baj alt caz
## beau gra med alt med alt alt uti
## boxe med med med med alt alt com
## buld peq liv len med alt baj com
## bulm gra pes len alt baj alt uti
## cani peq liv med alt alt baj com
## chih peq liv len baj alt baj com
## cock med liv len med alt alt com
## coll gra med alt med alt baj com
## dalm med med med med alt baj com
## dobe gra med alt alt baj alt uti
## dogo gra pes alt baj baj alt uti
## foxh gra med alt baj baj alt caz
## foxt peq liv med med alt alt com
## galg gra med alt baj baj baj caz
## gasc gra med med baj baj alt caz
## labr med med med med alt baj caz
## masa gra med alt alt alt alt uti
## mast gra pes len baj baj alt uti
## peki peq liv len baj alt baj com
## podb med med med alt alt baj caz
## podf gra med med med baj baj caz
## poin gra med alt alt baj baj caz
## sett gra med alt med baj baj caz
## stbe gra pes len med baj alt uti
## teck peq liv len med alt baj com
## tern gra pes len med baj baj uti
n=nrow(perrosi)
n
## [1] 27
perros=list(tab=perrosi[,1:6], funcion=perrosi[,7])
perros
## $tab
## TAM PES VEL INT AFE AGR
## bass peq liv len baj baj alt
## beau gra med alt med alt alt
## boxe med med med med alt alt
## buld peq liv len med alt baj
## bulm gra pes len alt baj alt
## cani peq liv med alt alt baj
## chih peq liv len baj alt baj
## cock med liv len med alt alt
## coll gra med alt med alt baj
## dalm med med med med alt baj
## dobe gra med alt alt baj alt
## dogo gra pes alt baj baj alt
## foxh gra med alt baj baj alt
## foxt peq liv med med alt alt
## galg gra med alt baj baj baj
## gasc gra med med baj baj alt
## labr med med med med alt baj
## masa gra med alt alt alt alt
## mast gra pes len baj baj alt
## peki peq liv len baj alt baj
## podb med med med alt alt baj
## podf gra med med med baj baj
## poin gra med alt alt baj baj
## sett gra med alt med baj baj
## stbe gra pes len med baj alt
## teck peq liv len med alt baj
## tern gra pes len med baj baj
##
## $funcion
## [1] caz uti com com uti com com com com com uti uti caz com caz caz caz uti uti
## [20] com caz caz caz caz uti com uti
## Levels: caz com uti
s=ncol(perros$tab) ## #preguntas/columnas en este caso 6
s
## [1] 6
p.disj<-acm.disjonctif(perros$tab) ## Tabla disjuntiva completa
K=as.matrix(p.disj)
addmargins(K)
## TAM.gra TAM.med TAM.peq PES.liv PES.med PES.pes VEL.alt VEL.len VEL.med
## bass 0 0 1 1 0 0 0 1 0
## beau 1 0 0 0 1 0 1 0 0
## boxe 0 1 0 0 1 0 0 0 1
## buld 0 0 1 1 0 0 0 1 0
## bulm 1 0 0 0 0 1 0 1 0
## cani 0 0 1 1 0 0 0 0 1
## chih 0 0 1 1 0 0 0 1 0
## cock 0 1 0 1 0 0 0 1 0
## coll 1 0 0 0 1 0 1 0 0
## dalm 0 1 0 0 1 0 0 0 1
## dobe 1 0 0 0 1 0 1 0 0
## dogo 1 0 0 0 0 1 1 0 0
## foxh 1 0 0 0 1 0 1 0 0
## foxt 0 0 1 1 0 0 0 0 1
## galg 1 0 0 0 1 0 1 0 0
## gasc 1 0 0 0 1 0 0 0 1
## labr 0 1 0 0 1 0 0 0 1
## masa 1 0 0 0 1 0 1 0 0
## mast 1 0 0 0 0 1 0 1 0
## peki 0 0 1 1 0 0 0 1 0
## podb 0 1 0 0 1 0 0 0 1
## podf 1 0 0 0 1 0 0 0 1
## poin 1 0 0 0 1 0 1 0 0
## sett 1 0 0 0 1 0 1 0 0
## stbe 1 0 0 0 0 1 0 1 0
## teck 0 0 1 1 0 0 0 1 0
## tern 1 0 0 0 0 1 0 1 0
## Sum 15 5 7 8 14 5 9 10 8
## INT.alt INT.baj INT.med AFE.alt AFE.baj AGR.alt AGR.baj Sum
## bass 0 1 0 0 1 1 0 6
## beau 0 0 1 1 0 1 0 6
## boxe 0 0 1 1 0 1 0 6
## buld 0 0 1 1 0 0 1 6
## bulm 1 0 0 0 1 1 0 6
## cani 1 0 0 1 0 0 1 6
## chih 0 1 0 1 0 0 1 6
## cock 0 0 1 1 0 1 0 6
## coll 0 0 1 1 0 0 1 6
## dalm 0 0 1 1 0 0 1 6
## dobe 1 0 0 0 1 1 0 6
## dogo 0 1 0 0 1 1 0 6
## foxh 0 1 0 0 1 1 0 6
## foxt 0 0 1 1 0 1 0 6
## galg 0 1 0 0 1 0 1 6
## gasc 0 1 0 0 1 1 0 6
## labr 0 0 1 1 0 0 1 6
## masa 1 0 0 1 0 1 0 6
## mast 0 1 0 0 1 1 0 6
## peki 0 1 0 1 0 0 1 6
## podb 1 0 0 1 0 0 1 6
## podf 0 0 1 0 1 0 1 6
## poin 1 0 0 0 1 0 1 6
## sett 0 0 1 0 1 0 1 6
## stbe 0 0 1 0 1 1 0 6
## teck 0 0 1 1 0 0 1 6
## tern 0 0 1 0 1 0 1 6
## Sum 6 8 13 14 13 13 14 162
p=ncol(p.disj) #categorias del conjunto (#modal)
p
## [1] 16
p.burt<-acm.burt(perros$tab,perros$tab) ## Tabla de Burt Z'Z
p.burt
## TAM.gra TAM.med TAM.peq PES.liv PES.med PES.pes VEL.alt VEL.len VEL.med
## TAM.gra 15 0 0 0 10 5 9 4 2
## TAM.med 0 5 0 1 4 0 0 1 4
## TAM.peq 0 0 7 7 0 0 0 5 2
## PES.liv 0 1 7 8 0 0 0 6 2
## PES.med 10 4 0 0 14 0 8 0 6
## PES.pes 5 0 0 0 0 5 1 4 0
## VEL.alt 9 0 0 0 8 1 9 0 0
## VEL.len 4 1 5 6 0 4 0 10 0
## VEL.med 2 4 2 2 6 0 0 0 8
## INT.alt 4 1 1 1 4 1 3 1 2
## INT.baj 5 0 3 3 3 2 3 4 1
## INT.med 6 4 3 4 7 2 3 5 5
## AFE.alt 3 5 6 7 7 0 3 5 6
## AFE.baj 12 0 1 1 7 5 6 5 2
## AGR.alt 9 2 2 3 6 4 5 5 3
## AGR.baj 6 3 5 5 8 1 4 5 5
## INT.alt INT.baj INT.med AFE.alt AFE.baj AGR.alt AGR.baj
## TAM.gra 4 5 6 3 12 9 6
## TAM.med 1 0 4 5 0 2 3
## TAM.peq 1 3 3 6 1 2 5
## PES.liv 1 3 4 7 1 3 5
## PES.med 4 3 7 7 7 6 8
## PES.pes 1 2 2 0 5 4 1
## VEL.alt 3 3 3 3 6 5 4
## VEL.len 1 4 5 5 5 5 5
## VEL.med 2 1 5 6 2 3 5
## INT.alt 6 0 0 3 3 3 3
## INT.baj 0 8 0 2 6 5 3
## INT.med 0 0 13 9 4 5 8
## AFE.alt 3 2 9 14 0 5 9
## AFE.baj 3 6 4 0 13 8 5
## AGR.alt 3 5 5 5 8 13 0
## AGR.baj 3 3 8 9 5 0 14
t(as.matrix(p.disj))%*%as.matrix(p.disj)
## TAM.gra TAM.med TAM.peq PES.liv PES.med PES.pes VEL.alt VEL.len VEL.med
## TAM.gra 15 0 0 0 10 5 9 4 2
## TAM.med 0 5 0 1 4 0 0 1 4
## TAM.peq 0 0 7 7 0 0 0 5 2
## PES.liv 0 1 7 8 0 0 0 6 2
## PES.med 10 4 0 0 14 0 8 0 6
## PES.pes 5 0 0 0 0 5 1 4 0
## VEL.alt 9 0 0 0 8 1 9 0 0
## VEL.len 4 1 5 6 0 4 0 10 0
## VEL.med 2 4 2 2 6 0 0 0 8
## INT.alt 4 1 1 1 4 1 3 1 2
## INT.baj 5 0 3 3 3 2 3 4 1
## INT.med 6 4 3 4 7 2 3 5 5
## AFE.alt 3 5 6 7 7 0 3 5 6
## AFE.baj 12 0 1 1 7 5 6 5 2
## AGR.alt 9 2 2 3 6 4 5 5 3
## AGR.baj 6 3 5 5 8 1 4 5 5
## INT.alt INT.baj INT.med AFE.alt AFE.baj AGR.alt AGR.baj
## TAM.gra 4 5 6 3 12 9 6
## TAM.med 1 0 4 5 0 2 3
## TAM.peq 1 3 3 6 1 2 5
## PES.liv 1 3 4 7 1 3 5
## PES.med 4 3 7 7 7 6 8
## PES.pes 1 2 2 0 5 4 1
## VEL.alt 3 3 3 3 6 5 4
## VEL.len 1 4 5 5 5 5 5
## VEL.med 2 1 5 6 2 3 5
## INT.alt 6 0 0 3 3 3 3
## INT.baj 0 8 0 2 6 5 3
## INT.med 0 0 13 9 4 5 8
## AFE.alt 3 2 9 14 0 5 9
## AFE.baj 3 6 4 0 13 8 5
## AGR.alt 3 5 5 5 8 13 0
## AGR.baj 3 3 8 9 5 0 14
## ACM en ade4
## ACM el numero de ejes es p-s = 16-6=10(categorias - variables cualitativas)
## ACS el numero de ejes es ? ( ?)
p.acm<-dudi.acm(perros$tab,scannf=FALSE,nf=10)
p.acm
## Duality diagramm
## class: acm dudi
## $call: dudi.acm(df = perros$tab, scannf = FALSE, nf = 10)
##
## $nf: 10 axis-components saved
## $rank: 10
## eigen values: 0.4816 0.3847 0.211 0.1576 0.1501 ...
## vector length mode content
## 1 $cw 16 numeric column weights
## 2 $lw 27 numeric row weights
## 3 $eig 10 numeric eigen values
##
## data.frame nrow ncol content
## 1 $tab 27 16 modified array
## 2 $li 27 10 row coordinates
## 3 $l1 27 10 row normed scores
## 4 $co 16 10 column coordinates
## 5 $c1 16 10 column normed scores
## other elements: cr
# nube de individuos eje 1 y eje2
s.label(p.acm$li,1,2)
# nube de individuos eje 1 y eje2
s.label(p.acm$li,1,3)
# fox y cock presentan caracteristicas similares
#nube de variables eje 1 y eje2
s.label(p.acm$co,1,2)
#nube de variables eje 1 y eje3
s.label(p.acm$co,1,3)
Observamos que tamaño pequeño se asocia con peso liviano, afectividad alta con agresividad baja e inteligencia media, agresividiad alta con tamaño grande y afectividad baja
## Funciones gráficas de ade4
biplot(p.acm)
scatter(p.acm)
boxplot(p.acm)
## Utilizando Factoextra
fviz_mca_biplot(p.acm, repel = TRUE)
### Representacion simultanea
s.label(p.acm$li,box=FALSE)
s.label(p.acm$co,add.plot=TRUE)
El porcentaje de varianza en el eje1 y eje 2 es del 52%, es mucho mas bajo que en los ACP, se debe analizar el tercer eje para aumentar el porcentaje de esa varianza
fviz_contrib ( p.acm, choice="ind", axes=c(1,2)) ##indivicuos
fviz_contrib ( p.acm, choice="var", axes=c(1,2) ) ##variables
Utilizando Factoextra
fviz_mca_biplot(p.acm, axes=c(1,3))
Los valores excentricos son los que estan mas alejados del centro de gravedad, van a tener
Cuantos ejes se generan en el ACM? rta: p-s = 16 - 6 = 10 (categorias - variables cualitativas)
Que relacion existe entre inercia total, numero de modalidades, numero de vaiables cualititvas? rta: I = (p/s)-1 = 16/6-1 = 1.6666 suma de valores propios
p=ncol(p.disj) #categorias del conjunto (#modal)
s=s=ncol(perros$tab) ## #preguntas/columnas en este caso 6
It = (p/s)-1
It
## [1] 1.666667
##suma de valores propios = I
sum(p.acm$eig)
## [1] 1.666667
Que similutudes existen entre razas de perros? rta: ej pekines con chiguaga en terminos de tamaño pequeño y peso liviano
con base en la nube de individuos cuales son los valores excentricos? rta. los mas alejados del centro de gravedad, implica mayor inercia en el analisis
con base en la nube de variables cuales son las mas asociadas
Variable edad como suplementaria
library(missMDA)
## Warning: package 'missMDA' was built under R version 3.6.3
data= perros$tab
data
## TAM PES VEL INT AFE AGR
## bass peq liv len baj baj alt
## beau gra med alt med alt alt
## boxe med med med med alt alt
## buld peq liv len med alt baj
## bulm gra pes len alt baj alt
## cani peq liv med alt alt baj
## chih peq liv len baj alt baj
## cock med liv len med alt alt
## coll gra med alt med alt baj
## dalm med med med med alt baj
## dobe gra med alt alt baj alt
## dogo gra pes alt baj baj alt
## foxh gra med alt baj baj alt
## foxt peq liv med med alt alt
## galg gra med alt baj baj baj
## gasc gra med med baj baj alt
## labr med med med med alt baj
## masa gra med alt alt alt alt
## mast gra pes len baj baj alt
## peki peq liv len baj alt baj
## podb med med med alt alt baj
## podf gra med med med baj baj
## poin gra med alt alt baj baj
## sett gra med alt med baj baj
## stbe gra pes len med baj alt
## teck peq liv len med alt baj
## tern gra pes len med baj baj
data[20,3]=NA ##INGRESAMOS NA en fila 20 columna 3
data[15,5]=NA ##INGRESAMOS NA en fila 15 columna 5
data[10,5]=NA ##INGRESAMOS NA en fila 10 columna 5
data[5,1]=NA ##INGRESAMOS NA en fila 5 columna 1
data[8,2]=NA ##INGRESAMOS NA en fila 8 columna 2
data
## TAM PES VEL INT AFE AGR
## bass peq liv len baj baj alt
## beau gra med alt med alt alt
## boxe med med med med alt alt
## buld peq liv len med alt baj
## bulm <NA> pes len alt baj alt
## cani peq liv med alt alt baj
## chih peq liv len baj alt baj
## cock med <NA> len med alt alt
## coll gra med alt med alt baj
## dalm med med med med <NA> baj
## dobe gra med alt alt baj alt
## dogo gra pes alt baj baj alt
## foxh gra med alt baj baj alt
## foxt peq liv med med alt alt
## galg gra med alt baj <NA> baj
## gasc gra med med baj baj alt
## labr med med med med alt baj
## masa gra med alt alt alt alt
## mast gra pes len baj baj alt
## peki peq liv <NA> baj alt baj
## podb med med med alt alt baj
## podf gra med med med baj baj
## poin gra med alt alt baj baj
## sett gra med alt med baj baj
## stbe gra pes len med baj alt
## teck peq liv len med alt baj
## tern gra pes len med baj baj
#METODO: Imputacion de datos ACM ITERATIVO regularizado
imputacion = imputeMCA(data)
imputacion
## $tab.disj
## gra med peq liv med pes alt
## bass 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 0.000000
## beau 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## boxe 0.000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.000000
## buld 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 0.000000
## bulm 0.929281 -0.1480565 0.2187756 0.0000000 0.0000000 1.0000000 0.000000
## cani 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 0.000000
## chih 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 0.000000
## cock 0.000000 1.0000000 0.0000000 0.3902081 0.5798916 0.0299003 0.000000
## coll 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## dalm 0.000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.000000
## dobe 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## dogo 1.000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 1.000000
## foxh 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## foxt 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 0.000000
## galg 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## gasc 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.000000
## labr 0.000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.000000
## masa 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## mast 1.000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.000000
## peki 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 -0.106087
## podb 0.000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.000000
## podf 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.000000
## poin 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## sett 1.000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 1.000000
## stbe 1.000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.000000
## teck 0.000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 0.000000
## tern 1.000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.000000
## len med alt baj med alt baj alt baj
## bass 1.0000000 0.0000000 0 1 0 0.0000000 1.0000000000 1 0
## beau 0.0000000 0.0000000 0 0 1 1.0000000 0.0000000000 1 0
## boxe 0.0000000 1.0000000 0 0 1 1.0000000 0.0000000000 1 0
## buld 1.0000000 0.0000000 0 0 1 1.0000000 0.0000000000 0 1
## bulm 1.0000000 0.0000000 1 0 0 0.0000000 1.0000000000 1 0
## cani 0.0000000 1.0000000 1 0 0 1.0000000 0.0000000000 0 1
## chih 1.0000000 0.0000000 0 1 0 1.0000000 0.0000000000 0 1
## cock 1.0000000 0.0000000 0 0 1 1.0000000 0.0000000000 1 0
## coll 0.0000000 0.0000000 0 0 1 1.0000000 0.0000000000 0 1
## dalm 0.0000000 1.0000000 0 0 1 0.9995927 0.0004072631 0 1
## dobe 0.0000000 0.0000000 1 0 0 0.0000000 1.0000000000 1 0
## dogo 0.0000000 0.0000000 0 1 0 0.0000000 1.0000000000 1 0
## foxh 0.0000000 0.0000000 0 1 0 0.0000000 1.0000000000 1 0
## foxt 0.0000000 1.0000000 0 0 1 1.0000000 0.0000000000 1 0
## galg 0.0000000 0.0000000 0 1 0 0.3140430 0.6859569605 0 1
## gasc 0.0000000 1.0000000 0 1 0 0.0000000 1.0000000000 1 0
## labr 0.0000000 1.0000000 0 0 1 1.0000000 0.0000000000 0 1
## masa 0.0000000 0.0000000 1 0 0 1.0000000 0.0000000000 1 0
## mast 1.0000000 0.0000000 0 1 0 0.0000000 1.0000000000 1 0
## peki 0.8013401 0.3047469 0 1 0 1.0000000 0.0000000000 0 1
## podb 0.0000000 1.0000000 1 0 0 1.0000000 0.0000000000 0 1
## podf 0.0000000 1.0000000 0 0 1 0.0000000 1.0000000000 0 1
## poin 0.0000000 0.0000000 1 0 0 0.0000000 1.0000000000 0 1
## sett 0.0000000 0.0000000 0 0 1 0.0000000 1.0000000000 0 1
## stbe 1.0000000 0.0000000 0 0 1 0.0000000 1.0000000000 1 0
## teck 1.0000000 0.0000000 0 0 1 1.0000000 0.0000000000 0 1
## tern 1.0000000 0.0000000 0 0 1 0.0000000 1.0000000000 0 1
##
## $completeObs
## TAM PES VEL INT AFE AGR
## bass peq liv len baj baj alt
## beau gra med alt med alt alt
## boxe med med med med alt alt
## buld peq liv len med alt baj
## bulm gra pes len alt baj alt
## cani peq liv med alt alt baj
## chih peq liv len baj alt baj
## cock med med len med alt alt
## coll gra med alt med alt baj
## dalm med med med med alt baj
## dobe gra med alt alt baj alt
## dogo gra pes alt baj baj alt
## foxh gra med alt baj baj alt
## foxt peq liv med med alt alt
## galg gra med alt baj baj baj
## gasc gra med med baj baj alt
## labr med med med med alt baj
## masa gra med alt alt alt alt
## mast gra pes len baj baj alt
## peki peq liv len baj alt baj
## podb med med med alt alt baj
## podf gra med med med baj baj
## poin gra med alt alt baj baj
## sett gra med alt med baj baj
## stbe gra pes len med baj alt
## teck peq liv len med alt baj
## tern gra pes len med baj baj
##el metodo entrega la matriz completa, y se trabaja sobre este
cluster= kmeans( p.acm$li, centers=3)
cluster
## K-means clustering with 3 clusters of sizes 15, 7, 5
##
## Cluster means:
## Axis1 Axis2 Axis3 Axis4 Axis5 Axis6
## 1 0.5806347 -0.01276424 -0.02352403 -0.06756625 -0.043653500 0.017544318
## 2 -0.8223338 0.57306708 -0.28292699 0.04769093 0.007735248 -0.007924846
## 3 -0.5906368 -0.76400119 0.46666988 0.13593146 0.120131153 -0.041538169
## Axis7 Axis8 Axis9 Axis10
## 1 -0.03363461 -0.01205595 -0.02219153 0.010674994
## 2 -0.10290760 -0.01379273 0.01387217 -0.021920953
## 3 0.24497448 0.05547766 0.04715356 -0.001335647
##
## Clustering vector:
## bass beau boxe buld bulm cani chih cock coll dalm dobe dogo foxh foxt galg gasc
## 2 1 3 2 1 2 2 3 1 3 1 1 1 2 1 1
## labr masa mast peki podb podf poin sett stbe teck tern
## 3 1 1 2 3 1 1 1 1 2 1
##
## Within cluster sum of squares by cluster:
## [1] 17.493077 5.172881 3.195165
## (between_SS / total_SS = 42.5 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
fviz_cluster(cluster, p.acm$li)
Se estudiaran tres algoritmos para realizar clusters 1.no jerarquicos 2. jerarquicos 3. mixto
) p.acm
16/6 -1
library(ade4)
read.table(“perros.txt”,header=T,sep="“,row.names=1)->perrosi library(readr) perros <- read.table(”E:/Personal/especializacion/multivariados/acm/Ejemplo perros-20200430/perros.txt“, row.names=1, sep=”", header=T) perros perrosi = perros fix(perrosi)
n<-nrow(perrosi)
perros<-list(tab=perrosi[,1:6],funcion=perrosi[,7])
s<-ncol(perros$tab)
p.disj<-acm.disjonctif(perros\(tab) ## Tabla disjuntiva completa p.disj p<-ncol(p.disj) #categorias del conjunto (#modal) p #16 categoris p.burt<-acm.burt(perros\)tab,perros$tab) ## Tabla de Burt Z’Z p.burt t(as.matrix(p.disj))%*%as.matrix(p.disj)
p.acm<-dudi.acm(perros$tab,scannf=FALSE,nf=10) p.acm
s.label(p.acm\(li,1,2) s.label(p.acm\)li,1,3)
(p/s)-1
p=
s=
It = (p/s)-1
s=ncol(perros$tab) ## #preguntas/columnas en este caso 6
s
## [1] 6
p.disj<-acm.disjonctif(perros$tab) ## Tabla disjuntiva completa
K=as.matrix(p.disj)
addmargins(K)
## TAM.gra TAM.med TAM.peq PES.liv PES.med PES.pes VEL.alt VEL.len VEL.med
## bass 0 0 1 1 0 0 0 1 0
## beau 1 0 0 0 1 0 1 0 0
## boxe 0 1 0 0 1 0 0 0 1
## buld 0 0 1 1 0 0 0 1 0
## bulm 1 0 0 0 0 1 0 1 0
## cani 0 0 1 1 0 0 0 0 1
## chih 0 0 1 1 0 0 0 1 0
## cock 0 1 0 1 0 0 0 1 0
## coll 1 0 0 0 1 0 1 0 0
## dalm 0 1 0 0 1 0 0 0 1
## dobe 1 0 0 0 1 0 1 0 0
## dogo 1 0 0 0 0 1 1 0 0
## foxh 1 0 0 0 1 0 1 0 0
## foxt 0 0 1 1 0 0 0 0 1
## galg 1 0 0 0 1 0 1 0 0
## gasc 1 0 0 0 1 0 0 0 1
## labr 0 1 0 0 1 0 0 0 1
## masa 1 0 0 0 1 0 1 0 0
## mast 1 0 0 0 0 1 0 1 0
## peki 0 0 1 1 0 0 0 1 0
## podb 0 1 0 0 1 0 0 0 1
## podf 1 0 0 0 1 0 0 0 1
## poin 1 0 0 0 1 0 1 0 0
## sett 1 0 0 0 1 0 1 0 0
## stbe 1 0 0 0 0 1 0 1 0
## teck 0 0 1 1 0 0 0 1 0
## tern 1 0 0 0 0 1 0 1 0
## Sum 15 5 7 8 14 5 9 10 8
## INT.alt INT.baj INT.med AFE.alt AFE.baj AGR.alt AGR.baj Sum
## bass 0 1 0 0 1 1 0 6
## beau 0 0 1 1 0 1 0 6
## boxe 0 0 1 1 0 1 0 6
## buld 0 0 1 1 0 0 1 6
## bulm 1 0 0 0 1 1 0 6
## cani 1 0 0 1 0 0 1 6
## chih 0 1 0 1 0 0 1 6
## cock 0 0 1 1 0 1 0 6
## coll 0 0 1 1 0 0 1 6
## dalm 0 0 1 1 0 0 1 6
## dobe 1 0 0 0 1 1 0 6
## dogo 0 1 0 0 1 1 0 6
## foxh 0 1 0 0 1 1 0 6
## foxt 0 0 1 1 0 1 0 6
## galg 0 1 0 0 1 0 1 6
## gasc 0 1 0 0 1 1 0 6
## labr 0 0 1 1 0 0 1 6
## masa 1 0 0 1 0 1 0 6
## mast 0 1 0 0 1 1 0 6
## peki 0 1 0 1 0 0 1 6
## podb 1 0 0 1 0 0 1 6
## podf 0 0 1 0 1 0 1 6
## poin 1 0 0 0 1 0 1 6
## sett 0 0 1 0 1 0 1 6
## stbe 0 0 1 0 1 1 0 6
## teck 0 0 1 1 0 0 1 6
## tern 0 0 1 0 1 0 1 6
## Sum 6 8 13 14 13 13 14 162
p=ncol(p.disj) #categorias del conjunto (#modal)
p
## [1] 16
L<-p.acm$eig sum(L) ## Inercia Total
Fi<-p.acm$li ## Coordenadas de los individuos
s.label(Fi) ## Plano factorial de los individuos
dim(Fi)
G <-p.acm$co ## Coordenadas de las modalidades
s.label(G) ## Plano factorial de las modalidades
dim(G)
biplot(p.acm) scatter(p.acm) boxplot(p.acm)
library(factoextra)
fviz_mca_biplot(p.acm)
s.label(p.acm$li,box=FALSE)
s.label(p.acm$co,add.plot=TRUE)
Iner <- inertia.dudi(p.acm, row.inertia = TRUE, col.inertia = TRUE)
Iner\(col.abs/10000 Iner\)row.abs/10000
k <- n*s
F<-as.matrix(p.disj/k) fi.<-rowSums(F) f.j<-colSums(F) F/fi.->Pf F/f.j->Pc
Mn<-diag(1/fi.) Mp<-diag(1/f.j) Mn1.2<-diag(sqrt(1/fi.)) Mp1.2<-diag(sqrt(1/f.j))
So<- Mn1.2%%F%%Mp1.2 ## Z – ACP S.<- t(So)%%So ## S – eigen
colnames(So)<-colnames(p.disj) rownames(So)<-rownames(p.disj) So
acmVIAacp<-dudi.pca(So,row.w = rep(1, nrow(So)),col.w = rep(1, ncol(So)), center = FALSE, scale = FALSE,scannf = FALSE,nf=10)
acmVIAacp\(eig ## Valores propios sum(p.acm\)eig)
T <- Mn1.2%%So%%as.matrix(acmVIAacp$c1) ### coordenadas para individuos
s.label(T,2,3)
cbind(T[,2:3],p.acm$li[,1:2]) ## Ok