Está en la página 1de 10

Analisis Interno Office Star

En este ejercicio tenéis que construir un mapa conjunto, de percepciones y preferencias, con un análisis interno,
Para ello tenéis que leer el fichero de perceptiones y el de preferencias. Cuando tengáis las preferencias, tenéis
que explorar la heterogeneidad. Una vez elegidos los segmentos que vamos a explorar, obtened las medias en
los segmentos. Después tenéis que modificar el fichero de percepciones para añadir las preferencias de los
segmentos. Tenéis que obtener un resultado similar al siguiente. Al final, en un anexo, hos muestra varias
maneras deañadir las medias de los segmentos en la matriz de percepciones.

Lectura de percepciones
Leeremos el fichero de percepciones y lo mostraremos en una tabla
##Lectura de datos OfficeStar_per.txt
source("marketing-models.R")
os_per <- read.table("OfficeStar_per.txt", row.names=1, header=T)
perceptions<-t(os_per) #view the table read
knitr::kable(perceptions, digits = 3, row.names = T, align = "c",
caption = "Tabla de percepciones de las marcas en un conjunto de m atributos")

Table 1: Tabla de percepciones de las marcas en un conjunto de m


atributos

LargeChoice LowPrices ServiceQuality ProductQuality Convenience


OfficeStar 5.2 2.1 4.2 3.7 2.7
PaperCo 4.4 4.5 2.3 2.6 1.4
OfficeEquipment 3.9 2.6 3.1 3.1 4.7
Supermarket 2.3 4.1 1.8 2.9 5.1

