Reference

Xu 2021. Brand/Product Positioning & Perceptual Mapping. RPubs.com/utjimmyx/brand_positioning

Think-Pair-Share

The final perceptual maps explain differences in consumers’ perceptions of grocery stores in Bakersfield.

Figure 1 represents consumers with a college degree.

Figure 2 represents consumers without a college degree.

Objectives

This analysis uses principal component analysis to create perceptual maps showing how consumers evaluate grocery stores based on several service attributes.

Data

Both datasets were uploaded to RStudio Cloud:

The first dataset represents consumers with a college degree, while the second dataset represents consumers without a college degree.

Data Import and Preparation

attributes <- c(
  "Yelp",
  "Value",
  "Convenience",
  "Assortment",
  "Service",
  "Delivery_ser",
  "Smart_Apps"
)

read_grocery_data <- function(file_name) {
  
  data <- read.csv(
    file_name,
    header = FALSE,
    stringsAsFactors = FALSE,
    check.names = FALSE,
    fill = TRUE
  )
  
  # Remove the original header row
  data <- data[-1, , drop = FALSE]
  
  # Assign correct column names
  names(data) <- c("Store", attributes)
  
  # Convert perception variables to numeric values
  data[attributes] <- lapply(
    data[attributes],
    function(x) as.numeric(as.character(x))
  )
  
  return(data)
}

group1 <- read_grocery_data("Bakersfield_Grocery1.csv")
group2 <- read_grocery_data("Bakersfield_Grocery2.csv")

group1
##                    Store Yelp Value Convenience Assortment Service Delivery_ser
## 2           Trader Joe's  4.5   4.0         3.0          3       5            3
## 3  Carniceria La Carreta  4.0   2.0         4.0          4       5            3
## 4                Sprouts  4.0   3.0         3.0          3       5            4
## 5            Albertson's  3.0   2.0         5.0          3       4            4
## 6               FoodMaxx  2.0   3.0         3.0          3       4            3
## 7               Vallarta  3.0   3.0         3.0          4       5            3
## 8                   Aldi  3.5   4.0         3.0          3       5            5
## 9                  Winco  4.0   5.0         5.0          5       5            4
## 10               Walmart  2.5   4.5         4.5          5       4            5
##    Smart_Apps
## 2           4
## 3           0
## 4           4
## 5           4
## 6           3
## 7           0
## 8           0
## 9           4
## 10          4
group2
##                    Store Yelp Value Convenience Assortment Service Delivery_ser
## 2           Trader Joe's    4   2.0         3.0          3       4            2
## 3  Carniceria La Carreta    5   5.0         5.0          4       5            2
## 4                Sprouts    4   3.0         3.0          3       3            3
## 5            Albertson's    3   2.0         5.0          3       4            4
## 6               FoodMaxx    4   3.0         3.0          3       4            3
## 7               Vallarta    5   5.0         5.0          4       5            3
## 8                   Aldi    4   4.0         3.0          3       5            5
## 9                  Winco    5   5.0         5.0          5       5            4
## 10               Walmart    4   4.5         4.5          5       4            5
##    Smart_Apps
## 2           2
## 3           0
## 4           2
## 5           3
## 6           3
## 7           0
## 8           0
## 9           3
## 10          4

Average Ratings by Consumer Group

group1_means <- colMeans(group1[attributes], na.rm = TRUE)
group2_means <- colMeans(group2[attributes], na.rm = TRUE)

comparison <- data.frame(
  Attribute = attributes,
  College_Degree_Group = round(group1_means, 2),
  No_College_Degree_Group = round(group2_means, 2)
)

comparison$Difference <- round(
  comparison$No_College_Degree_Group -
    comparison$College_Degree_Group,
  2
)

comparison
##                 Attribute College_Degree_Group No_College_Degree_Group
## Yelp                 Yelp                 3.39                    4.22
## Value               Value                 3.39                    3.72
## Convenience   Convenience                 3.72                    4.06
## Assortment     Assortment                 3.67                    3.67
## Service           Service                 4.67                    4.33
## Delivery_ser Delivery_ser                 3.78                    3.44
## Smart_Apps     Smart_Apps                 2.56                    1.89
##              Difference
## Yelp               0.83
## Value              0.33
## Convenience        0.34
## Assortment         0.00
## Service           -0.34
## Delivery_ser      -0.34
## Smart_Apps        -0.67

PCA for Consumers with a College Degree

pca1 <- prcomp(
  group1[attributes],
  center = TRUE,
  scale. = TRUE
)

summary(pca1)
## Importance of components:
##                           PC1    PC2    PC3    PC4     PC5     PC6     PC7
## Standard deviation     1.5609 1.3596 0.9975 0.9758 0.79712 0.31373 0.18494
## Proportion of Variance 0.3481 0.2641 0.1421 0.1360 0.09077 0.01406 0.00489
## Cumulative Proportion  0.3481 0.6121 0.7543 0.8903 0.98105 0.99511 1.00000

