Objetivo
El objetivo es estudiar la relación calidad precio de 35 marcas de
whisky, utilizando las variables precio (francos franceses), proporción
de malta ( %), vejez (añejamiento en años) y apreciación (nota promedio
de un panel de catadores redondeada a entero). Se dispone además de una
variable categórica “categorías”, que clasifica las marcas según su
contenido de malta (1=Bajo, 2=Estándar,
3=Puro malta).
Para obtener los datos use:
library(FactoClass)
data("Whisky")
head(Whisky)
## price malt type aging taste
## 1 70 20 low 5.0 3
## 2 60 20 low 5.0 2
## 3 65 20 low 7.5 2
## 4 74 25 low 12.0 2
## 5 70 25 low 12.0 3
## 6 73 30 low 5.0 0
Y=Whisky[,-3]
Trabajo
Realice primero un ACP no normado y luego un ACP normado utilizando el software R y responda a las preguntas.
Para el ACP no normado utilice:
library(FactoMineR)
library(factoextra)
acpc <- PCA(Y, scale.unit = F)
## Warning: ggrepel: 20 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
get_eigenvalue(acpc)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 953.238889 84.4467052 84.44671
## Dim.2 169.350357 15.0026188 99.44932
## Dim.3 4.980882 0.4412525 99.89058
## Dim.4 1.235178 0.1094234 100.00000
fviz_eig(acpc, addlabels=T)
En el ACP no normado, analice la contribución de las variables a la inercia. ¿Realmente se puede considerar un análisis de las cuatro variables?
No es conveniente hacer el análisis debido a que las variables no
están normalizadas y la matriz de varianzas y covarianzas de las
variables no normadas muestra que la varianza acumulada esta cubierta en
99.4% por las variables price y malt dejando a
un lado la importancia de las otras dos variables aging y
taste, que no aportan a la variables no normada debido a su
escala de valores tan pequeños.
Realice el ACP normado, justifique por qué es el que conviene para los objetivos de este taller.
acpn=PCA(Y)
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
get_eig(acpn)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 2.2332690 55.831725 55.83172
## Dim.2 0.8064826 20.162065 75.99379
## Dim.3 0.6295103 15.737758 91.73155
## Dim.4 0.3307381 8.268451 100.00000
get_eigenvalue(acpn)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 2.2332690 55.831725 55.83172
## Dim.2 0.8064826 20.162065 75.99379
## Dim.3 0.6295103 15.737758 91.73155
## Dim.4 0.3307381 8.268451 100.00000
¿Cuántos ejes retiene para el análisis? ¿Por qué?
get_eigenvalue(acpn)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 2.2332690 55.831725 55.83172
## Dim.2 0.8064826 20.162065 75.99379
## Dim.3 0.6295103 15.737758 91.73155
## Dim.4 0.3307381 8.268451 100.00000
fviz_eig(acpn,addlabels = T)
En la figura se muestra el histograma de valores propios con los valores numéricos en la parte inferior. dos valores propios se destacan, pero solo uno es mayores que 1. Seguramente dos son suficientes.
En el scree plot podemos ver que el codo se realiza en la segunda dimensión
El primer plano retiene el 75.99 % de la inercia
Por lo anterior, para hacer el analisis se eligen los 2 primeros ejes para un total acumulado 75.99%.
¿Cuál es la variable que más contribuye al primer eje? ¿Cuál es la que menos? (indique los porcentajes).
fviz_contrib(acpn, choice = "var", axes=1, addlabels=T)
get_pca_var(acpn)$contrib
## Dim.1 Dim.2 Dim.3 Dim.4
## price 32.98278 6.83923015 3.085017 57.0929775
## malt 29.08912 13.53859727 17.211516 40.1607634
## aging 23.58356 0.04937816 73.749324 2.6177390
## taste 14.34454 79.57279442 5.954142 0.1285201
price
con un 32.98%.taste
con un 14.34%Según el círculo de correlaciones, ¿cuáles son las variables más correlacionadas? ¿Cuánto es la correlación? ¿Si corresponden a lo que se observa en la matriz de correlaciones?
fviz_pca_var(acpn, col.var = "red")
price y maltcor(Y)
## price malt aging taste
## price 1.0000000 0.6568555 0.4827850 0.3156480
## malt 0.6568555 1.0000000 0.3879767 0.2627287
## aging 0.4827850 0.3879767 1.0000000 0.2967513
## taste 0.3156480 0.2627287 0.2967513 1.0000000
malt y
price la correlación entre estas variables es de 0.656 y
corresponde a lo visto en el círculo de correlaciones¿Cuál es la variable mejor representada en el primer plano factorial? ¿Cuál la peor? (escriba los porcentajes).
get_pca_var(acpn)$contrib
## Dim.1 Dim.2 Dim.3 Dim.4
## price 32.98278 6.83923015 3.085017 57.0929775
## malt 29.08912 13.53859727 17.211516 40.1607634
## aging 23.58356 0.04937816 73.749324 2.6177390
## taste 14.34454 79.57279442 5.954142 0.1285201
fviz_contrib(acpn, choice = 'var',axes = 1:2)
La variable mejor representada en el primer plano factorial es
taste con un 14.34%+ 79.57%= 93.91%
La variable peor representada en el primer plano factorial es
aging con un 23.58% + 0.04%= 23.62%
fviz_cos2(acpn, choice = "var", axes=1:2)
¿Qué representa el primer eje? ¿Qué nombre le asignaría? ¿Qué representa el segundo eje?
fviz_pca_biplot(acpn)
fviz_pca_biplot(acpn, col.ind = Whisky$type, addEllipses = T, repel = T, legend.title="Tipo")
## Warning: ggrepel: 4 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
El eje horizontal clasifica el grado de pureza del Whisky por contenido de malta de izquierda a derecha (low-pure)
El segundo eje los clasifica de abajo hacia arriba por su apreciación;
¿Cuál es el individuo mejor representado en el primer plano factorial? Ubique sobre el gráfico de individuos al peor representado sobre el primer plano factorial (indique los porcentajes).
Revisemos los cosenos cuadrados para verificar esta información
fviz_cos2(acpn, choice = "ind", axes=1:2)
fviz_contrib(acpn, choice = 'ind',axes = 1:2)
El individuo mejor representado en el primer plano factorial es el número 3
El individuo peor representado en el primer plano factorial es el número 11
get_pca_ind(acpn)$contrib
## Dim.1 Dim.2 Dim.3 Dim.4
## 1 3.364301530 4.416160e+00 5.690576171 0.765867739
## 2 6.367478764 9.029230e-01 3.099057829 0.028825853
## 3 3.313206812 7.492540e-01 0.004310974 0.004710241
## 4 0.195485229 3.430150e-01 7.964098167 0.052766778
## 5 0.047039291 4.361699e+00 6.072472471 0.594267745
## 6 6.674079122 5.934565e+00 2.148711165 0.628431177
## 7 4.152905503 5.343742e+00 0.547095161 0.011133871
## 8 6.072775251 6.733800e-01 3.962603660 2.023635488
## 9 5.491416174 6.392573e+00 1.402243540 1.329051020
## 10 0.172835514 7.973388e+00 10.016817465 3.082533010
## 11 0.004179031 6.615177e-02 6.282707115 0.111209846
## 12 3.369804144 1.178840e+00 0.853066315 0.048247048
## 13 1.350541929 4.079309e+00 0.257960757 2.195638338
## 14 0.276971380 2.124141e+00 3.531395285 0.367294553
## 15 0.265007922 3.893237e-02 0.975943295 0.008206388
## 16 0.065030629 9.049045e+00 0.168241898 1.611067911
## 17 0.182025535 3.269880e-02 0.177115718 0.748368548
## 18 0.433767435 2.553472e-05 0.082500578 0.005188900
## 19 0.077245339 1.304997e-02 0.111160035 0.204640765
## 20 0.083499349 6.884709e+00 1.662117633 0.474817150
## 21 0.196798934 1.280747e-04 0.183913204 0.013016794
## 22 0.492817901 2.150228e+00 0.649272629 0.098466398
## 23 0.283800464 3.635863e-02 5.693964238 0.212023748
## 24 2.090328978 4.917824e-01 1.469417745 7.460384856
## 25 1.148357468 5.287180e-02 6.600232066 2.026234156
## 26 4.061846902 3.612664e+00 0.311262601 6.970085650
## 27 1.197390869 8.560550e-01 1.733461700 0.643400582
## 28 0.397305978 1.630173e+00 2.508593545 0.614617364
## 29 8.780181173 7.809684e-03 16.053973265 1.216559207
## 30 19.814526774 4.348624e+00 2.877103864 18.303040087
## 31 6.197597381 1.155118e+00 0.630709875 13.989775965
## 32 2.693992161 2.655251e+00 0.022669288 16.139892640
## 33 4.133469395 3.738514e-01 3.932413135 4.610067833
## 34 5.053879532 3.541008e-01 1.605165175 5.443971726
## 35 1.498110207 2.171738e+01 0.717652438 7.962560629
contrib =get_pca_ind(acpn)$contrib[,1]+ get_pca_ind(acpn)$contrib[,2]
which.max(contrib)
## 30
## 30
contrib[30]
## 30
## 24.16315
cos2=get_pca_ind(acpn)$cos2[,1]+ get_pca_ind(acpn)$cos2[,2]
which.max(cos2)
## 3
## 3
which.min(cos2)
## 11
## 11
cos2[3]
## 3
## 0.9994666
cos2[11]
## 11
## 0.01546017
fviz_contrib(acpn, choice = "ind", axes=1:2)
¿Qué características tienen las marcas de Whisky según sus ubicaciones en el plano? (a la derecha, a la izquierda, arriba, abajo)
fviz_pca_biplot(acpn,repel = T, col.ind = Whisky$type)
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
En el primer plano factorial, las marcas de whisky que se encuentran en la parte derecha del origen son aquellas que tiene precio más alto, proporcion de malta alta y tiempo de añejamiento largo; a medida que se va hacia la izquierda del plano, estas caracteristicas disminuyen.
De abajo hacia arriba del plano se ve que las marcas de Whisky tienen mejor apreciación o taste en la parte de arriba; a medida que se mueve hacia abajo del plano la apreciación de las marcas de Whisky disminuye
A partir de la posición en el plano deduzca las características de las tres categorías de whisky (lujo, estándar y pura malta).
-En la categoría Estandar, se caracteriza por estar relacionado con buenas calificaciones de apreciación; sin mebargo, posee muy poca relación con las caracteristicas de añejamiento, precio y contenido de malta.
Supongamos que usted desea comprar una botella de Whisky con buena apreciación y que no sea tan cara. Dé dos números de marcas que compraría. ¿Por qué? ?Cuáles son las características de las dos marcas?
Según la gráfica serían los Whiskys de marcas 16 y 20 por que estan en la parte de arriba del plano, mas alineados con el eje principal 2, que corresponde a una buena apreciación y sus coordenadas en el eje principal 1 estan muy cercanas al origen, lo que corresponde a un precio medio. Ademas, se ve que la marca 16 tiene mejor añejamiento que la 20. Todo esto se corrobora con las coordenadas de las dos marcas de mayor participación sobre el eje 2
order(acpn$ind$coord[,2],decreasing = T)
## [1] 16 20 1 5 13 26 14 28 31 2 27 3 8 24 4 11 15 29 21 18 19 17 23 25 34
## [26] 33 12 22 32 30 7 6 9 10 35
head(Whisky[order(acpn$ind$coord[,2],decreasing = T),],10)
## price malt type aging taste
## 16 73 40 med 10.5 4
## 20 87 40 med 8.5 4
## 1 70 20 low 5.0 3
## 5 70 25 low 12.0 3
## 13 62 33 med 8.0 3
## 26 113 45 med 12.0 4
## 14 87 33 med 12.0 3
## 28 82 45 med 12.0 3
## 31 90 100 pure 12.0 4
## 2 60 20 low 5.0 2
summary(Whisky)
## price malt type aging taste
## Min. : 55.00 Min. : 20.0 low :11 Min. : 5.000 Min. :0.000
## 1st Qu.: 73.00 1st Qu.: 30.0 med :17 1st Qu.: 8.000 1st Qu.:2.000
## Median : 83.00 Median : 40.0 pure: 7 Median :10.000 Median :2.000
## Mean : 85.71 Mean : 47.4 Mean : 9.529 Mean :2.229
## 3rd Qu.: 91.50 3rd Qu.: 45.0 3rd Qu.:12.000 3rd Qu.:3.000
## Max. :160.00 Max. :100.0 Max. :12.500 Max. :4.000
Whisky$price
## [1] 70 60 65 74 70 73 70 55 77 93 82 73 62 87 78 73 87 80 85
## [20] 87 80 83 90 110 87 113 96 82 127 160 90 86 100 100 95
Seleccione dos marcas que definitivamente no compraría. ¿Por qué? ¿Qué características tienen?
order(acpn$ind$coord[,2],decreasing = F)
## [1] 35 10 9 6 7 30 32 22 12 33 34 25 23 17 19 18 21 29 15 11 4 24 8 3 27
## [26] 2 31 28 14 26 13 5 1 20 16
head(Whisky[order(acpn$ind$coord[,2],decreasing = F),])
## price malt type aging taste
## 35 95 100 pure 12.0 0
## 10 93 30 low 12.0 0
## 9 77 30 low 5.5 0
## 6 73 30 low 5.0 0
## 7 70 30 low 8.0 0
## 30 160 100 pure 12.0 3
No se comprarían las marcas 35 y 10, porque tienen baja calificación en la apreciación y ademas el precio es relativamente alto.