Analisis de Componentes Principales (APC)

Esta metodologia permite analizar grandes conjuntos de datos numericos multivariados, es decir un conjunto amplio de variables e individuos.

El objetivo principal es estudiar las correlaciones entre variables y similitudes entre individuos de una manera eficiente.

require(ade4)
require(FactoClass)

data(cafe)
cafe_quimica=cafe[,1:7]

##Matriz de Datos de Caracteristicas Quimicas
cafe_quimica
##      Color    DA EA   pH AcidezT Cafeina AcidosCl
## ExCl   298 385.1 25 5.02    11.7    1.40     2.74
## C40M   361 481.3 41 5.11     6.5    0.81     1.62
## C40C   321 422.6 40 5.12     5.8    0.80     1.61
## C20M   335 444.3 33 5.05     8.8    1.10     2.20
## C20C   314 368.7 32 5.04     9.3    1.10     2.19
## ExOs   186 346.6 28 5.31     8.7    1.35     2.30
## O40M   278 422.6 43 5.45     4.9    0.80     1.35
## O40C   238 403.0 42 5.33     5.2    0.79     1.36
## O20M   226 368.7 36 5.33     6.7    1.10     1.83
## O20C   210 368.7 35 5.31     7.0    1.05     1.83
## Com1   221 413.3 27 5.18     9.3    1.30     2.06
## Com2   264 400.9 23 5.20    11.5    1.35     2.84
##Matriz de Correlaciones
data.frame(round(cor(cafe_quimica),2))
##          Color    DA    EA    pH AcidezT Cafeina AcidosCl
## Color     1.00  0.73  0.27 -0.66    0.00   -0.38    -0.04
## DA        0.73  1.00  0.42 -0.27   -0.27   -0.52    -0.34
## EA        0.27  0.42  1.00  0.39   -0.95   -0.97    -0.95
## pH       -0.66 -0.27  0.39  1.00   -0.58   -0.28    -0.51
## AcidezT   0.00 -0.27 -0.95 -0.58    1.00    0.90     0.98
## Cafeina  -0.38 -0.52 -0.97 -0.28    0.90    1.00     0.91
## AcidosCl -0.04 -0.34 -0.95 -0.51    0.98    0.91     1.00
##Componentes Principales
acp_cafe=dudi.pca(cafe_quimica, scannf = FALSE,nf=3)
acp_inertia=inertia.dudi(acp_cafe)
acp_inertia$tot.inertia
##        inertia      cum    cum(%)
## Ax1 4.25677802 4.256778  60.81111
## Ax2 2.20488938 6.461667  92.30953
## Ax3 0.36229221 6.823960  97.48514
## Ax4 0.12971545 6.953675  99.33822
## Ax5 0.02556762 6.979243  99.70347
## Ax6 0.01436439 6.993607  99.90867
## Ax7 0.00639294 7.000000 100.00000
##Circulo de Correlaciones
s.corcircle(acp_cafe$co)

##Plano de Individuos (Cafes)
s.label(acp_cafe$li)

##Por tipo (Grupo de Cafes)
tipo=c("E","M","C","M","C","E","M","C","M","C","Com","Com")
tipo=as.factor(tipo)
s.class(acp_cafe$li,tipo)