Introduccion:
Es interesante observar el comportamiento de la economia mundial desde el punto de vista de las variaciones que han tenido las divisas durante la pandemia y como poder contribuir a realizar con el presente documento un análisis de componentes principales ( PCA ) que nos va a permitir resumir y visualizar la información de un conjunto de datos que contiene el precio de cierre de las divisas, y elevarlo a dimensiones para luego poder reducir y optimizar las variables para conformar un portafolio optimo.
El siguiente es un resumen descriptivo de las divisas
Formato de datos
como se observa en la siguiente tabla , contiene 284 observaciones y 7 variables
datos[1:284, 1:7]
## # A tibble: 284 x 7
## observaciones `GBP/USD` `USD/JPY` `AUD/USD` `EUR/GBP` `USD/CAD` `NZD/USD`
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1.37 105. 0.768 0.877 1.28 0.720
## 2 2 1.37 106. 0.760 0.875 1.28 0.715
## 3 3 1.36 105. 0.762 0.882 1.28 0.721
## 4 4 1.37 105. 0.761 0.881 1.28 0.719
## 5 5 1.37 105. 0.762 0.882 1.28 0.716
## 6 6 1.37 105. 0.764 0.886 1.28 0.719
## 7 7 1.37 104. 0.768 0.883 1.28 0.717
## 8 8 1.37 104. 0.766 0.885 1.28 0.716
## 9 9 1.37 104. 0.774 0.885 1.27 0.724
## 10 10 1.37 104. 0.771 0.887 1.27 0.720
## # … with 274 more rows
head(datos[, 1:7], 4)
## # A tibble: 4 x 7
## observaciones `GBP/USD` `USD/JPY` `AUD/USD` `EUR/GBP` `USD/CAD` `NZD/USD`
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1.37 105. 0.768 0.877 1.28 0.720
## 2 2 1.37 106. 0.760 0.875 1.28 0.715
## 3 3 1.36 105. 0.762 0.882 1.28 0.721
## 4 4 1.37 105. 0.761 0.881 1.28 0.719
Estandarizacion de los datos:
Es necesario estandarizar los datos para hacer que las variables sean comparables, este paso es muy importante antes de analizar los PCA
library("FactoMineR")
res.pca <- PCA(datos, graph = FALSE)
print(res.pca)
## **Results for the Principal Component Analysis (PCA)**
## The analysis was performed on 284 individuals, described by 8 variables
## *The results are available in the following objects:
##
## name description
## 1 "$eig" "eigenvalues"
## 2 "$var" "results for the variables"
## 3 "$var$coord" "coord. for the variables"
## 4 "$var$cor" "correlations variables - dimensions"
## 5 "$var$cos2" "cos2 for the variables"
## 6 "$var$contrib" "contributions of the variables"
## 7 "$ind" "results for the individuals"
## 8 "$ind$coord" "coord. for the individuals"
## 9 "$ind$cos2" "cos2 for the individuals"
## 10 "$ind$contrib" "contributions of the individuals"
## 11 "$call" "summary statistics"
## 12 "$call$centre" "mean of the variables"
## 13 "$call$ecart.type" "standard error of the variables"
## 14 "$call$row.w" "weights for the individuals"
## 15 "$call$col.w" "weights for the variables"
Visualización e interpretación
Autovalores / Varianzas
En este punto se pretende medir la cantidad de variación retenida por cada componente principal, en cada escala de componente los valores van en forma descendente y que se espera que el primer componente asuma gran parte de los valores.
Como se puede observar el primer y el segundo componente se acumula mas del 90% de la variacion total
library("factoextra")
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
eig.val <- get_eigenvalue(res.pca)
eig.val
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 5.8990059057 73.737573821 73.73757
## Dim.2 1.4733630027 18.417037534 92.15461
## Dim.3 0.3987811090 4.984763863 97.13938
## Dim.4 0.0979226871 1.224033588 98.36341
## Dim.5 0.0772193201 0.965241501 99.32865
## Dim.6 0.0304585931 0.380732414 99.70938
## Dim.7 0.0230336382 0.287920478 99.99730
## Dim.8 0.0002157441 0.002696801 100.00000
En la siguiente grafica se observa atraves de la regla del codito que la primer componente explica el 73.74% de los valores y la segunda explica el 18.42% de los valores, con esto entendemos que se puede ganar o ser mucho mas practico para luego realizar la estadistica inferencial
fviz_eig(res.pca, addlabels = TRUE, ylim = c(0, 50))
Gráfica de variables
Resultados
var <- get_pca_var(res.pca)
var
## Principal Component Analysis Results for variables
## ===================================================
## Name Description
## 1 "$coord" "Coordinates for the variables"
## 2 "$cor" "Correlations between variables and dimensions"
## 3 "$cos2" "Cos2 for the variables"
## 4 "$contrib" "contributions of the variables"
Coordenadas
head(var$coord)
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## observaciones -0.8888564 0.36867771 0.11640567 0.17348986 0.16877180
## GBP/USD 0.8869162 0.41949574 -0.11601163 0.12145409 -0.09153762
## USD/JPY -0.8032412 0.39072490 0.42721532 -0.12864040 -0.05498688
## AUD/USD 0.9783692 0.06658549 0.03547689 -0.10981460 0.08949192
## EUR/GBP 0.3497091 -0.90563868 0.22463735 0.05006006 0.06461232
## USD/CAD -0.9016136 -0.39012919 -0.09650557 -0.01108830 -0.08563530
Calidad en el mapa de factores
# Cos2: quality on the factore map
head(var$cos2)
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## observaciones 0.7900657 0.135923250 0.013550279 0.0300987326 0.028483922
## GBP/USD 0.7866204 0.175976680 0.013458698 0.0147510953 0.008379135
## USD/JPY 0.6451964 0.152665950 0.182512928 0.0165483535 0.003023557
## AUD/USD 0.9572063 0.004433628 0.001258610 0.0120592471 0.008008804
## EUR/GBP 0.1222965 0.820181412 0.050461937 0.0025060100 0.004174751
## USD/CAD 0.8129072 0.152200783 0.009313324 0.0001229504 0.007333404
Contribuciones a los componentes principales
# Contributions to the principal components
head(var$contrib)
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## observaciones 13.393200 9.2253742 3.3979240 30.7372413 36.887040
## GBP/USD 13.334796 11.9438780 3.3749589 15.0640222 10.851087
## USD/JPY 10.937374 10.3617336 45.7676966 16.8994070 3.915545
## AUD/USD 16.226570 0.3009189 0.3156141 12.3150697 10.371503
## EUR/GBP 2.073171 55.6673006 12.6540441 2.5591720 5.406356
## USD/CAD 13.780410 10.3301619 2.3354478 0.1255586 9.496852
CÃrculo de correlación
# Coordinates of variables
head(var$coord, 4)
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## observaciones -0.8888564 0.36867771 0.11640567 0.1734899 0.16877180
## GBP/USD 0.8869162 0.41949574 -0.11601163 0.1214541 -0.09153762
## USD/JPY -0.8032412 0.39072490 0.42721532 -0.1286404 -0.05498688
## AUD/USD 0.9783692 0.06658549 0.03547689 -0.1098146 0.08949192
fviz_pca_var(res.pca, col.var = "black")
#Cos2 feliz
fviz_pca_var(res.pca, col.var="cos2",
gradient.cols=c("#00AFBB","#E7B800","#FC4E07"),
repel=T)
#Cos2 triste
fviz_pca_var(res.pca, alpha.var="cos2")
#Contribuciones
fviz_contrib(res.pca, choice="var", axes=1, top=10)
fviz_contrib(res.pca, choice="var", axes=2, top=10)
#Contribución feliz
fviz_pca_var(res.pca, col.var="contrib",
gradient.cols=c("#00AFBB","#E7B800","#FC4E07"))
#Contribución triste
fviz_pca_var(res.pca, alpha.var="contrib")