image

Introducción

En este trabajo se analizan las bases de datos del artículo A climatic classification of the world’s wine regions y del repositorio de UCI Wine Quality para probar la reproducibilidad del experimento realizado.

Para esto se realiza un análisis exploratorio de los datos donde se incluyen estadísticas descriptivas como tablas, diagramas de caja, diagramas de dispersión, histogramas, mapas de calor y demás recursos para exponer los datos con el máximo detalle. Además, se realiza un análisis de componentes principales para determinar las variables que más nos ayudan a representar los datos de forma precisa.

Librerías

La paquetería principal que se utilizará es una metapaquetería, es decir es un conjunto de distintas librerías agrupadas en una sola. Esta metapaquetería es TidyVerse.

Dentro de esta metapaquetería, esta hecha por paqueterías diseñadas para el análisis de datos, sea limpieza de datos, crear mejores gráficos, o manejar mejor la información.

Análisis de las bases

Primera base

Variables

La base de datos a utilizar se compone de 16 variables climáticas para zonas que representan 813 regiones que cubren el 99% del área vinicultora. A continuación se muestran las variables con su descripción, los hemisferios y las épocas del año cuando se manifiestan.

Variable Unidades Description Northern Hemisphere Southern Hemisphere
AnnP (mm) Annual precipitation Year Year
GSP (mm) Growing season precipitation April to October October to April
HMP (mm) Harvest month precipitation September March
AnnT (°C) Annual average temperature Year Year
GST (°C) Growing season average temperature April to October October to April
MJT (°C) Mean January/July temperature July January
RPT (°C) Ripening period average temperature August to September February to March
GDD (°C) Growing degree days April to October October to April
HI (°C) Huglin Index April to September October to March
GSDTR (°C) Growing season diurnal temperature range April to October October to April
RPDTR (°C) Ripening period diurnal temperature range August to September February to March
CNI (°C) Mean minimum March/September temperature September March
VPD_GS (kPa) Growing season vapour pressure deficit April to October October to April
VPD_SU (kPa) Summer vapour pressure deficit June to August December to February
SRAD_GS (\(W/m^{2}\)) Growing season average day/night downward surface shorwave radiation April to October October to April
SRAD_SU (\(W/m^{2}\)) Summer average day/night downward surface shortwave radiation June to August December to February

La base de datos

Adicionalmente hay variables que contienen información sobre la localización de las regiones, como su nombre, el país donde se encuentra la región, su latitud y longitud. Igualmente, hay dos más variables que son el área en metros cuadrados de la región donde se cultiva la vid y el grupo, que clasifica las regiones de acuerdo a sus características climáticas. Sim embargo, estas variables no se tomarán en cuenta más que para la descripción de los datos, es decir, no se utilizarán para el análisis de componentes principales.

En el marco del análisis, se muestran las primeras y últimas filas de la base de datos.

Lat Lon Location Country Region_or_COUNTRY Area AnnP GSP RipeP AnnT GST MJT RPT GDD HI GSDTR RPDTR CNI VPD_GS VPD_SU SRAD_GS SRAD_SU Group Elevation
8.98 38.76 Addis Ababa ETHIOPIA ETHIOPIA 169 1099 973 145 17.8 17.9 17.0 17.0 1698 2057 13.0 11.1 11.3 5.58 1.78 1488 566 2 2296
37.31 13.59 Agrigento ITALY Agrigento 16781 464 181 36 18.7 22.5 26.5 25.6 2676 2695 7.1 6.6 21.1 6.20 3.36 1745 877 3 242
21.89 -102.29 Aguascalientes MEXICO Aguascalientes 850 494 452 89 18.6 20.9 21.3 20.7 2338 2832 16.7 14.5 13.3 9.72 3.81 1644 724 1 1879
50.54 7.12 Ahrweiler GERMANY Ahr 522 751 443 60 10.7 15.0 19.3 16.9 1082 1609 9.8 9.8 10.3 4.00 2.15 1186 608 2 108
-28.55 -66.82 Aimogasta ARGENTINA Arauco 5 300 273 45 19.9 24.3 27.5 24.9 3032 3462 15.6 14.7 16.4 11.54 5.63 1646 725 1 845
43.53 5.45 Aix-en-Provence FRANCE Bouches-du-Rhone 11663 626 361 89 15.4 20.3 25.4 23.0 2208 2597 10.6 10.9 15.8 7.14 4.15 1624 841 3 197
Lat Lon Location Country Region_or_COUNTRY Area AnnP GSP RipeP AnnT GST MJT RPT GDD HI GSDTR RPDTR CNI VPD_GS VPD_SU SRAD_GS SRAD_SU Group Elevation
808 41.65 -0.89 Zaragoza SPAIN Zaragoza 35294 363 230 33 16.5 21.3 26.5 24.2 2428 2884 12.6 12.7 16.1 9.60 5.54 1666 860 1 215
809 43.19 21.72 Zitoradja SERBIA Toplica 761 664 406 59 12.5 18.5 23.6 20.7 1828 2431 12.9 14.0 11.3 6.58 3.79 1476 770 2 214
810 39.75 20.65 Zitsa GREECE Ipeiros 153 1126 428 87 14.8 19.9 25.0 22.7 2126 2566 11.9 12.7 14.8 7.79 4.70 1621 836 3 684
811 48.86 16.05 Znojmo CZECHIA Jihovýchod 12800 550 410 50 10.6 16.4 21.6 18.5 1380 2049 11.9 12.0 10.0 5.53 3.15 1287 670 2 285
812 47.17 8.52 Zug SWITZERLAND Zug 2 1269 845 100 10.5 15.7 20.5 17.7 1232 1743 9.5 9.2 11.1 4.24 2.43 1305 677 2 428
813 47.48 8.54 Zürich SWITZERLAND Zürich 607 1057 674 79 10.5 15.7 20.3 17.6 1218 1751 9.8 9.8 10.8 4.19 2.38 1289 673 2 404

Así, se observan algunos ejemplos como “Addis Ababa” en Etiopía, que tiene una temperatura media anual de 17.8°C, y “Zürich” en Suiza, con una precipitación anual de 1057 mm.

str(wine.data)
## 'data.frame':    813 obs. of  24 variables:
##  $ Lat              : num  8.98 37.31 21.89 50.54 -28.55 ...
##  $ Lon              : num  38.76 13.59 -102.29 7.12 -66.82 ...
##  $ Location         : chr  "Addis Ababa" "Agrigento" "Aguascalientes" "Ahrweiler" ...
##  $ Country          : chr  "ETHIOPIA" "ITALY" "MEXICO" "GERMANY" ...
##  $ Region_or_COUNTRY: chr  "ETHIOPIA" "Agrigento" "Aguascalientes" "Ahr" ...
##  $ Area             : int  169 16781 850 522 5 11663 968 0 96745 12328 ...
##  $ AnnP             : int  1099 464 494 751 300 626 664 1840 373 741 ...
##  $ GSP              : int  973 181 452 443 273 361 292 1139 219 456 ...
##  $ RipeP            : int  145 36 89 60 45 89 57 142 39 72 ...
##  $ AnnT             : num  17.8 18.7 18.6 10.7 19.9 15.4 16.3 21.7 15.5 13.8 ...
##  $ GST              : num  17.9 22.5 20.9 15 24.3 20.3 20.3 24.7 20.7 19.7 ...
##  $ MJT              : num  17 26.5 21.3 19.3 27.5 25.4 24.7 26.9 27 24.9 ...
##  $ RPT              : num  17 25.6 20.7 16.9 24.9 23 23.1 25.7 24.1 22.6 ...
##  $ GDD              : int  1698 2676 2338 1082 3032 2208 2210 3123 2302 2080 ...
##  $ HI               : int  2057 2695 2832 1609 3462 2597 2396 3331 2801 2501 ...
##  $ GSDTR            : num  13 7.1 16.7 9.8 15.6 10.6 7.7 12.5 13.5 9.6 ...
##  $ RPDTR            : num  11.1 6.6 14.5 9.8 14.7 10.9 8 12.4 14.1 9.7 ...
##  $ CNI              : num  11.3 21.1 13.3 10.3 16.4 15.8 17.4 18.7 15 15.8 ...
##  $ VPD_GS           : num  5.58 6.2 9.72 4 11.54 ...
##  $ VPD_SU           : num  1.78 3.36 3.81 2.15 5.63 4.15 2.88 3.48 5.77 3.24 ...
##  $ SRAD_GS          : int  1488 1745 1644 1186 1646 1624 1660 1524 1730 1481 ...
##  $ SRAD_SU          : int  566 877 724 608 725 841 859 724 901 771 ...
##  $ Group            : int  2 3 1 2 1 3 3 3 1 3 ...
##  $ Elevation        : int  2296 242 1879 108 845 197 16 126 683 96 ...
names(wine.data)
##  [1] "Lat"               "Lon"               "Location"         
##  [4] "Country"           "Region_or_COUNTRY" "Area"             
##  [7] "AnnP"              "GSP"               "RipeP"            
## [10] "AnnT"              "GST"               "MJT"              
## [13] "RPT"               "GDD"               "HI"               
## [16] "GSDTR"             "RPDTR"             "CNI"              
## [19] "VPD_GS"            "VPD_SU"            "SRAD_GS"          
## [22] "SRAD_SU"           "Group"             "Elevation"
any(is.na(wine.data))
## [1] FALSE

