Un vendedor vende sus productos sólo a través de correos electrónicos personalizados. El vendedor envía catálogos a los clientes con las características de los productos, y estos ordenan directamente de los catálogos. El responsable de marketing ha desarrollado registros de clientes para aprender qué hace que algunos clientes gasten más que otros. Para el estudio se presenta muestras independientes (por edades) de los clientes con sus características y variables. El conjunto de datos incluye n = 1000 clientes y las variables son:
Edad: Edad del cliente (Adulta/Media/Joven).
Género: Género del cliente (Masculino/Femenino).
Vivienda: Si el cliente es dueño de su casa (Propia/Alquilada).
Ecivil: Estado civil (Soltero/Casado).
Ubicación: Ubicación de un negocio que vende productos similares en términos de distancia (Lejos/Cerca).
Salario: Sueldo anual de los clientes (en dólares).
Hijos: Número de hijos (0-3).
Historial: Historial del volumen de compra anterior (Bajo/Medio/Alto/NA). NA significa que este cliente aún no ha adquirido ningún producto.
Catálogos: Número de catálogos enviados.
Monto: Gasto en dólares
DMark <- read.csv("MarketingDirecto (1).csv", stringsAsFactors=TRUE)
head(DMark)
## Edad Genero Vivienda Ecivil Ubicacion Salario Hijos Historial
## 1 Adulta Femenino Propia Soltero Lejos 47500 0 Alto
## 2 Media Masculino Alquilada Soltero Cerca 63600 0 Alto
## 3 Joven Femenino Alquilada Soltero Cerca 13500 0 Bajo
## 4 Media Masculino Propia Casado Cerca 85600 1 Alto
## 5 Media Femenino Propia Soltero Cerca 68400 0 Alto
## 6 Joven Masculino Propia Casado Cerca 30400 0 Bajo
## Catalogos Monto
## 1 6 755
## 2 6 1318
## 3 18 296
## 4 18 2436
## 5 12 1304
## 6 6 495
DMark |> View()
EMedia <- DMark[DMark$Edad == "Media",]
head(EMedia)
## Edad Genero Vivienda Ecivil Ubicacion Salario Hijos Historial Catalogos
## 2 Media Masculino Alquilada Soltero Cerca 63600 0 Alto 6
## 4 Media Masculino Propia Casado Cerca 85600 1 Alto 18
## 5 Media Femenino Propia Soltero Cerca 68400 0 Alto 12
## 7 Media Femenino Alquilada Soltero Cerca 48100 0 Medio 12
## 8 Media Masculino Propia Soltero Cerca 68400 0 Alto 18
## 9 Media Femenino Propia Casado Cerca 51900 3 Bajo 6
## Monto
## 2 1318
## 4 2436
## 5 1304
## 7 782
## 8 1155
## 9 158
View(EMedia)
colMeans(EMedia[,c(6,7,9,10)])
## Salario Hijos Catalogos Monto
## 72036.417323 1.187008 15.425197 1501.690945
Solo seleccionamos esas columnas porque son variables cuantitativas
Ulejos <- EMedia[EMedia$Ubicacion == "Lejos",]
colMeans(Ulejos[,c(6,7,9,10)])
## Salario Hijos Catalogos Monto
## 72597.101449 1.217391 17.130435 2081.311594
Aca se esta extrayendo del dataframe, EdadMedia, que contine tamb a la varaible ubicacion , pero de esa variable quermos la caracteristca lejos.
UCerca <- EMedia[EMedia$Ubicacion == "Cerca",]
colMeans(UCerca[,c(6,7,9,10)])
## Salario Hijos Catalogos Monto
## 71827.297297 1.175676 14.789189 1285.508108
Aca se esta extrayendo del dataframe,EdadMedia, que contine tamb a la varaible ubicacion , pero de esa variable quermos la caracteristca cerca
EstEMedia<-scale(EMedia[,c(6,7,9,10)])
head(EstEMedia)
## Salario Hijos Catalogos Monto
## 2 -0.3408239 -1.1202426 -1.4410634 -0.1914897
## 4 0.5479569 -0.1764893 0.3936740 0.9739761
## 5 -0.1469081 -1.1202426 -0.5236947 -0.2060841
## 7 -0.9670103 -1.1202426 -0.5236947 -0.7502461
## 8 -0.1469081 -1.1202426 0.3936740 -0.3614100
## 9 -0.8134936 1.7110172 -1.4410634 -1.4007387
El objetivo de estandarizar las variables en un análisis multivariante es principalmente homogeneizar la escala de las variables para que cada una contribuya equitativamente al análisis. Esto es importante porque en muchos conjuntos de datos, las variables pueden estar en diferentes escalas o unidades de medida, y si no se estandarizan, las variables con mayor varianza o en escalas más grandes podrían dominar el análisis y sesgar los resultados
options(scipen=999)
S<-round(cov(EMedia[,c(6,7,9,10)]),3)
S
## Salario Hijos Catalogos Monto
## Salario 612711590.295 2201.855 12377.976 12876323.309
## Hijos 2201.855 1.123 -0.819 -303.851
## Catalogos 12377.976 -0.819 42.777 2836.777
## Monto 12876323.309 -303.851 2836.777 920204.928
trS<-sum(diag(S))
trS
## [1] 613631839
det(S)
## [1] 11802219225088752
### Autovalores
eigenvalues <- eigen(S)
eigenvalues$values
## [1] 612982477.5374480 649328.3529891 32.3149754 0.9175874
sum(eigenvalues$values)
## [1] 613631839
prod(eigenvalues$values)
## [1] 11802219225760792
autovectors <- eigenvalues$vectors
autovectors
## [,1] [,2] [,3] [,4]
## [1,] 0.999778782836 0.0210328595 -0.00006290011 0.00001597509
## [2,] 0.000003580815 0.0005391671 -0.01673443789 -0.99985982411
## [3,] 0.000020285905 -0.0039671033 -0.99985213715 0.01673217008
## [4,] 0.021032949551 -0.9997707688 0.00395707814 -0.00060527255
sum(eigenvalues$values)
## [1] 613631839
prod(eigenvalues$values)
## [1] 11802219225760792
pairs(EMedia[,c(6,7,9,10)])
library(PerformanceAnalytics)
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
library(corrplot)
## corrplot 0.92 loaded
corr<-cor(EMedia[,c(6,7,9,10)])
corrplot(corr,method="circle")
library(psych)
cor.plot(corr, main="Mapa de Calor", diag=TRUE,
show.legend = TRUE)
library(aplpack)
faces(EMedia[1:20,c(6,7,9,10)])
## effect of variables:
## modified item Var
## "height of face " "Salario"
## "width of face " "Hijos"
## "structure of face" "Catalogos"
## "height of mouth " "Monto"
## "width of mouth " "Salario"
## "smiling " "Hijos"
## "height of eyes " "Catalogos"
## "width of eyes " "Monto"
## "height of hair " "Salario"
## "width of hair " "Hijos"
## "style of hair " "Catalogos"
## "height of nose " "Monto"
## "width of nose " "Salario"
## "width of ear " "Hijos"
## "height of ear " "Catalogos"
faces(EMedia[1:20,c(6,7,9,10)], face.type = 1, main = "Caras de Chernoff",
print.info = 0, nrow.plot = 4, ncol.plot = 5)
stars(EMedia[1:20,c(6,7,9,10)], key.loc=c(-2,12), lwd=1)