Perceptual Map: Consumers with a College Degree

scores1 <- as.data.frame(pca1$x[, 1:2])
scores1$Store <- group1$Store

ggplot(scores1, aes(x = PC1, y = PC2, label = Store)) +
  geom_point(color = "steelblue", size = 3) +
  geom_text(
  aes(label = Store),
  vjust = -0.8,
  size = 3
  ) +
  labs(
    title = "Perceptual Map: Consumers with a College Degree",
    x = "Principal Component 1",
    y = "Principal Component 2"
  ) +
  theme_minimal()

Biplot: Consumers with a College Degree

biplot(
  pca1,
  scale = 0,
  cex = 0.7,
  main = "PCA Biplot: Consumers with a College Degree"
)

PCA for Consumers without a College Degree

pca2 <- prcomp(
  group2[attributes],
  center = TRUE,
  scale. = TRUE
)

summary(pca2)
## Importance of components:
##                           PC1    PC2    PC3     PC4     PC5     PC6    PC7
## Standard deviation     1.8707 1.3224 0.9390 0.76890 0.47239 0.18816 0.1426
## Proportion of Variance 0.4999 0.2498 0.1260 0.08446 0.03188 0.00506 0.0029
## Cumulative Proportion  0.4999 0.7497 0.8757 0.96016 0.99204 0.99710 1.0000

Perceptual Map: Consumers without a College Degree

scores2 <- as.data.frame(pca2$x[, 1:2])
scores2$Store <- group2$Store

ggplot(scores2, aes(x = PC1, y = PC2, label = Store)) +
  geom_point(color = "darkorange", size = 3) +
  geom_text(
  aes(label = Store),
  vjust = -0.8,
  size = 3

  ) +
  labs(
    title = "Perceptual Map: Consumers without a College Degree",
    x = "Principal Component 1",
    y = "Principal Component 2"
  ) +
  theme_minimal()

Biplot: Consumers without a College Degree

biplot(
  pca2,
  scale = 0,
  cex = 0.7,
  main = "PCA Biplot: Consumers without a College Degree"
)

Interpretation of Differences

Consumers with a college degree rated grocery stores higher in service, delivery services, and smart-app capabilities. Their average ratings were approximately 4.67 for service, 3.78 for delivery services, and 2.56 for smart apps.

Consumers without a college degree rated Yelp more positively, with an average rating of approximately 4.22 compared with 3.39 for consumers with a college degree. They also rated value and convenience slightly higher but rated service, delivery services, and smart apps lower.

Overall, the results suggest that consumers with a college degree place more importance on service and technology-related features. Consumers without a college degree appear to focus more on online reputation, value, and convenience. Walmart and WinCo were generally positioned as strong competitors because of their convenience, assortment, and technology-related characteristics.

The first two principal components summarize approximately 61% of the variation for the college-degree group and approximately 75% for the no-college-degree group. Therefore, the perceptual maps provide a useful summary of the data, but the original ratings should also be considered when making marketing decisions.

Additional Variables

Other useful variables could include store cleanliness, product quality and freshness, price competitiveness, employee friendliness, checkout speed, parking availability, store location, loyalty-program benefits, online ordering, availability of culturally specific products, overall customer satisfaction, shopping frequency, age, income, and household size. These variables could help explain why different consumers perceive the same grocery stores differently and would provide managers with more detailed information for developing targeted marketing strategies.

Data-Informed Marketing Strategy

A Walmart manager should continue emphasizing convenience, product assortment, delivery, and mobile-app services because Walmart is strongly associated with these features. However, the manager should also improve Yelp ratings by responding to customer reviews, resolving complaints, and encouraging satisfied customers to leave positive feedback.

Walmart could also promote online ordering, delivery discounts, loyalty rewards, and personalized app coupons. Since the two consumer groups value different attributes, Walmart should use targeted marketing strategies. Technology-based promotions could be directed toward consumers with a college degree, while value discounts, convenience messages, and review-based promotions could be directed toward consumers without a college degree.

Changes to the Survey Questionnaire

I would improve the survey by adding questions about store cleanliness, product freshness, employee friendliness, checkout speed, parking, loyalty programs, online ordering, and customer satisfaction. I would also include demographic questions such as age, income, household size, and shopping frequency. These additions would make it easier to identify specific customer segments and develop more effective marketing strategies.

Article Summary

I selected “6 Reasons to Learn R for Business.” The article explains that R combines statistics, visualization, reporting, and machine learning in one affordable tool. This is relevant to marketing because R can help professionals understand customers, create reproducible reports, and communicate data-driven recommendations more effectively to managers.