La función str() revela la estructura del dataset, indica que contiene 813 observaciones y 24 variables, mientras que names() lista los nombres de cada columna para facilitar la identificación de las variables. Este conjunto de datos es ideal para análisis multivariado, como el análisis de componentes principales (PCA) o agrupamientos, que permiten explorar las relaciones entre las características climáticas y las regiones vinícolas. Por otro lado, la función any() e is.na() permite asegurarse que no existen entradas vacías en la base de datos que debamos tratar de algún modo.

Estadística descriptiva

AnnP GSP RipeP AnnT GST MJT RPT GDD HI GSDTR RPDTR CNI VPD_GS VPD_SU SRAD_GS SRAD_SU
Min 0.0000 0.0000 0.00000 3.900000 9.900000 14.200000 12.000000 314.0000 582.0000 5.80000 5.000000 4.000000 2.650000 1.320000 1028.0000 510.00000
Q1.25% 510.0000 222.0000 32.00000 12.200000 17.200000 21.500000 19.400000 1532.0000 2079.0000 10.60000 10.700000 11.100000 5.400000 2.900000 1420.0000 723.00000
Median 685.0000 396.0000 56.00000 14.600000 19.300000 23.600000 21.300000 1973.0000 2447.0000 12.10000 12.300000 13.300000 6.490000 3.590000 1571.0000 792.00000
Mean 730.1119 418.9471 61.61624 14.737638 19.362485 23.619803 21.494342 1991.6802 2453.4932 12.39828 12.649693 13.587331 7.155486 3.864932 1575.3616 790.23616
SD 361.5505 256.6828 42.54057 3.350577 2.839462 2.825476 2.857475 590.7176 515.8391 2.72018 2.953714 3.306673 2.465005 1.321916 187.1893 86.13961
Q3.75% 931.0000 551.0000 85.00000 17.200000 21.300000 25.700000 23.500000 2383.0000 2772.0000 14.40000 14.500000 15.800000 8.530000 4.500000 1724.0000 856.00000
Max 2996.0000 1974.0000 338.00000 29.800000 30.800000 33.600000 32.500000 4444.0000 4380.0000 20.80000 23.400000 26.200000 16.890000 8.980000 2072.0000 996.00000

El resumen estadístico de las variables muestra, por ejemplo, que la precipitación anual (AnnP) varía de 0 mm a un máximo de 2996 mm, con una mediana de 685 mm y una media de 730.1 mm. La temperatura media anual (AnnT) oscila entre 3.9°C y 29.8°C, con una mediana de 14.6°C. La radiación solar durante la temporada de crecimiento (SRAD_GS) tiene un rango de 1028 a 2072, con una mediana de 1571. Estos valores dan una idea del amplio rango de condiciones climáticas presentes en las regiones vinícolas analizadas.

Gráficos de dispersión
Plot
plot(df)

Discusión

Al ejecutar plot() obtenemos una matriz de gráficos de dispersión que explora las relaciones entre las variables climáticas de las 813 regiones vinícolas incluidas en el dataset. Cada celda en la matriz muestra una relación bivariada entre dos variables, permitiendo identificar posibles correlaciones o patrones de asociación entre ellas. Por ejemplo, al observar la matriz, se pueden identificar relaciones lineales claras entre algunas variables, como la temperatura media anual (AnnT) y la temperatura durante la temporada de crecimiento (GST), lo que sugiere una fuerte correlación entre ambas. Otras relaciones, como las que involucran la precipitación anual (AnnP) y la radiación solar (SRAD_GS), parecen mostrar patrones más dispersos, indicando que la correlación entre estas variables podría ser débil o no lineal.

Correlación
Mapa de calor

Discusión

Aquí se muestra una matriz de calor que ilustra las correlaciones entre distintas variables climáticas y vitivinícolas presentes en el conjunto de datos “wine.data”. Cada celda de la matriz representa el grado de correlación entre dos variables específicas, donde los tonos azules indican una alta correlación positiva, los tonos rojos denotan una correlación negativa, y las áreas blancas representan correlaciones cercanas a cero.

Al examinar esta matriz, se identifican varias relaciones destacables, por ejemplo, se observa una correlación positiva fuerte entre la temperatura media anual (AnnT) y la temperatura durante la temporada de crecimiento (GST), lo cual sugiere una tendencia común en las variaciones de estas dos variables a lo largo de las regiones vinícolas analizadas. Asimismo, la precipitación anual (AnnP) muestra una correlación negativa con la radiación solar durante la temporada de crecimiento (SRAD_GS), lo que indica que las regiones con mayores niveles de precipitación suelen experimentar una radiación solar más baja. Además, variables como los grados días de crecimiento (GDD) y el índice de calor (HI) presentan una alta correlación entre sí, sugiriendo que ambas capturan de manera efectiva condiciones climáticas similares. No obstante, también se identifican relaciones más débiles, como la existente entre la precipitación anual (AnnP) y la temperatura media anual (AnnT), lo que implica que hay una relación lineal débil entre estas dos variables.

Histogramas
Histogramas

Discusión

Ahora se muestran los histogramas de cada una de las variables con el objetivo de visualizar su distribución. En el análisis de los histogramas podemos ver diferentes indicadores de distribución, por ejemplo, el histograma de la precipitación anual (AnnP) revela una distribución asimétrica con una cola larga hacia la derecha, indicando que la mayoría de las regiones tienen precipitaciones relativamente bajas, aunque algunas presentan valores significativamente altos, probablemente debido a condiciones más húmedas. En contraste, el histograma de los Grados Sol Anuales (GSP) muestra una distribución más simétrica y concentrada, con un pico alrededor de los 1500 grados sol, sugiriendo niveles similares de radiación solar durante la temporada de crecimiento en la mayoría de las regiones vinícolas, lo que puede influir en la maduración de las uvas.

El histograma de la radiación solar durante la temporada de maduración (RipeP) presenta una distribución sesgada hacia la izquierda, con la mayoría de las regiones ubicadas en el rango de 150 a 250 unidades, sugiriendo que este factor varía considerablemente entre las regiones. Por otro lado, la temperatura media anual (AnnT) muestra una distribución relativamente simétrica con un pico en torno a los 15°C, indicando temperaturas similares en la mayoría de las regiones, lo que es crucial para el cultivo de la vid. El índice de nubosidad (CNI) presenta una distribución bimodal con dos picos principales, sugiriendo que las regiones se agrupan en dos categorías según sus niveles de nubosidad, lo que puede afectar la radiación solar recibida y, por ende, las características del vino.

El histograma de la radiación solar durante la temporada de crecimiento (RPDTR) también muestra una distribución asimétrica con una cola a la derecha, indicando que la mayoría de las regiones tienen niveles relativamente bajos de radiación solar durante esta temporada. El histograma de GSDTR, que mide la radiación solar durante la temporada de crecimiento, muestra una distribución similar a la de RPDTR, con asimetría hacia la derecha, lo que refleja variabilidad en los patrones de radiación solar entre regiones. El Índice de Calor (HI) presenta una distribución bimodal, con dos picos principales, indicando que las regiones se agrupan en función de sus valores de HI, lo que puede influir en la idoneidad climática para el cultivo de la vid.

