WhatsApp Chat Sentiment Analysis in R

Marketing Analytics: Understanding Customer Perception And Brand Positioning Using Perceptual Mapping | R Programming


Perceptual mapping is a framework used by marketers to visually analyse how customers perceive their brand or product offering. It is a great visualisation technique where customer’s views are mapped on a chart to solve and understand various business problems.


Applications of perceptual mapping

Positioning: Perceptual mapping is a technique which is suitable to identify the positioning of a brand or a product. A product may be positioned as cheap in a competitive market but consumers might still see it an expensive alternative as compare to other alternate. It helps in identifying the existing position of a product and take required steps to resolve the problem.

Competitive Analysis: To understand the competition perceptual mapping has turned out to be one of the most useful tool for marketers where they can see how far or near in terms of different attributes customers position different products or businesses.

Identifying Competitive Advantage: Perceptual mapping can assist a business in identifying and exploring competitive advantages they posses at any given point of time.

Understand Segments: A business caters to multiple segments and Perceptual mapping can help them understand their segments better and identify how each segment behaves differently and target the right segment at right time.

Download the Dataset
Download the Code file

Let’s deploy Perceptual Mapping to solve a business problem.

Business Problem: A newly opened restaurant wants to see what customers think of the restaurant in terms of Food and Ambience. They think it’s very important to figure this out as early as possible so that they can generate ideas and suggestions to improve their customer retention rate.


#Set working directory
>setwd("/Users/manish/Documents/RDirectory")

# Read File
>Data <- read.csv("RestaurantData.csv")

#Explore Variables
>names(Data)

#See the structure of the data
>str(Data)

#Check the summary
>summary(Data)

#Check the top data points
>head(Data)

#Standardise the Data
>Standard <- function(x){
return(x-mean(x)/sd(x))
}


>StdData <- as.data.frame(lapply(Data[2:5],Standard))
>StdData$ID <- Data$ID


#Correlation Analysis
>library(corrplot)
>corrplot(cor(StdData[,1:4]),method = "square", title = "Correlation Matrix", order = "hclust")




#Factor Analysis
>library(nFactors)
>nScree(StdData[,1:4], cor = TRUE)


library(psych)
>FacAnalysis <- principal(StdData[,1:4], nfactors = 2, rotate = "varimax")

#Analysing the results
>FacAnalysis$loadings

>FacAnalysis$scores
>Scores <- as.data.frame(FacAnalysis$scores)
>colnames(Scores) <- c("Experience","Food")


#Map the output
>library(ggplot2)


>p <- ggplot(data = Scores, aes(x = Experience, y = Food))+geom_point(size = 5, alpha = 0.5, fill = "blue")+theme_minimal()+
xlim(-2.5,2.5)+ylim(-2,2)+geom_vline(xintercept = 0)+geom_hline(yintercept = 0)+coord_fixed()


>q <- p + annotate("text", x = 2.2, y = 0.1, label = "Good Food") + annotate("text", x = -2.2, y = 0.1, label = "Bad Food") +
annotate("text", y = -2, x = 0.1, label = "Bad Experience") + annotate("text", y = 2, x = 0.1, label = "Good Experience")


>q + theme(legend.position = "none")+theme_void()