# install.packages("FactoMineR")
library(FactoMineR)

load(url("http://pagines.uab.cat/plopez/sites/pagines.uab.cat.plopez/files/CIS3041a.rda"))
attach(CIS3041a)
DF=data.frame(OCUPACION,ESTUDIOS,Edad10,P31)

library(Deducer)
frequencies(CIS3041a[c("OCUPACION","ESTUDIOS","Edad10","P31")],r.digits=1)

ACM=MCA(DF,ncp=2,na.method="Average")
summary(ACM)
ACM$eig #Valores propios (eigen values)
ACM$var
round(ACM$var$coord,2)
round(ACM$var$contrib,2)
round(ACM$var$cos2,2)
round(ACM$var$v.test,2)
round(ACM$var$eta2,2)

# Análisis de clasificación jerárquica
hcpc=HCPC(ACM,min=2,method="ward",nb.clus=-1)
hcpc=HCPC(ACM,min=2,method="ward",nb.clus=0)
# Elección del número óptimo de grupos o tipos
hcpc$call$t$nb.clust
round(hcpc$call$t$within,3)      # Inercia intraclases
round(hcpc$call$t$quot,3)        # Ratio de inercia intraclases
round(hcpc$call$t$inert.gain,3)  # Ganancia de inercia entre clases
# Descripción de las clases de la clasificación (tipos de la tipología)
hcpc$desc.var$test.chi2   # Variables
hcpc$desc.var$category    # Categorías
hcpc$desc.axes            # Factores
hcpc$desc.ind             # individuos

CLU=data.frame(ACM$ind$coord,hcpc$data.clust)
ggplot(data=CLU) + geom_point(aes(x=Dim.1,y=Dim.2,colour=clust)) +
  geom_vline(xintercept=0.0) + geom_hline(yintercept=0.0)