El histograma del Déficit de Presión de Vapor durante la temporada de maduración (VPD_SU) muestra una distribución asimétrica con una larga cola hacia la derecha, sugiriendo que la mayoría de las regiones tienen valores bajos de VPD_SU, aunque algunas presentan valores altos. En cambio, el Déficit de Presión de Vapor durante la temporada de crecimiento (VPD_GS) presenta una distribución más uniforme, sin picos pronunciados, lo que indica una distribución más homogénea de los valores entre regiones. La radiación solar durante la temporada de crecimiento (SRAD_GS) muestra una distribución bimodal, con dos picos principales, indicando que las regiones se agrupan en dos categorías en cuanto a sus niveles de radiación solar durante esta temporada. Finalmente, el histograma de la radiación solar durante la temporada de maduración (SRAD_SU) refleja una distribución más uniforme, sin picos prominentes, lo que sugiere que los valores están distribuidos de manera más homogénea entre las regiones vinícolas.

Boxplots
Boxplots

Discusión

El análisis de los boxplots nos proporciona información sobre la distribución y variabilidad de cada factor en las regiones vinícolas.Como ejemplos relevantes podemos remarcar el boxplot de la precipitación anual (AnnP), que muestra una distribución asimétrica con una larga cola hacia la derecha. Esto indica que, aunque la mayoría de las regiones presentan niveles de precipitación relativamente bajos, hay algunas pocas regiones con valores excepcionalmente altos, lo que sugiere una notable variabilidad en las condiciones de humedad entre las diferentes áreas vitivinícolas. Por otro lado, el boxplot de los Grados Sol Anuales (GSP) revela una distribución más simétrica y concentrada, con la mediana alrededor de las 1500 unidades. Este patrón sugiere que la mayoría de las regiones vinícolas tienen niveles de radiación solar durante la temporada de crecimiento bastante uniformes, lo que puede ser crucial para la maduración de las uvas y la calidad del vino (en concordancia con lo mostrado en el histograma).

En el caso de la radiación solar durante la temporada de maduración de las uvas (RipeP), el boxplot muestra una mediana en torno a las 200 unidades, pero con algunos valores atípicos que alcanzan casi las 350 unidades. Esto indica una variabilidad considerable en la radiación solar recibida durante la maduración entre diferentes regiones. La temperatura media anual (AnnT) presenta un boxplot con una distribución más simétrica y una mediana alrededor de los 15°C, lo que sugiere que la mayoría de las regiones tienen temperaturas medias anuales similares, un factor importante para el cultivo de la vid. Finalmente, el boxplot de la Temperatura Media durante la Temporada de Crecimiento (GST) muestra una distribución simétrica con una mediana cercana a los 20°C. Esto indica que la mayoría de las regiones vinícolas tienen valores de GST relativamente uniformes, lo cual es relevante para el desarrollo y maduración de la vid.

Análisis de componentes principales
Utilizando la matriz de correlación

Si realizamos nuestro Análisis de Componentes Principales utilizando el parámetro de escala “True” estamos escalando con el fin de utilizar la matriz de correlación. Ejecutando el código llegamos al siguiente resultado:

pca_res <- prcomp(df, scale. = T)
summary(pca_res)
## Importance of components:
##                           PC1    PC2     PC3    PC4     PC5     PC6     PC7
## Standard deviation     2.9185 2.0684 1.21551 0.9209 0.61916 0.44462 0.37553
## Proportion of Variance 0.5324 0.2674 0.09234 0.0530 0.02396 0.01236 0.00881
## Cumulative Proportion  0.5324 0.7997 0.89208 0.9451 0.96904 0.98140 0.99021
##                            PC8     PC9    PC10    PC11    PC12    PC13    PC14
## Standard deviation     0.22580 0.21464 0.16086 0.12039 0.09214 0.07694 0.04647
## Proportion of Variance 0.00319 0.00288 0.00162 0.00091 0.00053 0.00037 0.00013
## Cumulative Proportion  0.99340 0.99628 0.99789 0.99880 0.99933 0.99970 0.99983
##                           PC15    PC16
## Standard deviation     0.04055 0.03167
## Proportion of Variance 0.00010 0.00006
## Cumulative Proportion  0.99994 1.00000

El análisis de componentes principales (PCA) aplicado al conjunto de datos revela información clave sobre la varianza explicada por cada componente principal. Según el resumen del PCA, el primer componente principal (PC1) explica el 53.24% de la varianza total, mientras que el segundo componente principal (PC2) añade otro 26.74%, sumando así un total del 79.97% de la varianza explicada por los dos primeros componentes. Los siguientes componentes aportan una menor proporción de varianza, con el tercer componente (PC3) explicando un 9.23%, el cuarto (PC4) un 5.30%, y así sucesivamente.

Los primeros cuatro componentes juntos explican el 94.51% de la varianza total, lo que indica que la mayoría de la información del conjunto de datos puede ser capturada por estos componentes principales. Los componentes adicionales (PC5 a PC16) contribuyen con proporciones de varianza cada vez menores, y su acumulado alcanza el 100% con una suma muy pequeña en las últimas componentes.

Este scree plot, utilizado como gráfico de sedimentación, nos indica algo muy similar a lo analizado en el paso anterior, indicando que un 89% de la varianza total es representada en los primeros 3 componentes principales.

eigenvalues <- pca_res$sdev^2
eigenvalues
##  [1] 8.517695869 4.278144022 1.477465440 0.848002091 0.383352921 0.197682706
##  [7] 0.141019180 0.050984813 0.046068589 0.025874664 0.014493073 0.008490580
## [13] 0.005919355 0.002159513 0.001644461 0.001002722
PC1 PC2 PC3 PC4
AnnP -0.1586973 0.2851803 -0.3549222 0.4062253
GSP -0.1603012 0.3318002 -0.4215084 0.1354349
RipeP -0.1214341 0.3733331 -0.3688080 0.1021955
AnnT 0.2777739 0.1884970 0.0844601 0.2314346
GST 0.3052051 0.2096747 -0.0086191 -0.0381390
MJT 0.2873496 0.1869746 -0.0793244 -0.2666097
RPT 0.2990536 0.2115383 0.0289362 -0.0747997
GDD 0.3024856 0.2171626 -0.0071893 -0.0609062
HI 0.3159828 0.1253661 -0.1413288 -0.1738126
GSDTR 0.1556360 -0.3333357 -0.4322789 0.0155989
RPDTR 0.1379532 -0.3544601 -0.4204508 0.0346908
CNI 0.2162822 0.3409840 0.2376890 0.0469260
VPD_GS 0.3058367 -0.1355224 -0.1921000 -0.1165434
VPD_SU 0.2923277 -0.1593104 -0.1969827 -0.1510292
SRAD_GS 0.2703462 -0.1341578 0.1029681 0.5444752
SRAD_SU 0.2420912 -0.1798754 0.1397550 0.5514413

Con este código podemos observar que el primer y segundo componente (PC1 y PC2) tienen valores propios de 8.52 y 4.28 respectivamente, lo que indica que entre ambos explican una gran parte de la variabilidad en los datos. A medida que avanzamos hacia los componentes superiores, los valores propios disminuyen, lo que indica que estos explican cada vez menos variabilidad.

Por otro lado, los vectores propios muestran la relación entre las variables originales y cada componente principal. En el primer componente (PC1), las variables climáticas como la temperatura media durante la temporada de crecimiento (GST), el índice de calor (HI) y la radiación solar durante la temporada de maduración (SRAD_GS y SRAD_SU) tienen las cargas más altas, lo que sugiere que estas variables contribuyen significativamente a la variabilidad explicada por este componente. En el segundo componente (PC2), las variables de precipitación anual (AnnP), grados sol durante la temporada de crecimiento (GSP) y radiación solar durante la temporada de maduración (RipeP) muestran una mayor influencia.

num_components <- sum(eigenvalues > 1)
num_components
## [1] 3

Estas líneas de código aplican el criterio de Kaiser para determinar el número adecuado de componentes principales a retener en un análisis de componentes principales (PCA). Según la teoría de Kaiser, solo se deben conservar aquellos componentes cuyos valores propios (eigenvalues) sean mayores a 1. Esto se basa en la premisa de que un componente con un valor propio superior a 1 explica más varianza que una variable original estandarizada, lo que lo hace útil para la interpretación y reducción dimensional.

