# R Code ----



Marketing_Mix_Brands

Partial R Code

# Marketing Mix - Brands
# Customer ratings for - perceptual adjectives and 4 brands.
# Within marketing analytics - perceptual adjectives to be linked to perceptual maps.
d <- read.csv("C:/Users/Rohit/Desktop/Marketing Mix - Brands/d.csv")
head(d)

##   cheap snappy effective luxurious artistic bold caring casual charming
## 1     9      7         2        10        7    5      9      1        3
## 2     4      2         2         8        5    4      9      7        2
## 3     5      6        10        10        1    8     10     10        8
## 4     8     10         5         5       10    2      9      2        1
## 5     9      5         3        10        3    8     10      5        3
## 6    10     10         4         9        9    3      5      1       10
##   contemporary creative daring elegant energetic exciting festive fresh
## 1            2       10      5       4        10       10       2    10
## 2            2        9      1       2         8        8       3     8
## 3           10        9      4       1         8        8       3     8
## 4            5        9      9       9         8        8       4     8
## 5            3        9      6       6         8        8       5     8
## 6            4       10      5       4        10       10       7    10
##   fun graceful hip brand.name
## 1  10        9  10          1
## 2   9        9   9          3
## 3   8        9   8          3
## 4  10        4  10          4
## 5   9        7   9          4
## 6   8        1   8          3

summary(d)

##      cheap            snappy         effective        luxurious    
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.000 
##  1st Qu.: 4.000   1st Qu.: 4.000   1st Qu.: 4.000   1st Qu.: 3.000 
##  Median : 8.000   Median : 8.000   Median : 6.000   Median : 6.000 
##  Mean   : 7.079   Mean   : 7.074   Mean   : 5.786   Mean   : 5.642 
##  3rd Qu.:10.000   3rd Qu.:10.000   3rd Qu.: 8.000   3rd Qu.: 8.000 
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000 
##     artistic           bold            caring           casual    
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.00 
##  1st Qu.: 3.000   1st Qu.: 3.000   1st Qu.: 3.000   1st Qu.: 3.00 
##  Median : 6.000   Median : 5.000   Median : 6.000   Median : 6.00 
##  Mean   : 5.529   Mean   : 5.486   Mean   : 5.505   Mean   : 5.54 
##  3rd Qu.: 8.000   3rd Qu.: 8.000   3rd Qu.: 8.000   3rd Qu.: 8.00 
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.00 
##     charming       contemporary     creative          daring     
##  Min.   : 1.000   Min.   : 1.0   Min.   : 1.000   Min.   : 1.000 
##  1st Qu.: 3.000   1st Qu.: 3.0   1st Qu.: 4.000   1st Qu.: 3.000 
##  Median : 6.000   Median : 6.0   Median : 7.000   Median : 5.000 
##  Mean   : 5.637   Mean   : 5.8   Mean   : 6.085   Mean   : 5.473 
##  3rd Qu.: 8.000   3rd Qu.: 8.0   3rd Qu.: 9.000   3rd Qu.: 8.000 
##  Max.   :10.000   Max.   :10.0   Max.   :10.000   Max.   :10.000 
##     elegant         energetic         exciting         festive     
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.000 
##  1st Qu.: 3.000   1st Qu.: 4.000   1st Qu.: 4.000   1st Qu.: 3.000 
##  Median : 5.000   Median : 7.000   Median : 7.000   Median : 5.500 
##  Mean   : 5.502   Mean   : 6.082   Mean   : 6.072   Mean   : 5.478 
##  3rd Qu.: 8.000   3rd Qu.: 9.000   3rd Qu.: 9.000   3rd Qu.: 8.000 
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000 
##      fresh             fun            graceful           hip       
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.000 
##  1st Qu.: 4.000   1st Qu.: 3.000   1st Qu.: 3.000   1st Qu.: 3.000 
##  Median : 7.000   Median : 6.000   Median : 5.000   Median : 6.000 
##  Mean   : 6.103   Mean   : 5.961   Mean   : 5.494   Mean   : 6.005 
##  3rd Qu.: 9.000   3rd Qu.: 9.000   3rd Qu.: 8.000   3rd Qu.: 9.000 
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000 
##    brand.name  
##  Min.   :1.000 
##  1st Qu.:2.000 
##  Median :3.000 
##  Mean   :2.508 
##  3rd Qu.:4.000 
##  Max.   :4.000

