7 June, 2017 Visual Representations of Market Segmentation Using

San Francisco | 5 – 7 June, 2017
Visual Representations of Market Segmentation Using Shiny
(Edit via Slide Master) Name – Job Title
[email protected]
Outline
●
●
Introduction
How we use ggplot2
–
–
●
●
Output
Obstacles
Enhancing our outputs with Shiny
Discussion
Glass Box Research®
2
Who We Are
We are quantitative market researchers who design studies,
write questionnaires, analyze the results, and provide strategic
recommendations.
Generally, our results help brands know
Who to target, What to say, and How to say it
Glass Box Research®
3
Example of a Segmentation Project
●
●
A state lottery sought a fresh perspective change their games and meet
ambitious growth goals
We designed research to measure perceptions of various lottery games and
similar activities
How well does the statement “{A total of 55 statements were tested}”
describe each of the activities below? Even if you have never participated
in the activity, answer based on what you think it would be like.
Does Not
Describe At All
Describes
Perfectly
{3 activities were shown below}
1
2
3
4
5
6
Playing Powerball
⦾
⦾
⦾
⦾
⦾
⦾
Reading a fun magazine
⦾
⦾
⦾
⦾
⦾
⦾
Gambling online
⦾
⦾
⦾
⦾
⦾
⦾
Glass Box Research®
4
Ideal Draw Game Experience
●
We also asked respondents to imagine how they ideally wanted to feel the last
time they played a lottery draw game. Using the same list of 55 attributes, we
asked how well each described their ideal draw game experience
How well do the following statements describe your ideal experience?
Does Not
Describe At All
{Each respondent rated the same 55 attributes}
Describes
Perfectly
1
2
3
4
5
6
1. Adds excitement to your life
⦾
⦾
⦾
⦾
⦾
⦾
2. Allows you to seek some thrills
⦾
⦾
⦾
⦾
⦾
⦾
…
⦾
⦾
⦾
⦾
⦾
⦾
55. Allows you to take a risk
⦾
⦾
⦾
⦾
⦾
⦾
Glass Box Research®
5
Discovered 14 Need States
●
●
Examined all 55 attributes used to describe the various
entities (i.e. draw games and activities)
Grouped them into factors using variable clustering
techniques (based on how the statements are
correlated with one another)
–
–
Allows us to organize the space into meaningful territories
and summarizes the data
Illuminates higher level constructs that protect the results
from outliers that could skew the data
Glass Box Research®
6
Visualizing the Findings
●
●
We use ggplot2 to create perceptual maps that plot a
landscape of the category and brands therein
These techniques reveal how people view the various
brands and attributes relative to one another
Glass Box Research®
7
Benefits of Perceptual Maps
●
Allows us to visualize a high number
of associations
–
–
●
Between brands or products
Between attributes
Creates a common language for the
brand team to use when discussing
the existing position of the product as
well as future positionings
Products plotted closer to
one another or an attribute
are more highly associated.
Innovative
Product A
Environmentally
Friendly
Indulgent
Product B
High Customer Service
Product C
Traditional
Dependable
Product C is perceived as being
more “Traditional” and less
similar to Products A and B.
Glass Box Research®
8
Obstacles with ggplot2
●
To land on a final map output, we must determine the optimal
settings across a number of statistical and graphical parameters
–
–
–
–
●
●
Map dimensions (x + y or x + z)
Should either (or both) axis be flipped to make the plot more intuitive?
Should the map coordinates be rotated?
What should the max and min coordinates for each axis be?
Further, it's helpful to view the map in layers (e.g. just brands or
just attributes) rather than everything at once
Using ggplot2 alone, we must iteratively make adjustments,
creating a new map each time until we land on the best output
Glass Box Research®
9
Dynamic adjustments using Shiny inputs
selecteddata<-lotto[which(lotto$type %in% input$levels & lotto$factor %in% c(input$factors,NA)
& lotto$entity %in% c(input$entities, NA)),]
if(input$dims==1){
selecteddata$y <- selecteddata$y
selecteddata$x <- selecteddata$x}
if(input$dims==2){
selecteddata$y <- selecteddata$z
selecteddata$x <- selecteddata$x}
if(input$dims==3){
selecteddata$y <- selecteddata$y
selecteddata$x <- selecteddata$z}
if(input$flipx==TRUE){selecteddata$x <- selecteddata$x*-1}
if(input$flipy==TRUE){selecteddata$y <- selecteddata$y*-1}
if(input$rotation>0){
workppp <- ppp(selecteddata$x,selecteddata$y, c(-10,10),c(-10,10))
rotppp <- rotate(workppp, input$rotation*pi/180)
selecteddata <- data.frame(label=selecteddata$label, x=rotppp$x, y=rotppp$y,
type=selecteddata$type, entity=selecteddata$entity, factor=selecteddata$factor,
color=selecteddata$color)}
Glass Box Research®
10
Shiny App Demonstration
runApp("/home/share/2017-05 EARL/Demo/")
Glass Box Research®
11
Thank You!
(Edit via Slide Master) Name – Job Title
[email protected]