Al sumar los eigenvalores que cumplen con esta condición, el código identifica cuántos componentes retienen una cantidad significativa de información de los datos originales. Esta técnica es común en el PCA para simplificar el modelo sin perder información relevante, facilitando el análisis de datos de alta dimensionalidad. En este caso, se obtendría el número de componentes principales a utilizar basado en los eigenvalores calculados previamente.

En esta gráfica se observa la relación entre la temperatura media de la temporada de crecimiento (GST) y la precipitación estacional acumulada (GSP). Los puntos rojos, correspondientes al Grupo 1, se concentran en los valores más bajos de GSP y GST, lo que indica que este grupo está asociado a regiones con menores niveles de precipitación y temperaturas moderadas. El Grupo 2 (verde) tiene una tendencia clara hacia valores más bajos de GST, aunque presenta una distribución más amplia en GSP. El último grupo (Grupo 3 - azul) se extiende en el eje de GSP con mayor dispersión, sugiriendo que incluye regiones con altos niveles de precipitación, aunque con temperaturas ligeramente superiores al Grupo 2.

En esta gráfica se muestra la relación entre la amplitud térmica durante la temporada de crecimiento (GSDTR) y la precipitación (GSP). El Grupo 1, representado por los puntos rojos, se concentra nuevamente en los valores más bajos de GSP y GSDTR, lo que refleja una menor variabilidad térmica en zonas con menor precipitación. El Grupo 2, marcado en verde, cubre una gama más amplia de GSDTR, sugiriendo que está asociado a regiones con mayor variabilidad térmica en regiones con mayor precipitación. El Grupo 3 (azul) muestra una dispersión considerable en GSP, pero en general tiene una menor variabilidad térmica en comparación con el Grupo 2.

En este caso estamos examinando la relación entre el déficit de presión de vapor durante la temporada de crecimiento (VPD_GS) y la precipitación acumulada. El Grupo 1, identificado con los puntos rojos, se asocia a valores altos de VPD_GS y bajos de GSP, lo que sugiere que se encuentran en regiones más secas con altos niveles de evaporación. El Grupo 2 (verde) presenta menores valores de VPD_GS con una mayor variabilidad en GSP, lo que indica regiones con condiciones más húmedas. El Grupo 3 (azul) tiene los valores más bajos de VPD_GS y muestra una amplia dispersión en GSP, lo que sugiere que corresponde a regiones con condiciones climáticas más húmedas y menos evaporación.

Esta gráfica muestra la interacción entre la radiación solar acumulada durante la temporada de crecimiento (SRAD_GS) y la precipitación estacional acumulada (GSP). Podemos explicar que los valores más altos de SRAD_GS en el Grupo 1 sugieren que estas regiones experimentan mayor exposición al sol durante la temporada de crecimiento. Sin embargo, a medida que aumenta la precipitación (GSP), la radiación solar tiende a disminuir, lo que podría indicar que las regiones más lluviosas no reciben tanta luz solar. El Grupo 3, con mayor GSP y valores medios de SRAD_GS, podría representar regiones con un clima más templado y lluvioso.

En esta gráfica podemos notar que las regiones representadas en el Grupo 3, que presentan altos valores de GSP y están a bajas elevaciones, podrían estar ubicadas en valles o zonas costeras. Por otro lado, las regiones del Grupo 1, con menores precipitaciones y ubicadas en elevaciones más altas, podrían estar en zonas montañosas.

En esta gráfica podemos ver que las regiones del Grupo 2, que consistentemente muestran temperaturas más bajas, pueden estar en altitudes más altas. En cambio, las regiones en el Grupo 1 y Grupo 3 cuentan con temperaturas más altas en elevaciones más bajas.

Recordando que VPD_GS se refiere al déficit de presión de vapor durante la temporada de crecimiento, en esta figura observamos cómo el Grupo 1 tiene valores más altos de VPD_GS, corresponde a regiones donde la atmósfera ejerce una mayor demanda evaporativa. Estas regiones podrían estar en climas áridos o semiáridos, donde la este factor se presenta con más intensidad. Las regiones en el Grupo 2, con valores más bajos de VPD_GS, probablemente experimenten menos estrés hídrico, lo que sugiere climas más frescos o húmedos.

En esta gráfica no se observa una fuerte correlación entre la radiación solar durante la temporada de crecimiento (SRAD_GS) y la elevación. Esto sugiere que la radiación solar no está tan influenciada por la altitud en estas regiones, lo que podría indicar la influencia de otros factores climáticos, como la latitud o la nubosidad. El Grupo 1, que muestra valores más altos de radiación en elevaciones más bajas, podría representar regiones más cercanas al ecuador o con cielos despejados durante la temporada de crecimiento. Las regiones del Grupo 2, que presentan una mayor dispersión en ambos ejes, podrían estar en zonas con microclimas complejos, donde las condiciones varían significativamente incluso dentro de la misma región.

Con estos dos mapas podemos notar que existe una amplia concentración de áreas vinícolas en Europa, región que concuerda con los análisis de temperatura y clima propuestos en las gráficas de dispersión anteriores para el Grupo 2. Este grupo, caracterizado por temperaturas más bajas y mayor variabilidad en la precipitación, coincide con las condiciones encontradas en muchas regiones vinícolas europeas, donde el clima moderado y la alta disponibilidad de agua son ideales para la viticultura.

Además, notamos otras zonas de alta recurrencia para este tipo de actividad en Sudamérica, principalmente en los Grupos 1 y 2. El Grupo 1, asociado con menores precipitaciones y temperaturas moderadas, refleja las regiones vinícolas de Argentina y Chile, que se benefician de un clima seco y cálido. El Grupo 2, con una gama más amplia de temperaturas y precipitación, representa áreas en Brasil y Uruguay, donde las condiciones climáticas son más variables, pero aún adecuadas para el cultivo de la vid.

En Norteamérica, la concentración vinícola se observa principalmente en el Grupo 1 y 2, coincidiendo con regiones como California, que tiene un clima mediterráneo con temperaturas moderadas y suficiente precipitación estacional. Por último, en Oceanía, las áreas vinícolas se distribuyen de manera más equilibrada entre los tres grupos, lo que sugiere una variabilidad climática que permite la producción de vino en una gama más amplia de condiciones.

Este análisis confirma que la ubicación de las regiones vinícolas en relación con las variables climáticas examinadas es consistente con las características de cada grupo, ayudando a entender mejor los factores que contribuyen a la aptitud de estas áreas para la viticultura.

Utilizando la matriz de covarianza

Si realizamos nuestro Análisis de Componentes Principales utilizando el parámetro de escala “False” estamos escalando con el fin de utilizar la matriz de correlación. Ejecutando el código llegamos al siguiente resultado:

pca_res <- prcomp(df, scale. = FALSE)
summary(pca_res)
## Importance of components:
##                             PC1      PC2       PC3       PC4      PC5      PC6
## Standard deviation     791.8546 426.6968 162.41047 105.12197 93.38385 24.36250
## Proportion of Variance   0.7325   0.2127   0.03082   0.01291  0.01019  0.00069
## Cumulative Proportion    0.7325   0.9452   0.97605   0.98896  0.99915  0.99984
##                             PC7  PC8   PC9   PC10   PC11   PC12   PC13   PC14
## Standard deviation     11.45843 1.39 1.253 0.8185 0.6872 0.4243 0.2779 0.1837
## Proportion of Variance  0.00015 0.00 0.000 0.0000 0.0000 0.0000 0.0000 0.0000
## Cumulative Proportion   0.99999 1.00 1.000 1.0000 1.0000 1.0000 1.0000 1.0000
##                          PC15    PC16
## Standard deviation     0.1252 0.08954
## Proportion of Variance 0.0000 0.00000
## Cumulative Proportion  1.0000 1.00000

El análisis de componentes principales (PCA) aplicado al conjunto de datos revela información clave sobre la varianza explicada por cada componente principal. Según el resumen del PCA, el primer componente principal (PC1) explica el 73.25% de la varianza total, mientras que el segundo componente principal (PC2) añade otro 21.27%, sumando así un total del 94.52% de la varianza explicada. Esto supone un cambio muy grande a comparación del uso de la matriz de correlación, pues con sólo dos componentes superamos el 90% de variabilidad explicada.

Este scree plot, utilizado como gráfico de sedimentación, nos indica algo muy similar a lo analizado en el paso anterior, indicando que un 94% de la varianza total es representada en los primeros 2 componentes principales.