# scaling the raw data  - creating a scaled matrix
dsc<-scale(d[,1:20])
# creating a Data Frame of same name - "dsc" from scaled matrix
dsc<-as.data.frame(dsc)
summary(dsc)

##      cheap             snappy          effective          luxurious     
##  Min.   :-1.9334   Min.   :-1.9356   Min.   :-1.77078   Min.   :-1.5973 
##  1st Qu.:-0.9793   1st Qu.:-0.9797   1st Qu.:-0.66072   1st Qu.:-0.9092 
##  Median : 0.2929   Median : 0.2950   Median : 0.07933   Median : 0.1230 
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.0000 
##  3rd Qu.: 0.9290   3rd Qu.: 0.9323   3rd Qu.: 0.81937   3rd Qu.: 0.8112 
##  Max.   : 0.9290   Max.   : 0.9323   Max.   : 1.55941   Max.   : 1.4993 
##     artistic            bold             caring            casual      
##  Min.   :-1.5710   Min.   :-1.5652   Min.   :-1.5577   Min.   :-1.5768 
##  1st Qu.:-0.8772   1st Qu.:-0.8674   1st Qu.:-0.8662   1st Qu.:-0.8821 
##  Median : 0.1634   Median :-0.1696   Median : 0.1711   Median : 0.1599 
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000 
##  3rd Qu.: 0.8571   3rd Qu.: 0.8771   3rd Qu.: 0.8626   3rd Qu.: 0.8545 
##  Max.   : 1.5509   Max.   : 1.5749   Max.   : 1.5541   Max.   : 1.5492 
##     charming        contemporary         creative           daring      
##  Min.   :-1.5899   Min.   :-1.76217   Min.   :-1.7559   Min.   :-1.5594 
##  1st Qu.:-0.9042   1st Qu.:-1.02798   1st Qu.:-0.7200   1st Qu.:-0.8622 
##  Median : 0.1243   Median : 0.07331   Median : 0.3159   Median :-0.1649 
##  Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.0000 
##  3rd Qu.: 0.8100   3rd Qu.: 0.80750   3rd Qu.: 1.0065   3rd Qu.: 0.8811 
##  Max.   : 1.4957   Max.   : 1.54170   Max.   : 1.3518   Max.   : 1.5783 
##     elegant          energetic          exciting          festive        
##  Min.   :-1.5707   Min.   :-1.7515   Min.   :-1.7434   Min.   :-1.556096 
##  1st Qu.:-0.8729   1st Qu.:-0.7176   1st Qu.:-0.7122   1st Qu.:-0.861158 
##  Median :-0.1750   Median : 0.3162   Median : 0.3190   Median : 0.007514 
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.000000 
##  3rd Qu.: 0.8717   3rd Qu.: 1.0055   3rd Qu.: 1.0064   3rd Qu.: 0.876186 
##  Max.   : 1.5695   Max.   : 1.3501   Max.   : 1.3502   Max.   : 1.571123 
##      fresh              fun              graceful           hip          
##  Min.   :-1.7679   Min.   :-1.66693   Min.   :-1.564   Min.   :-1.691154 
##  1st Qu.:-0.7286   1st Qu.:-0.99490   1st Qu.:-0.868   1st Qu.:-1.015407 
##  Median : 0.3107   Median : 0.01315   Median :-0.172   Median :-0.001785 
##  Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.000   Mean   : 0.000000 
##  3rd Qu.: 1.0035   3rd Qu.: 1.02120   3rd Qu.: 0.872   3rd Qu.: 1.011836 
##  Max.   : 1.3499   Max.   : 1.35722   Max.   : 1.568   Max.   : 1.349710

# as seen in summary - "mean" for all - dimensions - is now "0.00"

# Now we create a merged data frame "dsc1" - adding the "brand.name" variable to the
# scaled data frame created earlier
dsc1<-cbind(dsc,d$brand.name)
# change the - "d$brand.name" to just "brand.name"
names(dsc1) [21] <- "brand.name"

