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]
© Copyright 2026 Paperzz