##  [1] 6.270337e+05 1.820701e+05 2.637716e+04 1.105063e+04 8.720544e+03
##  [6] 5.935312e+02 1.312956e+02 1.932154e+00 1.569328e+00 6.699584e-01
## [11] 4.722406e-01 1.800084e-01 7.724934e-02 3.374207e-02 1.567955e-02
## [16] 8.017894e-03
PC1 PC2 PC3 PC4
AnnP -0.1426274 0.7833953 -0.4141587 0.1577589
GSP -0.0776751 0.5488804 0.2972654 -0.0226167
RipeP -0.0055855 0.0884884 0.0587106 -0.0388670
AnnT 0.0036714 0.0007926 -0.0046573 -0.0089249
GST 0.0034965 0.0008663 -0.0005233 -0.0034298
MJT 0.0032571 0.0008118 0.0019533 0.0017429
RPT 0.0033918 0.0009160 -0.0010756 -0.0027411
GDD 0.7330086 0.2019309 -0.0350054 -0.6388182
HI 0.6422164 0.0542202 0.1844008 0.7393200
GSDTR 0.0008831 -0.0025968 -0.0026579 0.0189111
RPDTR 0.0006970 -0.0028524 -0.0037278 0.0219594
CNI 0.0032291 0.0022974 -0.0014280 -0.0156897
VPD_GS 0.0023855 -0.0019209 -0.0019281 0.0085402
VPD_SU 0.0011748 -0.0010848 -0.0010572 0.0057309
SRAD_GS 0.1447314 -0.1624429 -0.7498450 0.0528610
SRAD_SU 0.0532496 -0.0840267 -0.3729713 0.1196630

En el código anterior podemos ver los vectores propios y valores propios obtenidos con la matriz de covarianza. Los eigenvalores o valores propios explican qué tanto de la varianza total está explicada por cada componente, mientras que los eigenvectores o vectores propios indican las direcciones principales en las que ocurre esta variación. Más adelante en el análisis de componentes principales usaremos estos valores. La primera columna es la dirección (o componente) que explica la mayor parte de la varianza, mientras que sucesivamente se va perdiendo poder explicativo.

PCA con Eigenvalores y Eigenvectores

data_transformada <- as.matrix(df) %*% eigen_result$vectors

kbl(head(data_transformada)) %>%
  kable_styling(bootstrap_options = c("hover", "condensed")) %>%
  scroll_box(width = "900px")
2578.364 1572.9852 -1164.588 -728.3225 -903.1719 -21.88524 13.199050 -12.72347 2.6573873 15.44440 -20.38164 -2.520316 0.9481139 -3.293093 0.4892846 0.5825110
3911.539 795.4396 -1368.705 -547.6363 -604.9012 131.86373 1.016414 -14.88655 1.3313535 16.94891 -19.03009 -3.000507 0.1793219 -3.478554 0.8034925 0.7955697
3703.334 940.7334 -1127.620 -838.2608 -771.3394 39.82641 29.704295 -11.84087 2.1734780 15.31696 -19.40429 -1.812955 -0.5998815 -3.947360 0.7649863 0.8064358
1888.883 898.7901 -1033.205 -740.0643 -550.2564 80.56932 5.379464 -12.80589 0.4295092 15.63252 -19.65347 -3.202204 0.3008749 -3.408165 0.8416669 0.8374815
4658.867 860.5183 -1013.068 -836.0082 -640.7120 32.47263 7.172579 -14.02745 1.1709791 16.03769 -19.13185 -3.519623 0.3365077 -3.379226 0.8904128 0.7233885
3448.701 948.6573 -1276.713 -783.1704 -662.1840 139.31398 34.646971 -14.73800 0.9550253 16.30858 -19.37008 -2.968755 0.3876570 -3.539639 0.9333135 0.7806887

En este caso, cada columna de la matriz que denominamos “data_transformada” es un componente principal. También calculamos la proporción de la varianza explicada por cada componente dividiendo cada eigenvalor por la suma total de los eigenvalores o valores propios.

Un Biplot nos ayuda a ver la relación de los datos originales en los componentes principales.

Diferencia entre utilizar la matriz de correlación y la matriz de covarianza:

Al comparar los resultados obtenidos del Análisis de Componentes Principales (PCA) utilizando la matriz de correlación y la de covarianza, es posible observar diferencias notables tanto en la magnitud de los componentes como en la proporción de varianza explicada. Cuando se utiliza la matriz de correlación, las variables son escaladas de manera que cada una tenga una varianza unitaria, eliminando las diferencias en magnitudes entre ellas. El primer componente principal (PC1) explica el 53.24% de la varianza total, seguido del segundo componente (PC2), que explica un 26.74%, lo que genera una varianza acumulada de 79.97% con solo dos componentes. La proporción de varianza explicada por los componentes restantes disminuye. Esta distribución más equilibrada de la varianza entre los componentes es característica de un análisis basado en la matriz de correlación porque todas las variables contribuyen de manera similar al análisis, sin que las diferencias en sus escalas originales influyan significativamente en los resultados.

Por otro lado, al utilizar la matriz de covarianza (sin escalar) el análisis muestra una concentración mucho mayor de la varianza en los primeros componentes. El primer componente principal (PC1) captura el 73.25% de la varianza total, seguido del segundo componente (PC2), que explica un 21.27% adicional, lo que suma un 94.52% de varianza acumulada en tan solo dos componentes. Esto implica que casi toda la estructura de los datos puede ser descrita por un espacio bidimensional, mientras que los componentes restantes explican fracciones mínimas de la varianza. Este resultado puede ser generado por componentes principales que pueden parecer más importantes debido a las diferencias en las escalas de las variables originales.

Segunda base

Variables

Variables Tipo Descripción
fixed_acidity Continua
volatile_acidity Continua
citric_acid Continua
residual_sugar Continua
chlorides Continua
free_sulfur_dioxide Continua
total_sulfur_dioxide Continua
density Continua
pH Continua
sulphates Continua
alcohol Continua
quality Entero Calificación entre 0 y 10
color Categórica blanco o tinto

Entre las variables están los ácidos fijos “fixed acidity”, acidez volátil, “volatile.acidity”, ácido cítrico “citric.acid” , azúcar residual “residual.sugar”, cloruros “chlorides”, dióxido de azufre libre “free.sulfur.dioxide”, dióxido de azufre total “total.sulfur.dioxide”, densidad “density”, el pH “pH”, los sulfatos “sulphates”, la concentración de alcohol “alcohol”, calidad dada por catadores “quality”, grupo de vino “group”.

La base de datos

fixed.acidity volatile.acidity citric.acid residual.sugar chlorides free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol quality Group
7.4 0.70 0.00 1.9 0.076 11 34 0.9978 3.51 0.56 9.4 5 1
7.8 0.88 0.00 2.6 0.098 25 67 0.9968 3.20 0.68 9.8 5 1
7.8 0.76 0.04 2.3 0.092 15 54 0.9970 3.26 0.65 9.8 5 1
11.2 0.28 0.56 1.9 0.075 17 60 0.9980 3.16 0.58 9.8 6 1
7.4 0.70 0.00 1.9 0.076 11 34 0.9978 3.51 0.56 9.4 5 1
7.4 0.66 0.00 1.8 0.075 13 40 0.9978 3.51 0.56 9.4 5 1
fixed.acidity volatile.acidity citric.acid residual.sugar chlorides free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol quality Group
6492 6.5 0.23 0.38 1.3 0.032 29 112 0.99298 3.29 0.54 9.7 5 2
6493 6.2 0.21 0.29 1.6 0.039 24 92 0.99114 3.27 0.50 11.2 6 2
6494 6.6 0.32 0.36 8.0 0.047 57 168 0.99490 3.15 0.46 9.6 5 2
6495 6.5 0.24 0.19 1.2 0.041 30 111 0.99254 2.99 0.46 9.4 6 2
6496 5.5 0.29 0.30 1.1 0.022 20 110 0.98869 3.34 0.38 12.8 7 2
6497 6.0 0.21 0.38 0.8 0.020 22 98 0.98941 3.26 0.32 11.8 6 2

Primero se combinaron dos bases de datos, una de vinos blancos y otra de vinos rojos. Los cuales individualmente tenían 4898 y 1599 datos respectivamente y exactamente las mismas columnas. Estas dos bases las juntamos en un dataset llamado WINEDATA, el cual contiene la información de 6497 vinos blancos y rojos representados por 13 variables que describen su composición química. Se pueden observar las primeras y últimas filas.

