BASE DE DATOS: WHOLESALE CUSTOMERS DATA

El conjunto de datos “Wholesale Customers Data”, disponible en el repositorio de Machine Learning de UC Irvine, recoge información sobre el gasto anual de los clientes de un distribuidor mayorista en diversas categorías de productos. Las variables incluyen “Fresh”, “Milk”, “Grocery”, “Frozen”, “Detergents_paper” y “Delicatessen”, que representan el gasto en productos frescos, lácteos, abarrotes, congelados,detergentes y papel, y delicatessen, respectivamente. Además, se incluyen dos variables nominales: “Channel”, que indica el canal de venta (Horeca o Retail), y “Region”, que especifica la región del cliente (Lisbon, Oporto u “Other”). Dado que las variables de gasto son continuas y presentan una alta correlación entre sí, se aplicará un Análisis de Componentes Principales (PCA) a la base de datos. Esta técnica nos permitirá reducir la dimensionalidad de los datos, o la identificación de patrones y estructuras subyacentes, y mejorando la interpretación de las relaciones entre las diferentes categorías de productos. El PCA será fundamental para simplificar la complejidad de la base de datos y proporcionar una visión más clara sobre el comportamiento de los clientes, lo que puede ser útil para estrategias de segmentación y toma de decisiones en el negocio mayorista.

A continuacion una presentacion de los datos:

Data <- read.csv ("Wholesale customers data.csv")
head(Data)
##   Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen
## 1       2      3 12669 9656    7561    214             2674       1338
## 2       2      3  7057 9810    9568   1762             3293       1776
## 3       2      3  6353 8808    7684   2405             3516       7844
## 4       1      3 13265 1196    4221   6404              507       1788
## 5       2      3 22615 5410    7198   3915             1777       5185
## 6       2      3  9413 8259    5126    666             1795       1451

Paso 1: Estandarizar de los datos

colMeans(Data)
##          Channel           Region            Fresh             Milk 
##         1.322727         2.543182     12000.297727      5796.265909 
##          Grocery           Frozen Detergents_Paper       Delicassen 
##      7951.277273      3071.931818      2881.493182      1524.870455

En el vector de medias podemos observar que la variable 1 y 2 tienen una escala mucho menor que las demás.

Paso 2: Calcular la matriz de covarianza

cov(Data)
##                        Channel       Region         Fresh         Milk
## Channel           2.190723e-01   0.02247877     -1001.431 1.591511e+03
## Region            2.247877e-02   0.59949783       541.396 1.845044e+02
## Fresh            -1.001431e+03 541.39599814 159954927.421 9.381789e+06
## Milk              1.591511e+03 184.50443674   9381788.549 5.446997e+07
## Grocery           2.707890e+03  56.62581280  -1424712.796 5.108319e+07
## Frozen           -4.590964e+02 -79.10183268  21236654.585 4.442612e+06
## Detergents_Paper  1.419358e+03  -5.47350901  -6147825.712 2.328834e+07
## Delicassen        7.393256e+01  98.72200766   8727309.970 8.457925e+06
##                        Grocery        Frozen Detergents_Paper   Delicassen
## Channel           2.707890e+03 -4.590964e+02     1.419358e+03 7.393256e+01
## Region            5.662581e+01 -7.910183e+01    -5.473509e+00 9.872201e+01
## Fresh            -1.424713e+06  2.123665e+07    -6.147826e+06 8.727310e+06
## Milk              5.108319e+07  4.442612e+06     2.328834e+07 8.457925e+06
## Grocery           9.031010e+07 -1.854282e+06     4.189519e+07 5.507291e+06
## Frozen           -1.854282e+06  2.356785e+07    -3.044325e+06 5.352342e+06
## Detergents_Paper  4.189519e+07 -3.044325e+06     2.273244e+07 9.316807e+05
## Delicassen        5.507291e+06  5.352342e+06     9.316807e+05 7.952997e+06

Paso 3: Calcular las componentes principales