library(corrplot)

# varied permutations of the bi variable correlation plot....
# too many variables thus creating seperate Correlation Plots
c1<-cor(dsc1[, 1:5])
c2<-cor(dsc1[, 6:10])
c3<-cor(dsc1[, 10:15])
c4<-cor(dsc1[, 16:20])

layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE))
corrplot.mixed(c1,lower="number", upper="circle")
corrplot.mixed(c2,lower="number", upper="circle")
corrplot.mixed(c3,lower="number", upper="circle")

corrplot.mixed(c4,lower="number", upper="circle")

corrplot(c3,type="upper", method="number",order="AOE")
# "AOE" for the angular order of the eigenvectors
corrplot(c4,type="upper", method="shade",order="hclust")

# "hclust" for the hierarchical clustering order.
corrplot(c3,type="upper", method="shade",order="FPC")
# "FPC" for the first principal component order.
corrplot(c4,type="upper", method="ellipse",order="FPC")
# "FPC" for the first principal component order.
#  method="ellipse"
corrplot(c4,type="upper", method="color",order="hclust")

# "FPC" for the first principal component order.
#  method="color"
corrplot(c3,type="upper", method="shade",order="hclust")
# "FPC" for the first principal component order.
#  method="shade"  - not very different from "color"

###
# Whats the average or the "mean" rating for each brand
# for all given - 20 - perceptual adjectives ?
###

avg.ratings <- aggregate(.~ brand.name , data=dsc1 , mean)
View(avg.ratings)
library(gplots)

##
## Attaching package: 'gplots'
##
## The following object is masked from 'package:stats':
##
##     lowess

library("RColorBrewer", lib.loc="~/R/win-library/3.1")
heatmap.2(as.matrix(c3),col=brewer.pal(9, "GnBu"),
          xlab=" Perceptual Adjectives ", ylab= "Coded Brand Names",trace="none", key=T, dend="none",main="\n\n\n Heat Map \n\n Perceptual Adj. Avg Ratings")

 

heatmap.2(as.matrix(c4),col=brewer.pal(7,"Greens"),
          xlab=" Perceptual Adjectives ", ylab= "Coded Brand Names",trace="none", key=T, dend="none",main="\n\n\n Heat Map \n\n Perceptual Adj. Avg Ratings")

#
heatmap.2(as.matrix(c4),col=brewer.pal(9,"BrBG"),
          xlab=" Perceptual Adjectives ", ylab= "Coded Brand Names",trace="none", key=T, dend="none",main="\n\n\n Heat Map \n\n Perceptual Adj. Avg Ratings")

#
heatmap.2(as.matrix(avg.ratings),col=brewer.pal(9,"BrBG"),
          xlab=" Perceptual Adjectives ", ylab= "Coded Brand Names",trace="none", key=T, dend="none",main="\n\n\n Heat Map \n\n Perceptual Adj. Avg Ratings")

 

#
# As the average ratings are mostly in the "0.000" range we need to
# multiply with "1000" across to get a decent data viz with the HeatMap .
getwd()

## [1] "C:/Users/Rohit/Desktop/Marketing Mix - Brands"

write.table(avg.ratings,"C:/Users/Rohit/Desktop/Marketing Mix - Brands/avg.csv",sep=",")
# Excel calc - external to R - now import avg1.csv
avg1 <- read.csv("C:/Users/Rohit/Desktop/Marketing Mix - Brands/avg1.csv")
View(avg1)
#
heatmap.2(as.matrix(avg1),col=brewer.pal(9,"BrBG"),
          xlab=" Perceptual Adjectives ", ylab= "Coded Brand Names",trace="none", key=T, dend="none",main="\n\n\n Heat Map \n\n Perceptual Adj. Avg Ratings")

#
heatmap.2(as.matrix(avg1),col=brewer.pal(9, "GnBu"),
          xlab=" Perceptual Adjectives ", ylab= "Coded Brand Names",trace="none", key=T, dend="none",main="\n\n\n Heat Map \n\n Perceptual Adj. Avg Ratings")

#to be completed – watch this space for more …Rohit Dhankar