str(WineData)
## 'data.frame':    6497 obs. of  13 variables:
##  $ fixed.acidity       : num  7.4 7.8 7.8 11.2 7.4 7.4 7.9 7.3 7.8 7.5 ...
##  $ volatile.acidity    : num  0.7 0.88 0.76 0.28 0.7 0.66 0.6 0.65 0.58 0.5 ...
##  $ citric.acid         : num  0 0 0.04 0.56 0 0 0.06 0 0.02 0.36 ...
##  $ residual.sugar      : num  1.9 2.6 2.3 1.9 1.9 1.8 1.6 1.2 2 6.1 ...
##  $ chlorides           : num  0.076 0.098 0.092 0.075 0.076 0.075 0.069 0.065 0.073 0.071 ...
##  $ free.sulfur.dioxide : num  11 25 15 17 11 13 15 15 9 17 ...
##  $ total.sulfur.dioxide: num  34 67 54 60 34 40 59 21 18 102 ...
##  $ density             : num  0.998 0.997 0.997 0.998 0.998 ...
##  $ pH                  : num  3.51 3.2 3.26 3.16 3.51 3.51 3.3 3.39 3.36 3.35 ...
##  $ sulphates           : num  0.56 0.68 0.65 0.58 0.56 0.56 0.46 0.47 0.57 0.8 ...
##  $ alcohol             : num  9.4 9.8 9.8 9.8 9.4 9.4 9.4 10 9.5 10.5 ...
##  $ quality             : int  5 5 5 6 5 5 5 7 7 5 ...
##  $ Group               : num  1 1 1 1 1 1 1 1 1 1 ...
names(WineData)
##  [1] "fixed.acidity"        "volatile.acidity"     "citric.acid"         
##  [4] "residual.sugar"       "chlorides"            "free.sulfur.dioxide" 
##  [7] "total.sulfur.dioxide" "density"              "pH"                  
## [10] "sulphates"            "alcohol"              "quality"             
## [13] "Group"
any(is.na(WineData))
## [1] FALSE

La función str() revela la estructura del dataset, indica que contiene 6497 observaciones y 13 variables, mientras que names() lista los nombres de cada columna para facilitar la identificación de las variables. Este conjunto de datos es ideal para análisis multivariado, como el análisis de componentes principales (PCA) o agrupamientos, que permiten explorar las relaciones entre las características climáticas y las regiones vinícolas. Por otro lado, la función any() e is.na() permite asegurarse que no existen entradas vacías en la base de datos que debamos tratar de algún modo.

Estadístiva descriptiva

fixed.acidity volatile.acidity citric.acid residual.sugar chlorides free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol quality Group
Min 3.800000 0.0800000 0.0000000 0.600000 0.0090000 1.00000 6.00000 0.9871100 2.7200000 0.2200000 8.000000 3.0000000 1.0000000
Q1.25% 6.400000 0.2300000 0.2500000 1.800000 0.0380000 17.00000 77.00000 0.9923400 3.1100000 0.4300000 9.500000 5.0000000 2.0000000
Median 7.000000 0.2900000 0.3100000 3.000000 0.0470000 29.00000 118.00000 0.9948900 3.2100000 0.5100000 10.300000 6.0000000 2.0000000
Mean 7.215307 0.3396660 0.3186332 5.443235 0.0560339 30.52532 115.74457 0.9946966 3.2185008 0.5312683 10.491801 5.8183777 1.7538864
SD 1.296434 0.1646365 0.1453179 4.757804 0.0350336 17.74940 56.52185 0.0029987 0.1607872 0.1488059 1.192712 0.8732553 0.4307787
Q3.75% 7.700000 0.4000000 0.3900000 8.100000 0.0650000 41.00000 156.00000 0.9969900 3.3200000 0.6000000 11.300000 6.0000000 2.0000000
Max 15.900000 1.5800000 1.6600000 65.800000 0.6110000 289.00000 440.00000 1.0389800 4.0100000 2.0000000 14.900000 9.0000000 2.0000000

El resumen estadístico de las variables del data frame nos arroja que la acidez fija tiene un mínimo de 3.8, un máximo de 15.9 y una media de 7.22. El pH tiene un mínimo de 2.7, un máximo de 4 y una media de 3.2. También vemos que la calidad tiene un mínimo de 3, un máximo de 9 y una media con 5.8. También vimos que el porcentaje de alcohol tiene un máximo de 14.9 y un mínimo de 8, con una media de 10.49. Estos valores nos dan una idea de los valores de los vinos.

Diagramas de dispersión
Plot
plot(df)

Discusión

Al ejecutar plot(df) obtenemos una matriz de gráficos de dispersión que explora las relaciones entre las variables que vienen en el dataset de los vinos. Cada celda de la matriz muestra una relación bivariada entre dos variables, permitiéndonos así identificar visualmente posibles patrones y correlaciones entre estas. Por ejemplo, alcanzamos a ver una correlación negativa entre el pH y los ácidos fijos. Aunque en general podemos observar que las matrices de las variables tienen patrones bastante dispersos. También podemos observar que en el caso de Grupo con todos no hay nada claro, sino que todos los datos se cargan de un lado u otro, esto se debe a que la variable grupo es categórica.

Correlación
Mapa de calor

Discusión

Aquí se muestra una matriz de calor que ilustra las correlaciones entre distintas variables climáticas y vitivinícolas presentes en el conjunto de datos “wine.data”. Como sabemos, cada celda de la matriz representa el grado de correlación entre dos variables específicas, donde los tonos rojos indican una alta correlación negativa, los tonos azules denotan una correlación positiva, y las áreas blancas representan correlaciones cercanas a cero. Por ejemplo vemos una correlación positiva medianamente alta entre el total del sulfuro y el Grupo. También alcanzamos a ver una correlación medianamente positiva entre el dióxido de azufre libre y dióxido de azufre total. Vemos también una alta correlación negativa de acidez volátil y el Grupo. También vemos una correlación altamente negativa con la densidad y el alcohol. Aunque como podemos observar hay bastante correlaciones débiles entre las variables y varias cercanas al blanco, es decir con una correlación baja.

Histogramas
Gráficos

Discusión

Podemos observar que el histograma de fixed.acidity tiene una distribución algo simétrica más cargada a los números entre el 6 y 8 con un pico entre el 6 y el 7. El histograma de volatile acidity está bastante cargado a la izquierda y vemos que la mayoría de los vinos tienen una acidez volátil muy pequeña y menor a 0.5. En cuanto a la acidez cítrica vemos una distribución aún menos normal, en la que la mayoría de los vinos tiene menos de 0.5. También vemos en el histograma del azúcar residual una gráfica que está completamente cargada a la izquierda, con su máxima frecuencia entre 0 y 5, pero completamente descendiente. En el histograma de los cloruros nos pasa lo mismo que en el anterior, está completamente cargado a la izquierda y podemos observar una tendencia a cloruros bajos. De igual forma observamos dióxido de azufre libre con una distribución más normal pero cargada más a la izquierda, teniendo su frecuencia máxima en la parte izquierda. La gráfica de dióxido de azufre total tiene una distribución normal con una cola grande a la izquierda y sus valores con más frecuencia entre 100 y 150. En el histograma de la densidad vemos que los valores tienen muy poca distancia entre ellos, teniendo su máxima frecuencia entre el 0.99 y el 1, por lo que podemos concluir casi todos los vinos tienen una densidad muy parecida. El histograma del pH tiene una distribución normal con una cola a la derecha y con pocos outliers. El histograma de los sulfatos tiene una distribución normal con una cola a la derecha y varios outliers en ella derecha. El histograma del alcohol tiene una distribución uniforme y que decrece después del 9.5. En cuanto al histograma de calidad lo vemos diferente porque se trata de una distribución discreta al ser números enteros, con su máxima en 6. En cambio en el histograma del Grupo vemos que se salta muchos valores, esto porque el programa lo tiene registrado como valores continuos pero en realidad se trata de valores discretos, dado que sólo pueden estar en el grupo 1 si son vinos rojos y en el 2 si son vinos blancos.

Boxplots
Gráficos

Discusión