library(stats)
pca <- prcomp(Data, scale = TRUE)
round (pca$rotation,3)
##                     PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8
## Channel          -0.428 -0.205 -0.083 -0.030 -0.036 -0.864  0.140 -0.019
## Region           -0.025  0.043 -0.983 -0.078  0.133  0.090 -0.023  0.002
## Fresh             0.025  0.513 -0.089  0.798 -0.258 -0.147 -0.027  0.034
## Milk             -0.474  0.206  0.026 -0.054 -0.072  0.316  0.789  0.039
## Grocery          -0.536 -0.009  0.045  0.122  0.112  0.214 -0.353 -0.716
## Frozen            0.030  0.593  0.122 -0.161  0.754 -0.194 -0.005  0.013
## Detergents_Paper -0.524 -0.121  0.047  0.151  0.177  0.196 -0.371  0.692
## Delicassen       -0.165  0.533 -0.001 -0.538 -0.545 -0.055 -0.307  0.076

En PC1, las variables con los mayores pesos son “Grocery” (0.536), “Detergents__Paper” (-0.524), y en menor medida “Channel” (-0.428).

Esto sugiere que la primera componente está principalmente influenciada por las variables relacionadas con productos de supermercado, especialmente “Grocery” y “Detergents_Paper.”

En PC2, “Fresh” tiene un peso alto (0.513) junto con “Delicassen” (0.533) y “Region” (0.595). Esto indica que esta componente está relacionada con productos perecederos y específicos de ciertas regiones, posiblemente reflejando una tendencia o preferencia en ciertos tipos de productos frescos y delicatessen en ciertas áreas geográficas.

En PC3, “Frozen” (0.707) tiene un peso predominante, lo que sugiere que esta componente está relacionada principalmente con productos congelados.

En PC4, se observa que “Milk” (0.659) es la variable dominante, indicando que esta componente puede representar patrones de consumo de productos lácteos.

En particular, las componentes como PC7 y PC8 tienen valores bajos, lo que indica que estas componentes no contribuyen significativamente al análisis y pueden no ser necesarias para representar la mayor parte de la variabilidad en los datos.

Paso 4: Seleccion de las componentes principales

prop_varianza <- pca$sdev^2 / sum(pca$sdev^2)
prop_varianza
## [1] 0.387501229 0.223745880 0.126471735 0.092299037 0.069579050 0.057413544
## [7] 0.035140757 0.007848769

En total, las primeras cuatro componentes (PC1 a PC4) explican aproximadamente el 82.3% de la varianza total en los datos. Esto sugiere que el análisis puede simplificarse utilizando solo estas cuatro componentes, ya que capturan la mayoría de la variabilidad, lo cual es útil para reducir la dimensionalidad sin perder mucha información relevante. Las componentes adicionales (PC5 a PC8) contribuyen cada vez menos a la explicación de la varianza y pueden ser menos útiles para el análisis general.

Paso 5: Transformar los datos al nuevo espacio dimensional

pca$rotation <- -pca$rotation
pca$x <- -pca$x
biplot(pca, scale = 0, cex = 0.5, col = c("blue2","red2"))

Matriz de rotacion:

library(stats)
iris.pca <- prcomp(Data[], scale=T)
iris.pca$rotation
##                          PC1         PC2           PC3         PC4         PC5
## Channel          -0.42829156 -0.20469886 -0.0829798863 -0.02964416 -0.03620585
## Region           -0.02472603  0.04312964 -0.9825008891 -0.07784462  0.13250892
## Fresh             0.02531946  0.51344468 -0.0889509074  0.79847592 -0.25811686
## Milk             -0.47440995  0.20554061  0.0257510842 -0.05402202 -0.07208576
## Grocery          -0.53632914 -0.00871762  0.0453143572  0.12158624  0.11172990
## Frozen            0.02997456  0.59274525  0.1221565222 -0.16131688  0.75421244
## Detergents_Paper -0.52390630 -0.12108309  0.0474814388  0.15101211  0.17650264
## Delicassen       -0.16499653  0.53318082 -0.0009301994 -0.53755767 -0.54482721
##                          PC6          PC7          PC8
## Channel          -0.86350670  0.139899044 -0.019335373
## Region            0.08976479 -0.023279938  0.001545045
## Fresh            -0.14747474 -0.027173693  0.033851114
## Milk              0.31593256  0.789020414  0.039291347
## Grocery           0.21369889 -0.353064294 -0.715984124
## Frozen           -0.19435993 -0.005336793  0.012983225
## Detergents_Paper  0.19575356 -0.371374310  0.691672189
## Delicassen       -0.05453289 -0.306582655  0.075642587

Este biplot proporciona una visualización clara de cómo las diferentes variables contribuyen a las dos primeras componentes principales y permite identificar patrones de consumo. La primera componente (PC1) se asocia principalmente con productos de supermercado, mientras que la segunda componente (PC2) se relaciona con productos frescos y congelados. Esto permite entender cómo se agrupan las observaciones y qué variables tienen mayor influencia en cada componente.

