Xu 2021. Brand/Product Positioning & Perceptual Mapping. Rpubs.com/utjimmyx/brand_positioning
After this workshop/exercise, you will have a better understanding of how to develop a perceptual mapping for brand/product positioning purposes using either survey data or qualitative data. In addition, you will also learn how to design basic perceptual mapping questions for survey studies.
Bakersfield_Grocery1.csv &
Bakersfield_Grocery2.csv) to R Studio Cloud.The first step is to collect your data. In this example, we collected Qualtrics survey data for local groceries in Bakersfield, CA using a focus group. You may evaluate attributes based on your group members’ perceptions of your project client’s business and the competition.
If you would like to follow this tutorial, use at least three attributes and follow the same data format (columns = attributes; first row = brands or products). Please open the sample data to see how it is structured.
We first calculate consumers’ average ratings for each attribute, then split the original survey dataset into two groups according to the education variable (1 and 0):
Bakersfield_Grocery1.csv — consumers who have at least
a college degree.Bakersfield_Grocery2.csv — consumers who do not have a
college degree.The final output shows how different grocery brands are clustered in four quadrants, reflecting how they are perceived across several service attributes (e.g., Yelp Reviews, Convenience, Price/Value).
# Install and load required packages (only needs to run once)
if (!requireNamespace("remotes", quietly = TRUE)) install.packages("remotes")
if (!requireNamespace("ggbiplot", quietly = TRUE)) remotes::install_github("vqv/ggbiplot")
library(ggbiplot)
# Group labels (3 stores x 3 groups)
site.groups <- c(rep("a", 3), rep("b", 3), rep("c", 3))
# Reusable function to generate both a plain and styled biplot
build_biplot <- function(filepath, site.groups) {
data <- read.csv(filepath, header = TRUE, row.names = 1)
data.pca <- prcomp(data, scale. = TRUE)
# Plain biplot
print(ggbiplot(data.pca, labels = rownames(data)))
# Styled biplot with ellipses
g <- ggbiplot(data.pca,
obs.scale = 1, var.scale = 1,
groups = site.groups,
ellipse = TRUE, circle = TRUE,
labels = rownames(data))
g <- g + scale_color_discrete(name = "")
g <- g + theme(legend.direction = "horizontal",
legend.position = "top")
print(g)
}
build_biplot("Bakersfield_Grocery1.csv", site.groups)
build_biplot("Bakersfield_Grocery2.csv", site.groups)
The sample size used for this survey exercise is small. Please do not generalize the results to the entire population. For generalization purposes, a survey of at least 30 customers is typically required for most statistical analyses.
Nenadic, O., & Greenacre, M. (2007). Correspondence analysis in R, with two- and three-dimensional graphics: the ca package. Journal of Statistical Software, 20(3). https://goedoc.uni-goettingen.de/bitstream/handle/1/5892/Nenadic.pdf?sequence=1
Sensographics and Mapping Consumer Perceptions Using PCA and FactoMineR. https://www.r-bloggers.com/2017/09/sensographics-and-mapping-consumer-perceptions-using-pca-and-factominer/
The Unavoidable Instability of Brand Image. https://www.r-bloggers.com/2014/06/the-unavoidable-instability-of-brand-image/
The R Project for Statistical Computing. https://www.r-project.org/
R for Data Science — Hadley Wickham. https://r4ds.had.co.nz/
R Markdown. https://rmarkdown.rstudio.com/
R Markdown: The Definitive Guide. https://bookdown.org/yihui/rmarkdown/