El análisis de los boxplots nos proporciona información sobre la distribución y sobre las diferentes variables que caracterizan a los vinos. Como ejemplo podemos tomar el de ácidos fijos que tienen bastante outliers. Y podemos observar que la mayoría de los datos se presentan entre el 6 y el 8. En general los de los ácidos son muy parecidos, tienen bastantes outliers y su caja está cargada a los menores valores. En el azúcar residual podemos observar que el primer cuartil y la media están muy cerca, lo que indica indica que tiene una distribución muy cargada en un intervalo. En el cloruro podemos observar cómo la caja es muy pequeña lo que nos indica que la mayoría de los datos están muy cargados en un intervalo específico y también observamos muchos outliers. En cuanto a los del dióxido de azufre podemos ver que en el de libre hay una caja más pequeña lo que indica que los datos están más concentrados y en el de total observamos que la caja es más grande y tiene menos outliers que el anterior. En cuanto al boxplot del pH observamos una caja de tamaño normal pero con bastantes outliers de ambos lados. En el tema de los sulfatos vemos otra vez una caja pequeña y en la parte inferior de la gráfica, lo que nos indica que la mayoría de los datos están en la parte inferior, además vemos bastantes outliers. En el caso de la calidad observamos que el cuartil 3 y la media son la misma por lo que se trata de una distribución cargada a la derecha y que tiene una asimetría positiva. Finalmente el Box plot de Group es prácticamente inexistente porque la mayoría de los vinos analizados son del grupo dos, es decir son vinos blancos.

Análisis de componentes principales
Utilizando la matriz de correlación
# Análisis de componentes principales utilizando la matriz de CORRELACIÓN
pca_res <- prcomp(df, scale. = TRUE)
summary(pca_res)
## Importance of components:
##                           PC1    PC2    PC3     PC4     PC5     PC6     PC7
## Standard deviation     1.9581 1.6319 1.2812 1.03947 0.92182 0.81294 0.75694
## Proportion of Variance 0.2949 0.2048 0.1263 0.08312 0.06537 0.05084 0.04407
## Cumulative Proportion  0.2949 0.4998 0.6260 0.70916 0.77452 0.82536 0.86944
##                            PC8     PC9    PC10    PC11    PC12    PC13
## Standard deviation     0.72179 0.68590 0.55304 0.50673 0.34535 0.15495
## Proportion of Variance 0.04008 0.03619 0.02353 0.01975 0.00917 0.00185
## Cumulative Proportion  0.90951 0.94570 0.96923 0.98898 0.99815 1.00000

Como podemos ver en la salida de la ejecución de nuestro PCA, contamos con que ell primer componente principal (PC1) tiene una desviación estándar de 1.9581, explicando el 29.49% de la varianza total de los datos. Al agregar el segundo componente principal (PC2), cuya proporción de varianza es del 20.48%, la varianza acumulada alcanza el 49.98%. El tercer componente (PC3) añade un 12.63%, lo que eleva la varianza acumulada al 62.60%. A partir de ese punto, los siguientes componentes contribuyen de manera decreciente a la explicación de la varianza. Esto sugiere que las primeras tres a cinco dimensiones son las más informativas para describir los patrones en los datos.

La gráfica de dispersión muestra los resultados del análisis de componentes principales (PCA) sobre los datos, representando las dos primeras componentes principales: PC1 en el eje X, que explica el 29.49% de la varianza, y PC2 en el eje Y, que explica el 20.48% de la varianza.

Este gráfico de sedimentación, nos indica algo muy similar a lo analizado en el paso anterior, indicando que la varianza total será representada por los primeros 3-5 componentes principales.

# Obtener los valores propios (eigenvalues)
eigenvalues <- pca_res$sdev^2
eigenvalues
##  [1] 3.83401355 2.66297785 1.64156623 1.08050754 0.84975263 0.66087797
##  [7] 0.57296361 0.52097750 0.47046325 0.30585126 0.25677504 0.11926525
## [13] 0.02400831
PC1 PC2 PC3 PC4
fixed.acidity -0.2602276 -0.2169777 -0.4691560 0.1522179
volatile.acidity -0.3637854 -0.0406333 0.2775355 0.0988973
citric.acid 0.1131939 -0.1652622 -0.5875545 -0.0558593
residual.sugar 0.2327740 -0.3899909 0.0769154 -0.1409448
chlorides -0.3024890 -0.2146146 -0.0490172 -0.1180273
free.sulfur.dioxide 0.3387132 -0.1803825 0.1017177 -0.3359858
total.sulfur.dioxide 0.4022846 -0.2180156 0.1034940 -0.1511961
density -0.1613445 -0.5338713 0.0506462 -0.1472896
pH -0.1748661 0.1825878 0.4064453 -0.4559318
sulphates -0.2795301 -0.0699647 -0.1701706 -0.5444379
alcohol 0.0043877 0.4946382 -0.2122349 -0.0924771
quality 0.0965894 0.2758404 -0.2940733 -0.4999903
Group 0.4698830 0.0415958 -0.0051541 0.0993140

En este dataset, los primeros cinco componentes tienen valores propios de 3.83, 2.66, 1.64, 1.08 y 0.85, respectivamente.

Los vectores propios muestran cómo cada variable original contribuye a las componentes principales. Por ejemplo, la variable fixed.acidity tiene una fuerte contribución negativa en el PC1 (-0.260), mientras que variables como free.sulfur.dioxide y total.sulfur.dioxide muestran contribuciones positivas en el PC1 (0.338 y 0.402, respectivamente). En PC2, variables como density y residual.sugar tienen una gran influencia positiva (0.533 y 0.390, respectivamente).

Dado este análisis, podemos ver por ejemplo que el PC1 podría estar influenciado por variables relacionadas con el dióxido de azufre y el azúcar residual, mientras que el PC2 parece estar influenciado por la densidad y el azúcar residual. Las variables menos relevantes en las componentes más bajas aportan menos a la variabilidad total de los datos.

## [1] 4

Aplicando el criterio de Kaiser previamente mencionado, el código identifica que se deberán utilizar 4 componentes principales.

A continuación, se muestra el diagrama correspondiente al PC1 y PC2, donde puede observar una clara separación entre los dos grupos a lo largo del eje del primer componente principal (PC1). El Grupo 1 tiende a agruparse hacia valores más negativos de PC1, mientras que el Grupo 2 se agrupa hacia valores más positivos. Esta separación indica que las variables originales influyen de manera diferente en los dos grupos y que el PC1 capta gran parte de esa diferencia. En menor medida, también se nota cierta dispersión en el eje del segundo componente principal (PC2), aunque no es tan pronunciada como en PC1.

##  Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...

Realizamos los gráficos de dispersión según su contribución al primer componente (PC1).

En el gráfico “Fixed Acidity vs Residual Sugar”, se comparan los valores de acidez fija con el contenido de azúcar residual en los vinos tintos (Grupo 1) y blancos (Grupo 2).

Los vinos blancos, representados en color azul, muestran una mayor dispersión en los valores de azúcar residual, con algunas observaciones que alcanzan niveles de hasta 60, mientras que la mayoría de los vinos tintos se agrupan en la parte inferior del gráfico con valores de azúcar residual por debajo de 10. En cuanto a la acidez fija, los vinos tintos tienden a concentrarse en rangos de 7 a 12, mientras que los blancos tienen un rango más amplio, aunque la mayor parte se sitúa en niveles de acidez de 6 a 9

En este gráfico se observa una clara diferenciación entre los grupos de vinos tintos (grupo 1) y blancos (grupo 2). Los vinos tintos presentan mayores niveles de cloruros en un rango más amplio de acidez fija, mientras que los vinos blancos se concentran en valores más bajos de cloruros, especialmente para acidez fija entre 6 y 8. Se identifican algunos valores atípicos en ambos grupos con niveles significativamente altos de cloruros.

En cuanto al gráfico Fixed Acidity vs pH, se identifica una relación inversa clara entre la acidez fija y el pH para ambos grupos. Los vinos tintos suelen tener un pH más alto y una acidez fija más baja en comparación con los vinos blancos, que muestran mayor variabilidad en la acidez fija, particularmente en rangos bajos de pH. La dispersión de puntos indica que otros factores, además de la acidez fija, influyen en el pH final de los vinos.

En este gráfico los vinos blancos presentan niveles mucho más altos de dióxido de azufre total en comparación con los vinos tintos, en los cuales no parece haber una relación clara entre la acidez fija y el dióxido de azufre total. En los vinos blancos, existe una leve tendencia hacia mayores niveles de dióxido de azufre con acidez fija más baja. También se observan valores atípicos en ambos grupos con niveles de dióxido de azufre total elevados.