Preguntas de Analisis:

  1. Cuanta variabilidad explican cada componente principal?
summary(iris.pca)
## Importance of components:
##                           PC1    PC2    PC3    PC4     PC5     PC6     PC7
## Standard deviation     1.7607 1.3379 1.0059 0.8593 0.74608 0.67772 0.53021
## Proportion of Variance 0.3875 0.2238 0.1265 0.0923 0.06958 0.05741 0.03514
## Cumulative Proportion  0.3875 0.6112 0.7377 0.8300 0.89960 0.95701 0.99215
##                            PC8
## Standard deviation     0.25058
## Proportion of Variance 0.00785
## Cumulative Proportion  1.00000

Porcentaje de varianza y varianza acumulada

library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(FactoMineR)
pca_w <- PCA(Data, graph = F, scale.unit = T)
round(get_eigenvalue(pca_w),1)
##       eigenvalue variance.percent cumulative.variance.percent
## Dim.1        3.1             38.8                        38.8
## Dim.2        1.8             22.4                        61.1
## Dim.3        1.0             12.6                        73.8
## Dim.4        0.7              9.2                        83.0
## Dim.5        0.6              7.0                        90.0
## Dim.6        0.5              5.7                        95.7
## Dim.7        0.3              3.5                        99.2
## Dim.8        0.1              0.8                       100.0

Visualizacion del porcentaje de varianza acumulada

fviz_eig(pca_w, addlabels=T,main=" ",ylab=" Porcentaje de varianza explicada", 
         xlab="Dimensiones")

Pc1= 38.8% Pc2= 22.4% Pc3= 12.6% Pc4= 9.2% Pc5= 7% Pc6= 5.7% Pc7= 3.5% Pc8= 0.8%

  1. ¿Cuántas componentes principales son necesarias para entender el conjunto de datos?
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.95 loaded
corrplot(get_pca_var(pca_w)$cos2, insig = c("p-value"),sig.level=-1)

Entendemos que como dijimos anteriormente con los primeros cuatro componentes (83%) es suficiente para entender el conjunto de datos.

  1. ¿Qué patrones o agrupaciones observan al proyectar los datos en estos componentes?

Se observan agrupaciones de clientes según sus patrones de gasto en categorías de productos. Algunos clientes destacan en el consumo de Fresh y Frozen, indicando un enfoque en productos frescos, mientras que otros muestran un gasto alto en Grocery y Detergents_Paper, reflejando una preferencia por abarrotes y limpieza. La variable Region también influye, ya que ciertas áreas, como Lisbon o Oporto , pueden tener demandas específicas. Estos patrones permiten una segmentación precisa, ayudando al distribuidor mayorista a personalizar sus estrategias comerciales para cada grupo de clientes.

  1. ¿Cómo se relaciona el análisis de PCA con el contexto de los datos?

El PCA en este contexto de wholesaling ayuda a identificar patrones de consumo entre distintas categorías de productos, mostrando qué tipos de productos suelen comprarse juntos. Al reducir la dimensionalidad del conjunto de datos, simplifica el análisis al concentrarse en las componentes principales que explican la mayor parte de la variabilidad. Esto permite segmentar el mercado en grupos de consumidores con comportamientos de compra similares. También destaca las categorías de productos más influyentes, ayudando en la toma de decisiones de negocio, como marketing e inventario. Finalmente, los biplots del PCA facilitan la visualización y comunicación de estos patrones complejos de manera clara y efectiva.

CONCLUSION: En conclusión, el análisis de Componentes Principales (PCA) aplicado al conjunto de datos “Wholesale Customers Data” permitió simplificar la estructura de los datos al reducir su dimensionalidad, facilitando la interpretación de los patrones de consumo en distintas categorías de productos. Los primeros cuatro componentes capturaron más del 80% de la variabilidad, revelando agrupaciones de clientes según su gasto en productos frescos, abarrotes, limpieza, y otros. Estas agrupaciones reflejan distintos perfiles de clientes, influenciados en parte por la región geográfica, lo que permite segmentar el mercado de manera más precisa. Así, el PCA no solo facilita una mejor comprensión del comportamiento de los clientes, sino que también apoya la toma de decisiones estratégicas en áreas clave como marketing, gestión de inventarios y personalización de ofertas para cada grupo de clientes.