Guía de trabajo sobre Componentes Principales
Ejercicio:
Una empresa especializada en el diseño de automóviles de turismo
desea estudiar cuáles son los deseos del público que compra automóviles.
Para ello diseña una encuesta con 10 preguntas donde se le pide a cada
uno de los 20 encuestados que valore de 1 a 5 si una característica es o
no muy importante. Los encuestados deberán contestar con un 5 si la
característica es muy importante, un 4 si es importante, un 3 si tiene
regular importancia, un 2 si es poco importante y un 1 si no es nada
importante. Las 10 características (V1 a V10) a valorar son: precio,
financiación, consumo, combustible, seguridad, confort, capacidad,
prestaciones, modernidad y aerodinámica.
El fichero 6-2.RData recoge los datos
#Se cargan los datos
load("D:/Universidad/3° año/Metodos/Tarea7/6-2.RData")
Realizar un análisis de Componentes Principales, una solución
adecuada de la cantidad de Componentes a retener y justifique su
respuesta.
a) Calcula la matriz de varianza covarianza para la batería de
indicadores:
2. Usando el comando cov de R base
cov(mat_X) %>%
kable(caption="Cálculo de V(X) a través de R base",
align = "c",
digits = 2) %>%
kable_material(html_font = "sans-serif") %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Cálculo de V(X) a través de R base
|
|
V1
|
V2
|
V3
|
V4
|
V5
|
V6
|
V7
|
V8
|
V9
|
V10
|
|
V1
|
1.80
|
1.92
|
1.32
|
1.73
|
-0.62
|
-0.31
|
0.36
|
-1.21
|
-1.27
|
-0.90
|
|
V2
|
1.92
|
2.67
|
1.42
|
2.14
|
-0.66
|
-0.14
|
0.52
|
-1.78
|
-1.81
|
-1.54
|
|
V3
|
1.32
|
1.42
|
1.42
|
1.53
|
-0.53
|
-0.32
|
0.29
|
-0.92
|
-1.11
|
-0.87
|
|
V4
|
1.73
|
2.14
|
1.53
|
2.48
|
-0.80
|
-0.48
|
0.35
|
-1.61
|
-1.83
|
-1.39
|
|
V5
|
-0.62
|
-0.66
|
-0.53
|
-0.80
|
0.85
|
0.80
|
0.21
|
0.37
|
0.46
|
0.15
|
|
V6
|
-0.31
|
-0.14
|
-0.32
|
-0.48
|
0.80
|
1.38
|
0.63
|
0.22
|
0.09
|
-0.37
|
|
V7
|
0.36
|
0.52
|
0.29
|
0.35
|
0.21
|
0.63
|
1.61
|
-0.53
|
-0.34
|
-0.71
|
|
V8
|
-1.21
|
-1.78
|
-0.92
|
-1.61
|
0.37
|
0.22
|
-0.53
|
1.92
|
1.81
|
1.37
|
|
V9
|
-1.27
|
-1.81
|
-1.11
|
-1.83
|
0.46
|
0.09
|
-0.34
|
1.81
|
2.17
|
1.56
|
|
V10
|
-0.90
|
-1.54
|
-0.87
|
-1.39
|
0.15
|
-0.37
|
-0.71
|
1.37
|
1.56
|
1.82
|
b) Calcula la matriz de correlación para la batería de
indicadores:
2. Usando el comando cor de R base
cor(mat_X) %>%
kable(caption="Cálculo de R(X) a través de R base",
align = "c",
digits = 2) %>%
kable_material(html_font = "sans-serif") %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Cálculo de R(X) a través de R base
|
|
V1
|
V2
|
V3
|
V4
|
V5
|
V6
|
V7
|
V8
|
V9
|
V10
|
|
V1
|
1.00
|
0.87
|
0.82
|
0.82
|
-0.50
|
-0.19
|
0.21
|
-0.65
|
-0.64
|
-0.50
|
|
V2
|
0.87
|
1.00
|
0.73
|
0.83
|
-0.44
|
-0.07
|
0.25
|
-0.78
|
-0.75
|
-0.70
|
|
V3
|
0.82
|
0.73
|
1.00
|
0.81
|
-0.48
|
-0.23
|
0.19
|
-0.56
|
-0.63
|
-0.54
|
|
V4
|
0.82
|
0.83
|
0.81
|
1.00
|
-0.55
|
-0.26
|
0.17
|
-0.74
|
-0.79
|
-0.65
|
|
V5
|
-0.50
|
-0.44
|
-0.48
|
-0.55
|
1.00
|
0.74
|
0.18
|
0.29
|
0.34
|
0.12
|
|
V6
|
-0.19
|
-0.07
|
-0.23
|
-0.26
|
0.74
|
1.00
|
0.42
|
0.13
|
0.05
|
-0.24
|
|
V7
|
0.21
|
0.25
|
0.19
|
0.17
|
0.18
|
0.42
|
1.00
|
-0.30
|
-0.18
|
-0.41
|
|
V8
|
-0.65
|
-0.78
|
-0.56
|
-0.74
|
0.29
|
0.13
|
-0.30
|
1.00
|
0.89
|
0.73
|
|
V9
|
-0.64
|
-0.75
|
-0.63
|
-0.79
|
0.34
|
0.05
|
-0.18
|
0.89
|
1.00
|
0.78
|
|
V10
|
-0.50
|
-0.70
|
-0.54
|
-0.65
|
0.12
|
-0.24
|
-0.41
|
0.73
|
0.78
|
1.00
|
c) Realiza un análisis de componentes principales, y con base en los
criterios vistos en clase:
1. ¿Cuántas Componentes habría que retener?
#Se realiza la extracción de los componentes, cálculo usando R
library(factoextra)
library(stargazer)
library(ggplot2)
options(scipen = 99999)
PC<-princomp(x = mat_X,cor = TRUE,fix_sign = FALSE)
factoextra::get_eig(PC) %>% kable(caption="Resumen de PCA",
align = "c",
digits = 2) %>%
kable_material(html_font = "sans-serif") %>%
kable_styling(bootstrap_options = c("hover"))
Resumen de PCA
|
|
eigenvalue
|
variance.percent
|
cumulative.variance.percent
|
|
Dim.1
|
5.70
|
57.01
|
57.01
|
|
Dim.2
|
2.07
|
20.69
|
77.70
|
|
Dim.3
|
0.72
|
7.20
|
84.91
|
|
Dim.4
|
0.55
|
5.48
|
90.39
|
|
Dim.5
|
0.32
|
3.16
|
93.54
|
|
Dim.6
|
0.27
|
2.71
|
96.25
|
|
Dim.7
|
0.15
|
1.46
|
97.72
|
|
Dim.8
|
0.13
|
1.28
|
99.00
|
|
Dim.9
|
0.07
|
0.68
|
99.68
|
|
Dim.10
|
0.03
|
0.32
|
100.00
|
- Respuesta: Según “la regla de los tres cuartos”, podemos retener
solo los primeros 2 componentes puesto que, con el segundo, se logra
explicar el 77.70% de la varianza original de la información, es decir,
más del 75% que es el valor mínimo. Según el criterio de raiz latente,
de igual forma solo se retiene las primeras 2 componentes puesto que,
son las unica en sobrepasar la unidad.
2. Incluye las tablas y gráficos vistos en clase.
#Gráfico de sedimentación con autovalores
fviz_eig(PC,
choice = "eigenvalue",
barcolor = "purple",
barfill = "pink",
addlabels = TRUE,
)+labs(title = "Gráfico de Sedimentación",subtitle = "Usando princomp, con Autovalores")+
xlab(label = "Componentes")+
ylab(label = "Autovalores")+geom_hline(yintercept = 1)

#Grafico de sedomentacion con el % de la varianza explicada
fviz_eig(PC,
choice = "variance",
barcolor = "purple",
barfill = "skyblue",
addlabels = TRUE,
)+labs(title = "Gráfico de Sedimentación",
subtitle = "Usando princomp, con %Varianza Explicada")+
xlab(label = "Componentes")+
ylab(label = "%Varianza")

- Según el criterio del codo podemos tomar las primeras 3 componentes
puesto que, despues del tercer componente se observa un cambio de
tendencia abrupta.