Podemos observar que los vinos blancos exhiben mayor variabilidad y niveles más altos de azúcar residual, sin que se evidencie una fuerte correlación entre el ácido cítrico y el azúcar residual en ninguno de los grupos. Los vinos tintos, por otro lado, se concentran en niveles bajos tanto de ácido cítrico como de azúcar residual, aunque se destacan algunos valores atípicos en los vinos blancos con niveles altos de azúcar residual.

Al igual que en el gráfico de acidez fija, se observa una separación clara entre los vinos tintos y blancos. Los vinos tintos tienden a presentar niveles más altos de cloruros en relación con el ácido cítrico, mientras que los vinos blancos se concentran en niveles más bajos de ambos componentes.

Al analizar esta distribución de los datos en los vinos tintos (Grupo 1) los datos están más dispersos, lo que sugiere una mayor variabilidad en la relación entre la acidez cítrica y el pH. Por el contrario, en los vinos blancos (Grupo 2), los datos tienden a concentrarse en una zona más específica del gráfico, lo que indica una menor variabilidad en esta relación para los vinos blancos. También notamos la superposición de los grupos, ya que hay una considerable coincidencia en los valores de acidez cítrica y pH en ambos tipos de vino. Esto sugiere que estos parámetros no son exclusivos de un tipo de vino en particular.

En este caso podemos observar que los vinos tintos se concentran en la parte inferior izquierda del gráfico, lo que sugiere que estos vinos tienden a tener niveles más bajos tanto de acidez cítrica como de dióxido de azufre total. Por otro lado, los vinos blancos presentan una mayor dispersión, con algunos de ellos mostrando niveles elevados de dióxido de azufre total y una variedad de niveles de acidez cítrica. Si observamos la superposición de los grupos, se aprecia una considerable coincidencia en la zona de bajos niveles de dióxido de azufre total, lo que indica una significativa variabilidad en estos niveles tanto para los vinos tintos como para los blancos.

Utilizando la matriz de covarianza
# Análisis de componentes principales utilizando la matriz de covarianza
pca_res <- prcomp(df, scale. = FALSE) # No escalar las variables para utilizar la matriz de covarianza
summary(pca_res)
## Importance of components:
##                            PC1      PC2     PC3    PC4     PC5     PC6     PC7
## Standard deviation     58.0706 11.98569 4.13097 1.3307 1.10729 0.69456 0.29849
## Proportion of Variance  0.9535  0.04062 0.00483 0.0005 0.00035 0.00014 0.00003
## Cumulative Proportion   0.9535  0.99415 0.99897 0.9995 0.99982 0.99996 0.99998
##                            PC8    PC9   PC10    PC11    PC12      PC13
## Standard deviation     0.14289 0.1256 0.1142 0.09664 0.02722 0.0006319
## Proportion of Variance 0.00001 0.0000 0.0000 0.00000 0.00000 0.0000000
## Cumulative Proportion  0.99999 1.0000 1.0000 1.00000 1.00000 1.0000000

Este análisis de componentes principales (PCA) muestra hallazgos importantes y diferentes a los obtenidos en el PCA utilizando la matriz de correlación. Para empezar, el PC1 cuenta con una desviación estándar de 58.0706 y captura el 95.35% de la varianza total de los datos, lo que significa que este componente principal resume la mayor parte de la información contenida en el conjunto de variables, casi dejando sin varianza representativa en las otras variables. Esto puede suceder dado que, al considerar la matriz de covarianza (que no escala) algunos componentes principales podrían parecer más importantes de lo que en realidad son por un tema de escala más que de significancia. En términos de interpretación, el análisis mostraría que los primeros dos componentes principales (PC1 y PC2) son suficientes para capturar casi la totalidad de la variabilidad en el conjunto de datos (más del 99%). Indicando con esto que, aunque el dataset original tenga múltiples variables, la mayor parte de la información puede reducirse a un espacio bidimensional sin perder mucho detalle.

Esta gráfica presenta la dispersión de datos entre el primer y segundo componente, donde el PC1 explica casi el 96% de la variabilidad de los datos, mientras que el PC2 solo explica un 4.06%. Eso se puede interpretar como la mayoría de la variación de los datos se encuentran a lo largo del eje del PC1. La acumulación de los puntos se concentra en la región inferior izquierda.

En esta gráfica de sedimentación podemos observar que, como lo vimos en el análisis del PCA, más del 90% de la varianza total es representada por sólo el primer componente principal, mientras que los otros componentes aportan cantidades menores de varianza.

##  [1] 3.372198e+03 1.436567e+02 1.706495e+01 1.770736e+00 1.226090e+00
##  [6] 4.824070e-01 8.909648e-02 2.041780e-02 1.578461e-02 1.303237e-02
## [11] 9.339612e-03 7.409131e-04 3.993114e-07

Continuando con el análisis, se tienen los valores propios y los vectores propios. Los valores propios del PCA, los Eigenvalores, al no ser escalados, estos muestran que la mayoría de la varianza se concentra dentro del primer componente (PC1), al rededor del 3372.198, mientras que los demás componentes empiezan a tener una reducción con el valor que tienen. Por lo que nos dice que la mayoría de la variabilidad se concentra en este primer componente.

PC1 PC2 PC3 PC4
fixed.acidity -0.0074081 -0.0053686 0.0238545 0.7100909
volatile.acidity -0.0011843 -0.0007865 0.0009052 0.0252206
citric.acid 0.0004869 -0.0002472 0.0019223 0.0234252
residual.sugar 0.0410192 0.0186284 0.9952154 -0.0699869
chlorides -0.0001682 0.0000669 0.0001767 0.0100222
free.sulfur.dioxide 0.2304778 0.9726183 -0.0271259 0.0105441
total.sulfur.dioxide 0.9721539 -0.2313781 -0.0358515 0.0029207
density 0.0000018 0.0000013 0.0004608 0.0014462
pH -0.0006555 0.0006482 -0.0069112 -0.0263994
sulphates -0.0007044 0.0003469 -0.0019360 0.0231849
alcohol -0.0054516 0.0028765 -0.0825984 -0.6047063
quality -0.0005326 0.0091508 -0.0087933 -0.3308518
Group 0.0051720 -0.0029475 -0.0003410 -0.1144490

En parte por los vectores propios, los Eigenvectores, estos indican cómo es que las variables originales se combinan para crear los componentes principales. Al haber observado este resultado se puede denotar que las variables de “free.sulfur.dioxide” y “total.sulfur.dioxide” son las variables que contribuyen a la variabilidad del primer componente, con un respectivo 0.972 y un 0.971.

Conclusiones

Finalmente, es necesario recalcar el uso de la matriz de covarianza y la de la correlación ya que esto afecta a los resultados de la PCA. Al utilizar las variables escaladas y la matriz de correlaciones, el primer componente (PC1) pudo explicar el 22.49% de la varianza total con una desviación estándar del 1.9581, seguido del segundo componente (PC2), que añade un 20.48% de varianza explicada. Esto genera una varianza acumulada de aproximadamente 50% solo en los primeros dos componentes, lo que sugiere que las primeras tres a cinco dimensiones son las más informativas para describir los patrones presentes en el conjunto de datos. Mientras tanto, al utilizar la matriz de covarianza (sin escalar), el primer componente (PC1) pudo explicar un 95.35% de la varianza aunque con una distribución estándar del 58.0706, lo que sugiere que casi toda la información relevante se concentra en una sola dimensión.

Esta diferencia en el resultado puede deberse al hecho de que la matriz de covarianza refleja las escalas originales de las variables, lo que podría hacer que algunas variables, debido a sus magnitudes más grandes, dominen el análisis. Si bien esto puede simplificar el análisis, también indica que la importancia de ciertos componentes podría ser exagerada debido a diferencias de escala más que a su relevancia real en la variabilidad subyacente de los datos.

Fuentes

1 FasterCapital. (2024). Criterio de Kaiser: aplicación del criterio de Kaiser en PCA para una mejor selección de funciones. Recuperado de https://fastercapital.com/es/contenido/Criterio-de-Kaiser–aplicacion-del-criterio-de-Kaiser-en-PCA-para-una-mejor-seleccion-de-funciones.html