Lectura de preferencias
Preferencias vectoriales
Leeremos las preferencias y las mostraremos en una tabla
#Lectura de las preferencias de OfficeStar_prefs
preferences.segments <- read.table("OfficeStar_prefs2.txt",
row.names=1,
header=T)
knitr::kable(head(preferences.segments), digits = 2, caption = "preferencias con una columna final que i

Table 2: preferencias con una columna final que incluye el resultado


de un proceso de segmentación de las preferencias

OfficeStar PaperCo OfficeEquipment Supermarket Segment


Lori 4 3 2 3 1
Mary 3 4 2 5 2

1
OfficeStar PaperCo OfficeEquipment Supermarket Segment
Radjeep 2 3 3 5 2
Antoine 3 1 3 5 3
Yoshi 3 2 3 5 3
Hubert 4 2 3 1 1

preferences<-preferences.segments[,-5]
knitr::kable(head(preferences), digits = 2, caption = "preferencias sin la columna final que incluye el

Table 3: preferencias sin la columna final que incluye el resultado


de un proceso de segmentación de las preferencias

OfficeStar PaperCo OfficeEquipment Supermarket


Lori 4 3 2 3
Mary 3 4 2 5
Radjeep 2 3 3 5
Antoine 3 1 3 5
Yoshi 3 2 3 5
Hubert 4 2 3 1

Explorar heterogeneidad preferencias


Aglomeración jeŕarquica
Exploraremos la heterogeneidad con una agrupación jerárquica y mostraremos visualmente el proceso de
aglomeración
####Preferencias de segmento y trazar los colores de las flechas según la clasificación
pref.hclust <- hclust(dist(preferences), method="ward.D")
plot(pref.hclust)

2
Cluster Dendrogram
20
15
10
Height

5
0

Ralph
Lori
Marie

Thaj

Mary
Barry

Antoine

Ruth
Alan

Steve
Mike
Jonny

Hubert
Charlotte

Hal
Sebastion

Radjeep
Beth
Michael
Dirk

Yoshi
Carol

Elisabeth
Megan
dist(preferences)
hclust (*, "ward.D")

Partición de la muestra
Haremos la partición de la muestra según la exploración anterior
#centros-hclust, calcula las medias en los segmentos obtenidos con hclust
centros.pref2<-centros.hclust(pref.hclust, preferences, 3)
pref.kmeans2<-kmeans(preferences, centros.pref2)
knitr::kable(pref.kmeans2$centers, digits = 2, caption = "Medias en los segmentos")

Table 4: Medias en los segmentos

OfficeStar PaperCo OfficeEquipment Supermarket


4.60 1.90 3.20 2.40
2.56 4.11 3.44 3.78
2.80 1.80 2.80 4.80

Añadir las medias de los segmentos a la matriz de percepciones


Añadiremos las medias de los segmentos a la matriz de percepciones según las opciones explicadas.
#El caso de las preferencias vectoriales
#Primero transponemos el resultado de las preferencias de segmentación
#Necesitaremos transponer porque necesitaremos segmentos como columnas
segments<-t(pref.kmeans2$centers)
#Ahora cambiaremos el nombre de los segmentos.
colnames(segments) <- c("S1", "S2", "S3")
#Ahora agregaremos los segmentos a las percepciones como nuevas columnas con la función cbind()
perceptionsPlus<-cbind(segments, perceptions)

3
#Estamos listos para construir el mapa de percepciones y preferencias en un solo paso

knitr::kable(t(perceptionsPlus), digits = 2, caption = "Medias en los segmentos")

Table 5: Medias en los segmentos

OfficeStar PaperCo OfficeEquipment Supermarket


S1 4.60 1.90 3.20 2.40
S2 2.56 4.11 3.44 3.78
S3 2.80 1.80 2.80 4.80
LargeChoice 5.20 4.40 3.90 2.30
LowPrices 2.10 4.50 2.60 4.10
ServiceQuality 4.20 2.30 3.10 1.80
ProductQuality 3.70 2.60 3.10 2.90
Convenience 2.70 1.40 4.70 5.10

Construir el mapa conjunto


Mapa conjunto análisis interno
Ahora podremos construir el mapa conjunto y mostrarlo.
perceptionsPlus.pca<-prcomp(perceptionsPlus, scale=T)
plot(perceptionsPlus.pca)

perceptionsPlus.pca
5
4
Variances

3
2
1
0

#Analisis interno
biplot(perceptionsPlus.pca)

4
−2 −1 0 1 2

PaperCo

2
0.6

LargeChoice

1
0.2

LowPrices
S2
ServiceQuality
PC2

OfficeStar

0
OfficeEquipment
−0.2

S1
ProductQuality

−1
Supermarket
−0.6

S3
Convenience

−2
−0.6 −0.2 0.2 0.6

PC1
También podemos utilizar ggbiplot(), de este modo, mostraremos un gráfico más elegante
ggbiplot(perceptionsPlus.pca, labels = row.names(perceptionsPlus))

La PaperCo
rg
eC
ho
1.0 ice
standardized PC2 (30.6% explained var.)

0.5
rices
owP
SL2
ServiceQu
ality

0.0OfficeStar

OfficeEquipment
S1
y
ualit
−0.5
uctQ
Prod

−1.0
Supermarket
S3
Conven

−1.0 −0.5 0.0 0.5 1.0


standardized PC1 (65.6% explained var.)
ience

5
Lectura preferencias ideales
Primero introduciremos las preferencias ideales de los consumidores
#Leeremos las prefernecias de officeStar_ideal

preferences.ideal <- read.table("OfficeStar_ideal2.txt",


row.names=1, header=T)

knitr::kable(head(preferences.ideal), digits= 2) #visualizaremos las preferencias ideales

LargeChoice LowPrices ServiceQuality ProductQuality Convenience


Lori 4 3 2 3 1
Mary 3 4 2 5 2
Radjeep 2 3 3 5 2
Antoine 3 1 3 5 3
Yoshi 3 2 3 5 3
Hubert 4 2 3 1 1

Explorar la heterogeneidad en las preferencias


Agrupación jerárquica
####Preferencias de segmento y trazaremos los colores de las flechas según la clasificación
knitr::kable(head(preferences.ideal), digits= 2)

LargeChoice LowPrices ServiceQuality ProductQuality Convenience


Lori 4 3 2 3 1
Mary 3 4 2 5 2
Radjeep 2 3 3 5 2
Antoine 3 1 3 5 3
Yoshi 3 2 3 5 3
Hubert 4 2 3 1 1

pref.ideal.hclust <-hclust(dist(preferences.ideal), method="ward.D")


plot(pref.ideal.hclust)

6
Cluster Dendrogram
20
15
10
Height

5
0

Ralph
Lori
Marie

Thaj

Mary
Barry

Antoine

Ruth
Alan

Steve
Mike
Jonny

Hubert
Charlotte

Hal
Sebastion

Radjeep
Beth
Michael
Dirk

Yoshi
Carol

Elisabeth
Megan
dist(preferences.ideal)
hclust (*, "ward.D")

Partición de la muestra
#centros-hclust, calcula las medias en los segmentos obtenidos con hclust
centros.pref.ideal<-centros.hclust(pref.ideal.hclust, preferences.ideal, 3)
pref.ideal.kmeans2<-kmeans(preferences.ideal, centros.pref.ideal)
knitr::kable(round(pref.ideal.kmeans2$centers, 2))

LargeChoice LowPrices ServiceQuality ProductQuality Convenience


4.6 1.9 3.20 2.40 1
2.5 4.0 3.40 3.90 2
3.0 1.5 2.75 4.75 3

Añadir los segmentos a la matriz de percepciones


#### Preferencias ideales #####
# Simplemente seleccionaremos las medias de los segmentos después de dividir la muestra de preferencias
pref.ideal.kmeans2$centers

## LargeChoice LowPrices ServiceQuality ProductQuality Convenience


## 1 4.6 1.9 3.20 2.40 1
## 2 2.5 4.0 3.40 3.90 2
## 3 3.0 1.5 2.75 4.75 3
#seleccionaremos esos medios y los asignaremos a los segmentos.marco de datos ideal
segments.ideal <- as.data.frame(pref.ideal.kmeans2$centers)
#Cambiaremos los nombres de las filas
rownames(segments.ideal) <- c("S1", "S2", "S3")

7
#Ahora añadiremos las preferencias segmentadas al marco de datos de percpecions como nuevas filas
perceptionsPlus.ideal <- rbind(perceptions, segments.ideal)

Contrucción del mapa conjunto


#Estamos listos para construir los mapas de percepciones y preferencias de una sola vez
perceptionsPlus.ideal <- as.data.frame(perceptionsPlus.ideal)
perceptionsPlus.ideal.pca<-prcomp(perceptionsPlus.ideal, scale=T)
plot(perceptionsPlus.ideal.pca)

perceptionsPlus.ideal.pca
2.0
1.5
Variances

1.0
0.5
0.0

#Analisis interno
biplot(perceptionsPlus.ideal.pca)

8
−2 −1 0 1 2

0.2 0.4 0.6


PaperCo

2
S1
LargeChoice LowPrices

1
PC2

Supermarket

0
OfficeStar OfficeEquipment
ServiceQuality S2
−0.2

−1
Convenience

−2
−0.6

ProductQuality
S3

−0.6 −0.2 0.2 0.4 0.6

PC1

Mapa conjunto con ggbiplot()


ggbiplot(perceptionsPlus.ideal.pca, labels = row.names(perceptionsPlus.ideal))

9
standardized PC2 (30.3% explained var.) PaperCo

La 1 s
rge S1
Ch r ice
o ice wP
Lo

0 Supermarket
OfficeStar OfficeEquipment
eQ uality S2
Servic

Co
nv
en
−1 ie
nc
e
tQuality

S3

−1 0 1
Produc

standardized PC1 (43.8% explained var.)

10

También podría gustarte