library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.3 ✓ purrr 0.3.4
## ✓ tibble 3.1.1 ✓ dplyr 1.0.5
## ✓ tidyr 1.1.3 ✓ stringr 1.4.0
## ✓ readr 1.4.0 ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
dfeurope <- read.csv('europe.csv')
dfeurope <- column_to_rownames (dfeurope, var = 'Country')
head (dfeurope)
## Area GDP Inflation Life.expect Military Pop.growth
## Austria 83871 41600 3.5 79.91 0.80 0.03
## Belgium 30528 37800 3.5 79.65 1.30 0.06
## Bulgaria 110879 13800 4.2 73.84 2.60 -0.80
## Croatia 56594 18000 2.3 75.99 2.39 -0.09
## Czech Republic 78867 27100 1.9 77.38 1.15 -0.13
## Denmark 43094 37000 2.8 78.78 1.30 0.24
## Unemployment
## Austria 4.2
## Belgium 7.2
## Bulgaria 9.6
## Croatia 17.7
## Czech Republic 8.5
## Denmark 6.1
a.1) Descripción y tamaño del dataframe importado
dim(dfeurope)
## [1] 28 7
str(dfeurope)
## 'data.frame': 28 obs. of 7 variables:
## $ Area : int 83871 30528 110879 56594 78867 43094 45228 338145 357022 131957 ...
## $ GDP : int 41600 37800 13800 18000 27100 37000 20400 36000 38100 26300 ...
## $ Inflation : num 3.5 3.5 4.2 2.3 1.9 2.8 5 3.3 2.5 3.3 ...
## $ Life.expect : num 79.9 79.7 73.8 76 77.4 ...
## $ Military : num 0.8 1.3 2.6 2.39 1.15 1.3 2 2 1.5 4.3 ...
## $ Pop.growth : num 0.03 0.06 -0.8 -0.09 -0.13 0.24 -0.65 0.07 -0.2 0.06 ...
## $ Unemployment: num 4.2 7.2 9.6 17.7 8.5 6.1 12.5 7.8 6 17.4 ...
nombrevariables = names(dfeurope)
nombrevariables
## [1] "Area" "GDP" "Inflation" "Life.expect" "Military"
## [6] "Pop.growth" "Unemployment"
a.2) Revisar si hay valores NA en el dataframe ´europe.csv´
anyNA(dfeurope)
## [1] FALSE
Las variables que se encuentran en el archivo que he importado al R son siete, a saber: Area, GDP, Inflation, Life.expect, Military, Pop.growth, Unemployment. Cabe destacar a la variable ‘Country’, la transformé en un índice para realizar el trabajo correspondiente. Por otro lado, mantuve los nombres de variables y nombre de países tal cual están en el archivo original. Las variables que tienen el archivo importado son de carácter numérico, con distintos tipos de medidas y valores entre sí. Las variables descriptas anteriormente tienen unos 28 registros cada una y no existe registros con valores ´NA´. A continuación se incorpora una muestra (tabla 1) de los primeros seis registros de las siete variables que contiene el archivo, incorporando la variable ´Country´ como índice.
A continuación podemos encontrar como es la distribución de las variables del archivo (´europe.csv´), realizando los gráficos de boxplot y scatterplot correspondientes.
Gráfico boxplot
grafico1 = boxplot(dfeurope [,1:7], main = 'Variabilidad de cada variable', cex.main = 1, cex.sub= 0.5 , ylab = 'Variabilidad', xlab = 'Variables', cex.lab=0.8, col = c("orange2", "yellow3", "green3", "grey","red", "brown", "black"), axes=T, xlim=c(0, 8), outpch = 25, outbg = "red", whiskcol = 'black', whisklty = 2, lty = 1, tcl=0.4, las=0.3 )
Gráfico scatter-plot
grafico2 = plot(dfeurope[,1:7], main='Datos Europa', cex.main= 1, sub= "Gráfico 2. Scatter-plot datos Europa", cex.sub= 0.5, pch= 15, col = c ('blue', 'pink', 'yellow', 'red', ' green', ' brown', 'orange' ), labels = c ('Area', 'GDP', 'Inflation', 'Life.expe', 'Military', 'Pop.growth', 'Unemployment'), font.labels=1.5, cex.labels=1)
Teniendo en cuenta el gráfico de boxplot (gráfico 1), puedo apreciar que existe un mayor rango de variabilidad correspondiente a la variable ´Area´ si las comparo con el resto de las otras variables. A su vez, noto que existen cuatro valores considerados outliers en las variables de ´GDP´, ´Inflation´, ´Life.expect´, ´Military´. Ahora bien, cuando las escalas de medida de las variables son muy distintas entre si, como ocurre en este análisis, la maximización de la varianza dependerá de las escalas de medida de cada variable y las variables con valores más grande, por ejemplo la variable ´Area´, tendrán mayor peso para el análisis que vayamos a realizar. De acuerdo a esta situación y para evitar la realización de un análisis incorrecto sobre el cálculo de componentes principales, puedo indicar que tengo ciertos indicios para utilizar las ´variables estandarizadas´ para calcular los componentes principales, de manera que las magnitudes de los valores numéricos de las variables del archivo sean similares. Cabe destacar que hago mención sobre tener ciertos indicios para realizar el análisis de componentes principales, ya que aún no analice concretamente si las variables están o no correlacionadas. Como veremos más adelante para realizar un análisis de componentes principales, necesitamos que las variables tengan correlación entre si. Con respecto al análisis de las variables utilizando el scatterplot (gráfico 2) , se puede apreciar que hay variables que tienen cierta correlación, tanto positiva como negativa. Por ejemplo la correlación positiva que tiene la variable ´Life.expect´ con la variable ´Pop.growth´, como también la variable ´GDP´ con la variable ´Life expect´, además podemos notar que hay ciertas dispersión de los valores entre si. A pesar de realizar este comentario sobre lo que se puede apreciar en el gráfico 2, a continuación voy a analizar mas en detalle si hay o no correlación entre las variables.
Antes de realizar los cálculos correspondientes al análisis de los componentes principales, es necesario entender si las variables que contiene archivo importado (´europe.csv´) tienen o no correlación, y para ello vamos a realizar este estudio utilizando la matriz de correlaciones. En el caso que notemos que las variables no están correlacionadas entre si, entonces no tiene sentido realizar un análisis de componentes principales; ya que para realizar el mismo, si o si, tenemos que ver que existe correlación entre las variables. A continuación analizaré si existe o no correlación de la variables utilizando la matriz de correlación y la matriz de covarianza.
c.1) Calculamos la matriz de correlaciones
library(ggcorrplot)
library(ggplot2)
correurope <- cor(dfeurope[,1:7])
ggcorrplot(correurope) + ggtitle('Matriz de Correlaciones')
Para realizar la matriz de correlaciones, he utilizado el mapa de calor (gráfico 3). Se puede observar que mayoritariamente existen variables que están altamente correlacionadas tanto positivamente como negativamente. Por ejemplo la correlación positiva entre la variable ´Life.Expect´ con la variable ´(Pop.growth)’ y la correlación negativa entre la variable ´(Inflation)´ con la variable ´ (GDP)´, entre otras. Cabe destacar que son pocas las variables que tienen baja o nula correlación. Adicionalmente he realizado el cálculo de la matriz de covarianza (tabla 2) y puedo indicar, como lo mencioné anteriormente, que existe correlación tanto positiva como negativa entre las mayoría de las variables. A continuación incorporo la matriz de covarianza donde se puede apreciar esta afirmación.
c.2) Calculamos la matriz de covarianza
coveurope <- cov(dfeurope[1:7])
options(scipen=999)
coveurope
## Area GDP Inflation Life.expect
## Area 27403053235.739 -332532111.508 74089.92804233 -11440.5584259
## GDP -332532111.508 210311362.434 -9991.95767196 32419.8796296
## Inflation 74089.928 -9991.958 1.95513228 -3.0287037
## Life.expect -11440.558 32419.880 -3.02870370 10.1707157
## Military 13489.840 -3305.827 0.05410053 -0.1616417
## Pop.growth -7363.911 5535.550 -0.33602116 1.2352593
## Unemployment 19707.051 -35802.460 1.30015873 -3.6695741
## Military Pop.growth Unemployment
## Area 13489.83996032 -7363.9106349 19707.051058
## GDP -3305.82671958 5535.5502646 -35802.460317
## Inflation 0.05410053 -0.3360212 1.300159
## Life.expect -0.16164167 1.2352593 -3.669574
## Military 0.64216548 -0.1135746 1.095643
## Pop.growth -0.11357460 0.2519693 -0.410381
## Unemployment 1.09564286 -0.4103810 21.882487
Como conclusión, teniendo en cuenta que las variables bajo análisis están correlacionadas, por lo tanto, podemos realizar el análisis de los componentes principales. Una de las aplicaciones de análisis de componentes principales, es la reducción de dimensionalidad (variables), perdiendo la menor cantidad de información (varianza) posible. Cuando contamos con un gran número de variables cuantitativas correlacionadas, como en este caso, el análisis de componentes principales permite reducirlas a un número menor de variables transformadas (componentes principales) que expliquen gran parte de la variabilidad en los datos.
Para comenzar a calcular la varianza explicada por los componentes principales, comienzo por realizar el cálculo de los componentes principales utilizando la matriz de covarianza (tabla 3) y obtengo como resultado lo siguiente:
acp= prcomp(dfeurope[1:7])
print(acp)
## Standard deviations (1, .., p=7):
## [1] 165550.9561020 14361.2514738 4.0170533 2.3169702 0.8815877
## [6] 0.7473809 0.2410697
##
## Rotation (n x k) = (7 x 7):
## PC1 PC2 PC3 PC4
## Area 0.9999252600751 0.01222596642 -0.00000115907 0.0000008763984
## GDP -0.0122259664360 0.99992523153 -0.00013923770 0.0001911238366
## Inflation 0.0000027075648 -0.00004405133 0.04075769233 0.3473311647376
## Life.expect -0.0000004318611 0.00015650077 -0.17786630641 -0.9164732354676
## Military 0.0000004936399 -0.00001522774 -0.03845450546 -0.0518473040177
## Pop.growth -0.0000002711353 0.00002640108 -0.03703965635 -0.0522010103891
## Unemployment 0.0000007349659 -0.00017241027 -0.98175948329 0.1844579782090
## PC5 PC6 PC7
## Area 0.00000255643 0.0000004766935 0.000000082325
## GDP 0.00002042596 -0.0000209914170 -0.000017702789
## Inflation -0.93243795454 -0.0817542177495 -0.039693568644
## Life.expect -0.34761766009 0.0232240281316 -0.084041466734
## Military 0.06038967673 -0.9883531655308 0.123871768263
## Pop.growth -0.07392448081 0.1234304381148 0.987523779845
## Unemployment 0.02469171905 0.0264544719976 -0.028531060840
summary(acp)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 165550.9561 14361.25147 4.017 2.317 0.8816 0.7474 0.2411
## Proportion of Variance 0.9925 0.00747 0.000 0.000 0.0000 0.0000 0.0000
## Cumulative Proportion 0.9925 1.00000 1.000 1.000 1.0000 1.0000 1.0000
En principio, se puede observar que hay siete componentes principales debido a que tenemos siete variables numéricas que estamos analizando del archivo importado. El resultado que tenemos al calcular los componentes principales con la matriz de covarianza, es que con la primera componente principal tenemos la mayor varianza acumulada (99,25%). Esto se debe a que la variable ‘Area’ (99.99%) tiene valores más grande en comparación con las otras variables en la primera componente, por lo tanto usando la matriz de covarianza y al no estandarizar las variables, dicha variable tiene más peso en el análisis. Los cálculos de las variables por cada componente se encuentra desarrollado el programa R que se adjunta a este documento. Para dar mayor sustento del análisis realizado sobre las componentes principales utilizando la matriz de covarianza, podemos ver que en el gráfico de barra (gráfico 4) la importancia de la primera componente principal. Las alturas de las barras son las varianzas correspondientes de cada componente y ahí notamos gráficamente que la primera componente muestra tiene la mayor variabilidad, utilizando la matriz de covarianza.
color = c('red', 'blue', 'yellow', 'green', 'pink', 'skyblue', 'violet')
screeplot(acp, main = 'Importancia por componente - matriz covarianza -', cex.main= 1, col = color)
De acuerdo al análisis realizado con la matriz de covarianza para calcular los componentes principales, puedo concluir que no es adecuado utilizar esta matriz debido a que existe una variable ‘Area’ que tiene mayores valores de acuerdo a su medida que es resto y por lo tanto tiene un gran peso en el análisis. Como considero que no se puede utilizar la matriz de covarianza para realizar el análisis de los componentes principales, en este documento no incluyo los cálculos realizado mas en detalle, sino que los mismos se encuentran desarrollado el programa R que se adjunta a este documento.
A continuación realizo el cálculo para obtener los autovalores y sus componentes
Autovalores de matriz de covarianza.
acp$sdev^2
## [1] 27407119066.28216553 206245543.89463460 16.13671749
## [4] 5.36835095 0.77719683 0.55857827
## [7] 0.05811462
Los valores de los componentes
acp$x
## PC1 PC2 PC3 PC4 PC5
## Austria -82664.44 8729.2865 4.07936758 -0.8035752 -0.96350378
## Belgium -135956.99 4277.4003 1.75092748 -0.8124283 -0.98505723
## Bulgaria -55318.57 -18738.4380 3.68707400 0.6590510 0.29842517
## Croatia -109650.87 -15202.4396 -5.26513093 0.2517840 1.40452727
## Czech Republic -87490.79 -5830.8092 2.25980519 -1.0329340 1.23803949
## Denmark -123382.15 3631.0917 3.04723436 -0.6124146 -0.05460727
## Estonia -121045.36 -12941.5790 0.09346492 2.9372862 -0.36588193
## Finland 171659.02 6238.4499 1.06319782 -0.6625091 0.09084176
## Germany 190508.94 8569.0829 2.37397203 -1.5293258 0.60212228
## Greece -34394.97 -5981.6740 -6.97401057 -1.6315862 -0.48019457
## Hungary -73239.15 -13157.1174 1.41151076 0.8177878 0.17573830
## Iceland -63494.08 5463.4183 1.23646014 -1.6826996 -1.84782483
## Ireland -96251.64 7763.0960 -5.96088334 0.1631659 -0.13987991
## Italy 134924.02 288.8847 0.82674214 -4.0253760 -0.61445802
## Latvia -101641.79 -16304.6030 0.40166761 2.7529072 0.34485449
## Lithuania -100958.97 -13996.0823 -2.95437668 1.1610118 -0.20891036
## Luxembourg -164420.18 46732.5826 -2.74990365 6.9044781 -0.26480767
## Netherlands -124994.16 8611.7560 3.60328593 -2.1240032 -0.27003228
## Norway 157104.36 23461.7929 2.82584543 0.2833741 1.82175840
## Poland 146394.10 -9871.6432 -0.61528934 0.3655962 0.08093410
## Portugal -74223.54 -9368.8692 -1.58085618 -1.6141354 -0.79073977
## Slovakia -117274.10 -9995.2512 -1.47497614 1.0051274 -0.21661348
## Slovenia -146101.19 -4847.3051 -1.18958064 -0.3024283 1.30058666
## Spain 338938.77 2783.3463 -12.34097940 -0.7660738 0.19794367
## Sweden 283743.18 12309.2409 0.26179137 -1.4269298 0.09300073
## Switzerland -125290.71 11108.3175 4.70014283 -2.9026641 1.53760667
## Ukraine 437396.29 -19314.5661 6.80583981 5.5630457 -0.47433210
## United Kingdom 77124.98 5582.6308 0.67765746 -0.9355320 -1.50953580
## PC6 PC7
## Austria 0.41944247 -0.3583369647
## Belgium 0.05663309 -0.2676386335
## Bulgaria -0.92094822 -0.1323730831
## Croatia -0.32025380 0.1275620384
## Czech Republic 0.54156435 -0.0632561096
## Denmark 0.10955696 0.0575981147
## Estonia -0.47398416 -0.2734548509
## Finland -0.42290649 -0.1028735409
## Germany 0.03876051 -0.4495042326
## Greece -2.32319850 -0.0007858102
## Hungary -0.04825940 0.1461036601
## Iceland 1.44080050 0.0353640173
## Ireland 0.81715934 0.4438690598
## Italy 0.01640891 0.0656770411
## Latvia 0.54839683 -0.2003555434
## Lithuania 0.89177872 -0.2322414989
## Luxembourg -0.35565707 0.0277204612
## Netherlands -0.22135335 0.1028392730
## Norway -0.59846996 -0.0364146695
## Poland -0.04833412 0.1128227257
## Portugal -0.47819989 0.1497040821
## Slovakia 0.63415988 0.1199908707
## Slovenia 0.02474508 -0.1878838460
## Spain 1.06179825 -0.0630351880
## Sweden 0.09611110 -0.2683134130
## Switzerland 0.51246047 0.5555289285
## Ukraine 0.18537399 0.3705361038
## United Kingdom -1.18358548 0.3211510081
De acuerdo a lo expuesto anteriormente, considero que debemos estandarizar las variables -como veremos a continuación- para hacer un correcto análisis. Como comente anteriormente, voy a realizar el análisis de los componentes principales utilizando la matriz de correlaciones. El objetivo en este caso, es estandarizar los valores de las variables y así obtener una mejor conclusión sobre el análisis de componentes principales. A continuación se describe el resultado correspondiente al análisis de componentes principales utilizando la matriz de correlaciones.
acpCorr=prcomp(dfeurope[1:7],scale=TRUE)
print(acpCorr)
## Standard deviations (1, .., p=7):
## [1] 1.7964314 1.0895519 1.0311113 0.8776993 0.6766451 0.4106993 0.3544600
##
## Rotation (n x k) = (7 x 7):
## PC1 PC2 PC3 PC4 PC5
## Area 0.1248739 0.17287220 -0.8982967395 0.04485040 -0.32401693
## GDP -0.5005059 0.13013955 -0.0839557607 -0.08425547 0.39063244
## Inflation 0.4065182 0.36965724 -0.1981946748 0.16468565 0.68950054
## Life.expect -0.4828733 -0.26524780 -0.2460824604 0.02677144 -0.10178656
## Military 0.1881116 -0.65826689 -0.2436794326 -0.56237480 0.36814758
## Pop.growth -0.4757036 -0.08262198 -0.1636972068 0.39246277 0.34786777
## Unemployment 0.2716558 -0.55320371 -0.0005001357 0.70196791 0.01015874
## PC6 PC7
## Area 0.19011808 0.06664282
## GDP 0.63865707 -0.39740844
## Inflation -0.32386726 -0.22670030
## Life.expect -0.60643419 -0.50703130
## Military 0.03559607 0.13730960
## Pop.growth -0.12085562 0.67114668
## Unemployment 0.25970497 -0.24466243
summary(acpCorr)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 1.796 1.0896 1.0311 0.8777 0.67665 0.4107 0.35446
## Proportion of Variance 0.461 0.1696 0.1519 0.1100 0.06541 0.0241 0.01795
## Cumulative Proportion 0.461 0.6306 0.7825 0.8925 0.95795 0.9820 1.00000
Teniendo en cuenta el resultado de la matriz de correlación (tabla 4) para calcular los componentes principales, puedo indicar que para llegar a una varianza explicada acumulada de 95,7% debo tomar los cinco primeros componentes principales. En pos de sustentar esta afirmación, podemos ver que la importancia de la primera componente principal en comparación con los otros componentes es menor, de acuerdo al siguiente gráfico (gráfico 5).
color = c('red', 'blue', 'yellow', 'green', 'pink', 'skyblue', 'violet')
screeplot(acpCorr, main = 'Importancia por componente -matriz covarianza-', cex.main= 1, col = color)
De acuerdo a que la matriz de correlaciones es la más apropiada para hacer el análisis de componentes principales, a continuación interpretaré la primera componente principal utilizando el gráfico de biplot (gráfico 6). En primera medida, teniendo en cuenta que la primera componente representa un índice por el cual se puede ordenar los registros, lo que voy a realizar es un ordenamiento de los registros de países de acuerdo a la primera componente principal calculada con la matriz de correlaciones. Teniendo en cuenta la matriz de rotación podemos ver las cargas que tienen cada variable en la primera componente, de acuerdo a ello se puede notar que la variable ´GDP´ tiene un mayor valor con signo negativo seguida por las variables ´Life.expect´ y ´Pop.growth´. De acuerdo a estos resultados, puedo ordenar los países de menor a mayor de acuerdo al valor de cada componente. Siendo ´Luxembourg´ el país con menor valor de la componente principal y ´Ukraine´ el país con mayor valor de la componente principal. A continuación incorporo la matriz de rotación donde vemos los valores de la primera componente principal y de forma subsiguiente podemos apreciar el ranking de países ordenados por la variable de ´GDP´.
Autovalores de matriz de correlaciones
acpCorr$sdev^2
## [1] 3.2271657 1.1871234 1.0631905 0.7703560 0.4578486 0.1686739 0.1256419
acpCorr$x
## PC1 PC2 PC3 PC4 PC5
## Austria -1.06225512 1.24716550 0.5055267 -0.40644855 0.001228822
## Belgium -0.66882110 0.40854393 0.6749073 -0.27825757 0.268589528
## Bulgaria 2.56285012 -0.26477926 0.6118044 -1.30793996 0.001911148
## Croatia 1.24726141 -1.86716408 0.8169339 0.36520546 -0.371084383
## Czech Republic -0.16419646 0.12956592 0.9839234 -0.25870181 -1.028535293
## Denmark -0.93797874 0.40224665 0.7191183 -0.38428772 0.027385868
## Estonia 2.44290749 0.08423319 0.9697426 -0.29850661 0.545585750
## Finland -0.20676891 0.03310977 -1.1532752 -0.60341795 -0.143153481
## Germany -0.58171902 0.46332976 -0.9743748 -0.82849910 -0.963647587
## Greece 0.98244396 -3.34545943 -0.7247845 -0.77888190 1.049276326
## Hungary 1.37172691 0.03361423 0.6827110 -0.09555884 0.049480101
## Iceland -1.55518187 1.45064396 0.3012207 1.22911582 0.164227736
## Ireland -1.77632183 -0.51240492 0.2961800 1.79680399 0.365952334
## Italy -0.83784930 -0.32189228 -1.0944039 -0.13521301 -0.370448187
## Latvia 2.26450539 0.66317896 1.2780619 0.36724575 -0.242568155
## Lithuania 1.50252828 0.19148317 1.0574296 1.12144435 -0.278033157
## Luxembourg -3.41575532 1.05689283 0.3548078 0.35459201 1.985081446
## Netherlands -1.80689657 0.05619810 0.4455776 -0.75621651 0.130227249
## Norway -2.06855257 0.14136888 -1.0168047 -1.33813110 -0.537189150
## Poland 1.44525321 -0.07166993 -0.7285499 0.20413713 -0.114157018
## Portugal 0.51700619 -1.01612795 0.1253538 0.05504257 0.443666054
## Slovakia 0.76885732 0.16915574 0.9342651 0.91375767 0.094252904
## Slovenia 0.06632628 -0.78329841 1.1504676 -0.23308108 -0.702297604
## Spain -0.16081596 -1.13130635 -2.0914183 2.56665482 -0.712001343
## Sweden -0.86915616 0.39562102 -1.7636578 -0.23675635 -0.601550204
## Switzerland -3.22245361 0.10627652 0.7394971 -0.46752484 -0.799151335
## Ukraine 4.49773395 2.77806408 -1.8589231 -0.01141528 0.459237312
## United Kingdom -0.33467796 -0.49658961 -1.2413365 -0.55516137 1.277714318
## PC6 PC7
## Austria -0.374667083 -0.56517809
## Belgium -0.372297656 -0.47230484
## Bulgaria 0.003762881 -0.02468148
## Croatia 0.427051065 0.29426412
## Czech Republic 0.125504579 0.11294754
## Denmark -0.169934149 0.10468487
## Estonia 0.181398447 -0.37427095
## Finland 0.055683267 -0.12662265
## Germany 0.149685646 -0.52340545
## Greece -0.092452161 -0.16693888
## Hungary -0.031067729 0.28555274
## Iceland -0.841882370 -0.16466532
## Ireland 0.015677691 0.45965746
## Italy -0.652242230 0.03344668
## Latvia 0.272307012 -0.17025634
## Lithuania 0.004110626 -0.34330532
## Luxembourg 1.123551941 -0.20219350
## Netherlands -0.372355326 0.13056354
## Norway 0.778818509 0.13622014
## Poland 0.010113519 0.19430136
## Portugal -0.480555959 0.10983013
## Slovakia -0.080190312 0.14514620
## Slovenia 0.359308712 -0.11549089
## Spain 0.294677274 -0.26046479
## Sweden 0.061438408 -0.37931501
## Switzerland -0.054238528 0.97036746
## Ukraine 0.179944417 0.65984881
## United Kingdom -0.521150489 0.25226245
sort (acpCorr$x[,1])
## Luxembourg Switzerland Norway Netherlands Ireland
## -3.41575532 -3.22245361 -2.06855257 -1.80689657 -1.77632183
## Iceland Austria Denmark Sweden Italy
## -1.55518187 -1.06225512 -0.93797874 -0.86915616 -0.83784930
## Belgium Germany United Kingdom Finland Czech Republic
## -0.66882110 -0.58171902 -0.33467796 -0.20676891 -0.16419646
## Spain Slovenia Portugal Slovakia Greece
## -0.16081596 0.06632628 0.51700619 0.76885732 0.98244396
## Croatia Hungary Poland Lithuania Latvia
## 1.24726141 1.37172691 1.44525321 1.50252828 2.26450539
## Estonia Bulgaria Ukraine
## 2.44290749 2.56285012 4.49773395
Acomodo el score en un data frame
b<-acpCorr$x[,1]
a<-row.names(dfeurope)
rank <- data.frame ("País" = a,"GDP" = b)
rank
## País GDP
## Austria Austria -1.06225512
## Belgium Belgium -0.66882110
## Bulgaria Bulgaria 2.56285012
## Croatia Croatia 1.24726141
## Czech Republic Czech Republic -0.16419646
## Denmark Denmark -0.93797874
## Estonia Estonia 2.44290749
## Finland Finland -0.20676891
## Germany Germany -0.58171902
## Greece Greece 0.98244396
## Hungary Hungary 1.37172691
## Iceland Iceland -1.55518187
## Ireland Ireland -1.77632183
## Italy Italy -0.83784930
## Latvia Latvia 2.26450539
## Lithuania Lithuania 1.50252828
## Luxembourg Luxembourg -3.41575532
## Netherlands Netherlands -1.80689657
## Norway Norway -2.06855257
## Poland Poland 1.44525321
## Portugal Portugal 0.51700619
## Slovakia Slovakia 0.76885732
## Slovenia Slovenia 0.06632628
## Spain Spain -0.16081596
## Sweden Sweden -0.86915616
## Switzerland Switzerland -3.22245361
## Ukraine Ukraine 4.49773395
## United Kingdom United Kingdom -0.33467796
rank2<-arrange(rank,GDP)
rank2
## País GDP
## Luxembourg Luxembourg -3.41575532
## Switzerland Switzerland -3.22245361
## Norway Norway -2.06855257
## Netherlands Netherlands -1.80689657
## Ireland Ireland -1.77632183
## Iceland Iceland -1.55518187
## Austria Austria -1.06225512
## Denmark Denmark -0.93797874
## Sweden Sweden -0.86915616
## Italy Italy -0.83784930
## Belgium Belgium -0.66882110
## Germany Germany -0.58171902
## United Kingdom United Kingdom -0.33467796
## Finland Finland -0.20676891
## Czech Republic Czech Republic -0.16419646
## Spain Spain -0.16081596
## Slovenia Slovenia 0.06632628
## Portugal Portugal 0.51700619
## Slovakia Slovakia 0.76885732
## Greece Greece 0.98244396
## Croatia Croatia 1.24726141
## Hungary Hungary 1.37172691
## Poland Poland 1.44525321
## Lithuania Lithuania 1.50252828
## Latvia Latvia 2.26450539
## Estonia Estonia 2.44290749
## Bulgaria Bulgaria 2.56285012
## Ukraine Ukraine 4.49773395
rank3 = rank[order(rank$GDP),]
rank3
## País GDP
## Luxembourg Luxembourg -3.41575532
## Switzerland Switzerland -3.22245361
## Norway Norway -2.06855257
## Netherlands Netherlands -1.80689657
## Ireland Ireland -1.77632183
## Iceland Iceland -1.55518187
## Austria Austria -1.06225512
## Denmark Denmark -0.93797874
## Sweden Sweden -0.86915616
## Italy Italy -0.83784930
## Belgium Belgium -0.66882110
## Germany Germany -0.58171902
## United Kingdom United Kingdom -0.33467796
## Finland Finland -0.20676891
## Czech Republic Czech Republic -0.16419646
## Spain Spain -0.16081596
## Slovenia Slovenia 0.06632628
## Portugal Portugal 0.51700619
## Slovakia Slovakia 0.76885732
## Greece Greece 0.98244396
## Croatia Croatia 1.24726141
## Hungary Hungary 1.37172691
## Poland Poland 1.44525321
## Lithuania Lithuania 1.50252828
## Latvia Latvia 2.26450539
## Estonia Estonia 2.44290749
## Bulgaria Bulgaria 2.56285012
## Ukraine Ukraine 4.49773395
Teniendo en cuenta lo descripto anteriormente, a continuación analizaré la primera componente principal utilizando el gráfico de biplot. Previo a esto, quisiera remarcar ciertos conceptos aprendidos para explicar esta representación gráfica. • La longitud del vector representa la variabilidad de la variable correspondiente. • La proyección sobre los ejes, corresponde a la carga de la variable en la componente. • La fila se representan como puntos y las variables como vectores. • El ángulo entre los vectores corresponde a la correlación entre las variables: o cuando el ángulo es agudo indica correlación positiva. o cuando el ángulo es obtuso indica correlación negativa. o cuando el ángulo es recto indica que no están correlacionadas las variables.
library(ggfortify)
library(ggplot2)
biplot(acpCorr)
autoplot(acpCorr,label = TRUE, label.size = 2.5, shape = FALSE, loadings = TRUE, loadings.colour = 'green',loadings.label = TRUE, loadings.label.size = 3.5)
La representación biplot, es una representación gráfica de datos multivariantes en dos o tres dimensiones. Las representaciones de las variables son normalmente vectores y los registros, en este caso los países, se representan por puntos. El prefijo ’bi’ se refiere a la superposición en la misma representación de los registros y variables.
En el gráfico 6 (biplot), se encuentran representados los 28 países en donde los vectores representan las variables y la longitud de los mismos la variabilidad de la variable. En el eje ´x´ se encuentra la primera componente (PC1) cuya proporción de variación es de 46% y en el eje ´y´ se encuentra la segunda componente (PC2) donde su proporción de variación es de 17%.
Ahora bien podemos notar en el gráfico que, las variables ´Inflation´, ´Unemployment´, ´Military´, ´Life.expect´, ´Pop.growth´, ´GDP´ debido a la longitud de los vectores, tienen una gran variabilidad mientras que la variable ´Area´ tiene una menor variabilidad de acuerdo a su longitud.
Por otro lado, puedo indicar que considerando la PC1, las variables ´Inflation´, ´Unemployment´, ´Military´ y ´Area´ poseen cargas positivas mientras que las tres variables restantes tienen cargas negativas, a esta conclusión arribo proyectando los vectores sobre el eje x (PC1) y si los valores son mayores a cero tienen carga positiva, caso contrario carga negativa.
De acuerdo a ello, podemos notar que los países que tienen mayor valor en PC1 (ver gráfico 6 y tabla 5) como ser ´Ukraine´, ´Bulgaria´, ´Estonia´ y ´Latvia´ tienen variables con carga positiva influenciado en este caso mayormente por la variable ´Inflation´, en el otro extremo podemos notar que los países que tienen menor valor en PC1 (ver gráfico 6 y tabla 5) como ser ´Luxembourg´, ´Switzerland´, ´Norway´ tienen variables con carga negativa influenciada en este caso mayoritariamente por la variable ´GDP´.
Teniendo en cuenta este análisis podemos indicar que los países que tienen mayores valores en la PC1 son países con mayor carga positiva de las variables ´Inflation´, ´Unemployment´, ´Military´ y ´Area´; mientras que los países que tienen menores valores en la PC1 son países que tienen mayor carga negativa de las variables ´Life.expect´, ´Pop.growth´, ´GDP´. De acuerdo a ello, es como se produce el ranking de los paises que esta en la tabla 5. Si vemos el gráfico de biplot podemos notar que se pueden realizar grupos de países que tienen similares características de acuerdo a los valores de cada variable, es por ello que se puede indicar que los países ´Lithuania´, ´Polland´ y ´Hungary´ tienen características similares, también puedo afirmar que tienen características similares los países como ´Netherlands´, ´Norway´ por un lado y ´Czek Republic´, ´Finland´, entre otros grupos que se pueden indicar.
Además, como mencioné anteriormente, podemos indicar si existe una correlación positiva o negativa entre las variables de acuerdo a su ángulo. Para realizar este análisis, lo que hice fue un resumen que demuestra como están las variables correlacionadas entre si de acuerdo al angulo analizado.