Conjoint Analysis for Smart Product Development

Simulate Market Shares for Product Launches with Conjoint Analysis

In our small case study, I will show you how you a can understand your customer by their actual underlying utilities and preferences by showing you a concrete example of a conjoint analysis. The case is fictional. Conjoint analysis is a set of methods that enables you derive the underlying utilities and preferences of consumers by looking at their decision. In contrast to classical methods, you do not need to run after the customer and ask him what he likes, but rather you just observe his actually choice or judgement. Based on the customers’ choices, you then derive the most likely set of preferences, here called utility function. If you want to know more about conjoint analysis, then check out my in-depth article about conjoint analysis. If you want to know how you can build your own conjoint analysis, check out my detailed step-by-step guide for constructing your own conjoint analysis.

The Problem: Can a laptop startup company compete against Apple, Dell and co.?

In the small case today, I will help a laptop startup company named Ethos understand its primary target customer: students at a university. Ethos wants to sell their laptop mainly online through platforms and it is excited to bring their vision into realilty. However, they know that they have to make the right decisions and have three main questions that they want to have answered.

  1. What would be the ideal laptop for students?
  2. Will Ethos face any disadvantages for the fact that their startup is unknown when comparing it to well-known brands like Apple, Dell or Asus?
  3. What would be the preference share at the market?

The Method and Premises: Constructing a Conjoint Analysis

In this section, I will shortly go through the seven steps presented by me on how you can construct your own conjoint analysis.

Step 1: The Problem and Attributes

After having talked to the product manager of Ethos, it is clear that the attributes we want to look for are the following ones with the following expectations:

AttributeLevelsExpected InfluenceExpected Interactions
Brand5: Apple, Lenovo, Acer, Asus, Ethos, Other
Cores2: Dual Core, Quad Corelinearly increasingRAM
RAM3: 4 GB, 8 GB, 16 GBLinearly increasingCores
Hard Drive3: 256 GB, 512 GB, 1024 GBlogarithmic
Display Size3: 12 Inch, 14 Inch, 15.2 Inchquadratic with optimum
Display Quality2: Normal, HD
Touch Screen2: Yes, No

These are the variables that are thought to be the most important ones, because the consumers make decisions on them. Ideally, the variables have resulted from a qualitative investigation such as focus groups and interviews. One interesting point is that we might expect an interaction between the variable cores and RAM, since many cores with little RAM is thought to be much less interesting for a consumer than many cores with lots of RAM. If the concept of interactions is new to you, then I recommend you look at the two articles provided in the introduction that provide the theoretical background.

Step 2: The preference Model

In our case the problem is relatively clear, we want to understand the possible customer. Therefore, a vector model or a mixed model cannot help us further. The ideal-point solution on the other side offers an interesting map for each person, but it is less useful in answering the second and third question that Ethos posed. The ideal model would be a part-worth model in our case. A part-worth model fits very well with using a fractional factorial design. We can use it to answer all three questions and we can even visualize the results with clear graphs. This makes it the ideal model in order to understand the customer. With respect to predicting the market share, the mixed-model should be prefered over the part-worth model. However, we also have mostly categorical variables and for the sake of simplicity, we will also use the part-worth model to predict the market share instead.

Step 3: Data Collection

If we want to use a part-worth model, it makes most sense to use the concept evaluation method. Since Ethos wants to sell its laptop online, the goal is to make the conjoint analysis as similar to this situation as possible. Since on a platform like Amazon the laptops are usually indeed shown in a concept way, concept evaluation seems to be the best fit. By making it similar, we can increase the probability that we can later on generalize it to the real case, e.g. students buying laptops from Ethos on an online platform like Amazon one day. Another thought is that when customers search for laptops on online platforms, they do not buy them directly.

A second important aspect is that, according to the interviews conducted with potential customer prior to constructing the conjoint analysis, the customers do not make immediate decision about the purchase of the laptops. They rather first go through the laptops they can find online and make a first evaluation of them. Then they in most cases decide for the one they consider the best depending on their preferences. This makes us believe that it makes sense to ask our customers to rate each alternative rather than let them make decisions immediately.

Step 4: Experimental Design

Since there are no interaction effects, we will use a fractional factorial design that we can generate simply using the package “DoE.base” in R. Using this package, it is possible to test out the optimal number of levels and variables for a fractional factorial design. There are many other packages available, but “DoE.base” is the simplest and most straightforward way, as the other packages require more in-depth knowledge. We use the following code to generate a fractional factorial design and insert our level descriptions:

####################### Preparation
#### Step 4: Experimental Design
# Creating a fractional Design
install.packages("DoE.base")
library(DoE.base)
test.design <-oa.design(nlevels =c(6,2,3,3,3,2,2))
 
FracDesign <-as.data.frame(test.design)
names(FracDesign) <-c("Brand", "Cores", "RAM", "HardDrive","DSize","DQuality","TouchScreen")
levels(FracDesign$Brand) <-c("Apple", "Lenovo", "Acer", "Asus","Ethos", "Other")
levels(FracDesign$Cores) <-c("Dual Core", "Quad Core")
levels(FracDesign$RAM) <- c("4GB", "8 GB", "16 GB")
levels(FracDesign$HardDrive) <-c("256 GB", "512 GB", "1024 GB")
levels(FracDesign$DSize) <-c("12 Inch", "14 Inch", "15.2 Inch")
levels(FracDesign$DQuality) <-c("Normal", "HD")
levels(FracDesign$TouchScreen) <-c("Yes", "No")
rm(test.design)
 
# Save design into an excel file
install.packages("xlsx")
library(xlsx)
write.xlsx(FracDesign, "C:/Users/Economalytics/Desktop/ExperimentalDesign.xlsx")
BrandCoresRAMHardDriveDSizeDQualityTouchScreen
1AcerDual Core16 GB1024 GB12 InchNormalYes
2LenovoQuad Core16 GB256 GB15.2 InchNormalYes
3OtherDual Core8 GB512 GB12 InchNormalNo
4AsusDual Core16 GB512 GB14 InchHDNo
5AppleQuad Core8 GB256 GB12 InchNormalYes
6LenovoDual Core8 GB256 GB12 InchHDNo
7EthosDual Core8 GB1024 GB14 InchNormalNo
8AsusQuad Core16 GB1024 GB12 InchHDYes
9OtherQuad Core4 GB256 GB14 InchHDYes
10AppleDual Core16 GB256 GB15.2 InchNormalNo
11AsusDual Core4 GB256 GB15.2 InchNormalNo
12EthosDual Core16 GB256 GB12 InchHDYes
13EthosQuad Core8 GB512 GB12 InchHDNo
14EthosQuad Core16 GB512 GB15.2 InchHDNo
15LenovoDual Core16 GB1024 GB14 InchNormalNo
16AppleQuad Core4 GB1024 GB12 InchHDNo
17EthosDual Core4 GB256 GB14 InchNormalYes
18OtherDual Core16 GB512 GB15.2 InchHDYes
19OtherQuad Core8 GB1024 GB14 InchNormalYes
20AsusQuad Core4 GB512 GB12 InchNormalYes
21LenovoQuad Core8 GB512 GB15.2 InchHDYes
22AcerQuad Core16 GB512 GB14 InchNormalYes
23AsusQuad Core8 GB1024 GB15.2 InchNormalNo
24AcerDual Core8 GB1024 GB15.2 InchHDYes
25OtherQuad Core16 GB256 GB12 InchNormalNo
26LenovoQuad Core4 GB512 GB14 InchNormalNo
27AppleDual Core8 GB512 GB15.2 InchNormalYes
28AsusDual Core8 GB256 GB14 InchHDYes
29AppleQuad Core16 GB1024 GB14 InchHDNo
30LenovoDual Core4 GB1024 GB12 InchHDYes
31OtherDual Core4 GB1024 GB15.2 InchHDNo
32AppleDual Core4 GB512 GB14 InchHDYes
33AcerQuad Core4 GB256 GB15.2 InchHDNo
34EthosQuad Core4 GB1024 GB15.2 InchNormalYes
35AcerQuad Core8 GB256 GB14 InchHDNo
36AcerDual Core4 GB512 GB12 InchNormalNo

The table from above shows the fractional design that we will use for our conjoint analysis with one row corresponding to one run. The idea is that each person that participates in our conjoint analysis, will go through each run and rate the laptop. The more people participate, the better and more precise information we will have in order to estimate the market share and to understand our potential customers. Now, let’s have a look how many runs would be necessary if we were to run a full factorial design:

# Example for full factorial design
install.packages("AlgDesign")
library(AlgDesign)
 
numberlevel = c(c(6,2,3,3,3,2,2))
fulldesign <-gen.factorial(numberlevel)
nrow(fulldesign) # Runs full factorial
nrow(FracDesign) # Runs fractionalfactorial

Here, it becomes evident the advantage of the fractional factorial design. If we had to run a full factorial design, we would have needed let one person go through 1296 runs. This means that each person participating in the study would need to rate 1296 laptops in that case! Using a fractional factorial design, we managed to reduce it to only 36 runs, that is an incredible reduction of 97%. However, this is only possible if there are no interaction effects between our variables. Initially we expected an interaction between the variables Cores and RAM, but upon some interviews, it seems like that there does not seem to be any significant interaction. Therefore, the main prerequisite for a fractional factorial design is met. We will not discuss the disadvantages and further thoughts for designing an experiment here, because we want to keep it simple.

Step 5: Presentation of Alternatives

Since it was clear from the very beginning, that Ethos will go fo an online sales strategy, it was very important to design the presentation of an alternative as realistic as possible. While for a physical shop you might showcase prototypes of different products in the real environment and then ask for a rating, you will also want to make it realistic for the online scenario. Since Ethos considered to sell its laptops on Amazon because it would be difficult to attract customers from the scratch, it was necessary to adapt the concept evaluation to the design of Amazon including the disadvantages and advantages it might offer. Therefore, I constructed an experimental homepage that resembled amazon for collecting data. Below you can find an example of how the 20th run from the table in Step 4 would look on the homepage:

An example for a conjoint analysis
An example for a conjoint analysis

Another consideration is that it might be useful to add a description of all attributes and why they might be important, before the customer starts to rate the laptops. A laptop purchase by a student can be considered an investment on which they will spend a considerable amount of time and inform themselves prior to the purchase. It cannot be compared to a drink in the supermarket or an ice cream. We need to make sure that the customer can fully inform themselves before they make decisions. Therefore, we include a description of all attributes, the importance and the relevance. For instance, we would explain that high RAM might be important if you edit videos, edit high resolution images or process high amounts of data. Furthermore, we would add a constraint in such that they have to read through the description and that the whole experiment cannot be completed under 30min. This forces the customer to think every option through and really engage with the alternatives in order to achieve realistic and accurate ratings.

Step 6: Measurement Scale

Since we want the customer to rate each alternative, we will need a metric measurement, particularly a likert scale. Likert scales are per default interval scales, which means that we would only have the knowledge of how much the overall utility would increase by changing the level of an attribute. We are also restricted to an interval scale due to the fact that we chose a part-worth model as well as fractional factorial design. A continuous or ratio variable would generally not be possible with a fractional factorial design or part worth model unless we can make some assumption about linearity and interactions which are simply unrealistic. But the advantage of a likert scale is that it has proven to be more reliable in studies. The rating of a run might look like this:

An example of a likert scale for a conjoint analysis
An example of a likert scale for a conjoint analysis

Step 7: Estimation Method

Finally, there is not much room left to choose from the pool of estimation methods. The best fitting estimation method for our case is to use multiple linear regressions to estimate the utility function for each individual, because multiple linear regressions are perfectly able to estimate each factor and are well suited for fractional factorial design. What the method will do in our context, in a nutshell, is to look at the ratings of a customer and calculate the most likely utility function. Hence it tries to understand the choices and understand which attributes are the most important for each individual.

Finally, we create a survey, gather participants from our target group and we let them participate in our survey. They basically rate each run from the experimental design with a number ranging from 1 to 9, where the higher number indicates that the laptop suits the preferences more. 9 indicates a perfect fit, while 1 a very bad fit. Now that we prepared the complete conjoint analysis, it is about time to collect the data. For our case, we create a simulated dataset using the following code:

####################### Creating Utility Functions
#### Data Collection (Create Dataset)
# Create basis
set.seed(1234)
n <- 89 # number of participants
Data <- data.frame(Participant =1:89)
Data$Participant <-as.factor(Data$Participant)
for (run in 1:36) {
 Data[,paste("Run",as.character(run), sep = "")]<- sample(c(1:9), n, replace = TRUE)
}
 
# Shaping the data
Data[,c(6,11,17,28,33)] <-Data[,c(6,11,17,28,33)] + 2 # Improve Apple
Data[,c(8,13,14,15,18,35)] <-Data[,c(8,13,14,15,18,35)] - 2 # Decrease Ethos
Data[,c(2,4,5,7,8,11,12,13,16,18,19,25,28,29,31,32,33,37)]<- Data[c(2,4,5,7,8,11,12,13,16,18,19,25,28,29,31,32,33,37)] - 0.6 
Data[,c(2,3,5,9,11,13,15,16,19,23,26,30)]<- Data[, c(2,3,5,9,11,13,15,16,19,23,26,30)] + 0.9
Data[,c(2,3,6,9,10,13,18,19,20,21,22,23,25,28,29,31,33,35)]<- Data[,c(2,3,6,9,10,13,18,19,20,21,22,23,25,28,29,31,33,35)] + 1
 
Data[,-1] <- round(Data[,-1])
Data[,-1][Data[,-1] < 1] <- 1
Data[,-1][Data[,-1] > 9] <- 9

Solution: What is important to customers and how do you win them?

Now that we collected the data, it is time to run the analyses. We will run the analysis in four steps and try to answer the questions that we need to know for Ethos. First of all, we will estimate the part-worth model and visualize it for a few variables. The part worth models are supposed to help us understand the target customers and help us derive the “ideal” laptop. In a second step, we will dig deeper into our customers’ minds and try to understand what variables really matter. For this purpose, we will calculate the relative variable importance and compare these. Especially, we want to understand how the brand influences the consumers and whether there are any disadvantages for Ethos. Finally, we will show you quickly how you can estimate your potential future preference share and make simulations. The question that we want to answer, are the following ones:

  1. What would be the ideal laptop for students?
  2. Will Ethos face any disadvantages for the fact that their startup is unknown when comparing it to well-known brands like Apple, Dell or Asus?
  3. What would be the preference share at the market?

Step 1: Estimating the Part-Worth Models

First of all, we will need to merge the results with the design, so that each row represents a laptop with its features followed by the ratings it received by the 89 participants:

########################## Estimatingthe Part-Worth Models
# Merging FracDesign and Data
install.packages("data.table")
library(data.table)
 
Data$Participant <- NULL
Data <- transpose(Data)
rownames(Data) <- c(1:36)
Conjoint <- cbind(FracDesign, Data)

In the next step, we estimate the part-worth values for each person using a multiple linear regression model. At this point, the procedure might differ depending on the purpose, but since we want to estimate the preference share at a later point in time, we need a model for each person.

# Compute linear regression for eachperson 
 
install.packages("rlist")
library(rlist)
Regressions <- list()
 
for (person in 8:ncol(Conjoint)) {
 model <- lm(Conjoint[,person]~ factor(Brand) + 
                factor(Cores) + 
                factor(RAM) + 
               factor(HardDrive) + 
                factor(DSize) + 
                factor(DQuality) + 
                factor(TouchScreen) , data =Conjoint)
 Regressions <- list.append(Regressions, model)
}

The estimates of the linear regression are our part-worth utilities, whereby we need to remember, that for each categorical variable, one level is used as reference level. This means that for one level in each categorical variable no estimate will be shown because its value will be automatically 0. This shows us that part-worth utilities are interval scale variables. This we will need to consider when we construct a dataframe with all the part-worth utilities for each person. The following code does exactly that. It creates a dataframe where each row represents a level of a variable and where each column represents a participant.

# Create dataframe with part-worthvalues
 
vars <- c("Intercept",
          rep("Brand",6),
          rep("Cores",2),
          rep("RAM",3),
          rep("HardDrive", 3),
          rep("DSize",3),
          rep("DQuality",2),
          rep("TouchScreen",2))
lvls <- c("Intercept",
          as.character(levels(Conjoint$Brand)),
          as.character(levels(Conjoint$Cores)),
          as.character(levels(Conjoint$RAM)),
         as.character(levels(Conjoint$HardDrive)),
          as.character(levels(Conjoint$DSize)),
         as.character(levels(Conjoint$DQuality)),
         as.character(levels(Conjoint$TouchScreen)))
 
Results <-data.frame(Variable=vars,Levels=lvls)
 
for (person in 1:n) {
 c <- as.vector(Regressions[[person]]$coefficients)
 coef <-c(c[1],0,c[2:6],0,c[7],0,c[8:9],0,c[10:11],0,c[12:13],0,c[14],0,c[15])
 Results[,paste("Person",person,sep="")] <-round(coef, digits = 1)
}

Now that we have the table, we simply calculate the average for each level and plot the result for each variable. Optionally, it might be also interesting to add the standard deviation as whiskers for each level as well. The standard deviation would tell us how homogenous the target group is with respect to one level and might give us a hint on whether it would be even useful to offer more than one laptop.

# Get averages and visualize them foreach variable
 
Results[,"Average"] <-round(rowMeans(Results[,-c(1,2)]),digits = 1)
 
install.packages("ggplot2")
library(ggplot2)
 
 
# Brand
subs <- droplevels(subset(Results,Variable == "Brand"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg1 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("Brand")
 
# Cores
subs <- droplevels(subset(Results,Variable == "Cores"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg2 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("Cores")
 
# DQuality
subs <- droplevels(subset(Results,Variable == "DQuality"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg3 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("DQuality")
 
# DSize
subs <- droplevels(subset(Results,Variable == "DSize"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg4 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("DSize")
 
# HardDrive
subs <- droplevels(subset(Results,Variable == "HardDrive"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg5 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("HardDrive")
 
# RAM
subs <- droplevels(subset(Results,Variable == "RAM"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg6 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("RAM")
 
# TouchScreen
subs <- droplevels(subset(Results,Variable == "TouchScreen"))
subs$Levels <- reorder(subs$Levels,subs$Average)
if (min(subs$Average)<0) {
 subs$Average <- subs$Average + abs(min(subs$Average))
}
gg7 <- ggplot(data=subs,aes(x=Levels, y=Average, group=1)) +
 geom_line() +
 geom_point() +
 ggtitle("TouchScreen")
 
install.packages("gridExtra")
library(gridExtra)
 
grid.arrange(gg1, gg2, gg3, gg4, gg5,gg6, gg7, nrow=4, ncol=2)
estimated part-worth utilities for the conjoint analysis
Part-Wort Utilities for Different Features

These tables are the core of every conjoined analysis and give us precious information on how changing the feature of our laptop for Ethos would improve the utility. For instance, increasing the hard drive from 256 GB to 512 GB interestingly decreases the utility substantially, which might be a sign that the target group has a low budget and prefers others feature. We might have also included price as feature to assess the price sensitivity of our target group for instance. A more interesting approach would be, if we used price as the predicting variable instead of utility, e.g. we measured utility on the basis of how much our future customers would be willing to pay for a laptop.

Using these figures we can already answer the first two questions that Ethos had:

  1. What would be the ideal laptop for students?
    The answer to this question is simple. We just look at the levels that maximize the utility within each variable: an Asus or Lenovo laptop with a dual core processor, a simple 14-inch screen, 256 GB of hard drive, 8 GB RAM and a touch screen.
  2. Will Ethos face any disadvantages for the fact that their startup is unknown when comparing it to well-known brands like Apple, Dell or Asus?
    You surely realized, Ethos cannot produce “Asus” or “Lenovo” laptops and that gives rise to brand-disadvantages. Interestingly, Ethos will have a brand-advantage compared to Apple or Acer, but will clearly be disadvantaged against Asus or Lenovo. This implies that the target customers are a little brand sensitive, but not as much as expected, especially because the more prestigious brand Apple scores lower. However, if Asus, Lenovo and Ethos produce the exact same laptops, Ethos would tend to loose and here it has to lever different strategies in order to beat the competition. Either a) it starts building the brand and creates a unique user experience (for instance online order, extra offers like free streaming) in order to offset the brand disadvantage in that segment or b) it uses a more tailored marketing strategy with different market channels that will help them to be always a step closer to the target customer than the competition. The decision is up to the managers of Ethos.

Step 2: The Relative Variable Importance

So, in building the laptop required, where should Ethos start? What should be the first priority? A simple approach to this question is by looking at the relative variable importance, which basically tells us how important a variable is compared to others when a consumer makes a purchase decision. The relative importances can be simply calculated in two steps. First, for each variable calculate the biggest possible difference by subtracting the level with the lowest utility from the level with the highest utility. Second, for a variable A, its relative variable importance is simply the ratio of the biggest possible difference of A and the sum of all biggest possible differences of all variables. But luckily enough, there is a R-function that does the math for us.

# Compute relative importance
install.packages("relaimpo")
library(relaimpo)
 
Importances <- data.frame(Variable= c("Brand", "RAM", "HardDrive","DSize", "Cores", "DQuality","TouchScreen"))
 
for (model in 1:n) {
 relImp <- calc.relimp(Regressions[[model]], type =c("lmg"), rela = TRUE)
 relImp <- as.vector(relImp@lmg)
 Importances[,paste("Person",model,sep="")] <-round(relImp, digits = 3)
}
 
Importances$Average <-rowMeans(Importances[,-1])
 
Importances <- reorder(Importances$Variable,Importances$Average)
ggplot(Importances,aes(x=reorder(Variable, Average), y=Average)) + 
 geom_col() + 
 coord_flip() +
  scale_y_continuous(labels = function(x)paste(x*100, "%"))
a figure showing the relative variable importance
Relative Variable Importance

Step 3: Predicting the Market Share

For predicting the market share, we will assume that the board of Ethos decided to produce the “ideal” laptop that we defined in the first step. Now the board wants to know, what would be the potential market share in the best case, if Ethos would go to the market with the laptop. Ideally, we would have now a dataframe with all all the available laptops from all brands that our laptop would need to compete against. However, for the sake of simplicity, I will create an example competition of about 49 different laptops that Ethos’ laptop will compete against. The following code will create the laptop list:

######### Predict potential marketshare
# Simulate laptops from brands
 
vnames <- c("Brand","Cores", "RAM", "HardDrive","DSize","DQuality","TouchScreen")
 
 
brand <-sample(c("Apple", "Lenovo", "Acer","Asus", "Other"),49,replace = TRUE)
cores <- sample(c("DualCore", "Quad Core"), 49, replace = TRUE)
ram <- sample(c("4 GB","8 GB", "16 GB"), 49, replace = TRUE)
harddrive <- sample(c("256GB", "512 GB", "1024 GB"), 49, replace = TRUE)
dsize <- sample(c("12Inch", "14 Inch", "15.2 Inch"), 49, replace = TRUE)
dquality <-sample(c("Normal", "HD"), 49, replace = TRUE)
touchscreen <-sample(c("Yes", "No"), 49, replace = TRUE)
 
Market <- data.frame(a=brand,b=cores, c=ram, d=harddrive, e = dsize, f= dquality, g = touchscreen)
 
names(Market) <- vnames

Now I basically create the fitted or predicted values for each user for each laptop using the regression models that I derived from earlier.

# Caclulate utility scores for eachlaptop for each user
for (participant in 1:n) {
 Market[,paste("P",participant,sep="")] <-predict(Regressions[[participant]], newdata = Market[,1:7])
} 

Finally, I just have to look at which laptop “wins” for each person that participated and just count the brands, in order to derive the “market share”. The “win” can be considered to be laptop purchase decision that this individual would make under neutral and optimal conditions. And here comes one main limitation of the procedure. What I calculate here, in fact, will not be the real market share. It will rather be a “preference” share, because you will never find neutral and optimal conditions at the market. Neutral and optimal conditions would be for instance that there is no distribution channel advantage for none of the brands or that the consumer had the chance to evaluate all the laptops in the basket, which is rather unlikely. Of course, it is possible to enhance the method by correcting the result with respect to these constraints present in the real market, but the preference share gives you the information, how you would stand if you would not have any disadvantages (or advantages depending on the perspective) compared to your competitors.

# Determine the potential market share
purchased <-unlist(apply(Market[,8:ncol(Market)], 2, function(x) which(x == max(x))))
purchased <-Market$Brand[purchased]
brandcount <-as.data.frame(table(purchased))
brandcount$Freq <- brandcount$Freq/ sum(brandcount$Freq)
 
ggplot(brandcount, aes(x=purchased,y=Freq)) + geom_bar(stat="identity")
the figure depicts the estimated market shares
Predicted market shares using conjoint analysis

Now we can see that the market would be governed mainly by Acer, Asus and Lenovo given our simulated market and Ethos would be far off with approximately 1% market share. Is that surprising? No, for two reasons. Firstly, as we found out, Ethos faces some significant brand disadvantages. Secondly, Ethos is selling only one laptop compared to any of the other competitors who are selling 10 laptops on average in our simulated market.

Conclusion: A unique distribution channel is the key to beat the competition

At the end we managed to answer all three questions that our consulting client Ethos had and we demonstrated how powerful and informative a conjoint analysis can be. Of course, there some disadvantages that we have not touched upon like the fact that it is difficult to gather data accurately. When you conduct the conjoint analysis, you should also integrate ways to ensure validity and reliability.

However, the main advantage of a conjoint analysis is that it is flexible and you can adapt it to your needs. First, you can use different preference models if you want to achieve more realistic results. Second, after you derived the preferences, you can conduct further analyses on them. You could condunct a principal component analysis or cluster analysis to find out which customers are similar. You could also calculate how many different laptops you should launch to optimize your market share or you might even combine conjoint analysis with machine learning methods. Third, instead of using survey data, you might also use actual purchase data.

So what is the story now? Ethos will be able to gain a 1% market share if it is able to produce and sell the laptops for a competitive price and if the market conditions were ideal. Ethos knows now how the customer thinks and knows what would be the laptop that would fit to the needs.  However, will that be enough to beat the competition? I would say no, because Ethos will need to develop a unique distribution channel if it wants to beat the competition. The reason is simple. You can produce the ideal laptop, but if you customer never finds out, he will never buy it. Therefore, you will need to be one step ahead of your competition. What do you think?

Further Readings

16 Comments

  • Totally agree with you, Andrej and thank you for the charts and explanations.

    Distribution channels, USP’s, Sales funnel, Strategy and proper way of expressing all of it in a form of events etc., where they can build personal connection with their specifically picked target audience who’s problems is directly being solved. And Ethos needs to think about “What is it that people will miss from Ethos if Ethos suddenly disappeared?”. They might want to read “The Mom Test: How to Talk to Customers and Learn If Your Business is a Good Idea – by Rob Fitzpatrick”. This will help ask the customers right questions.

    Question: In case Ethos makes their own laptop, which, if I buy, and if something happens to it, would I want to go to a store and buy Ethos laptop again?”

    If Ethos is reading this article, a case below might help them understand why I buy products from Apple.

    Case experience: I have a Mac, and if it disappears and I won’t find it, I’ll go straight to the Apple store and buy myself a newest version of the same brand. The reason: Apple cares about their customers, they care about every single detail of the design, they always innovate (People criticize their innovations in the beginning, but they embrace it and start loving it in the end. The thing is, we all think different, but we don’t always put actions to it. We all have great ideas, but we don’t always execute them. Apple thinks different, and brings it to reality, they change things, they innovate and they dare to try out new things. Also, whenever they launch a product, they make sure it works the way it should, not for the sake of being first in the market. They change and they don’t think twice and they are confident. Also, Apple customer service helped me even when my guarantee has expired, they are always respectful, and show up when their customers have problems.

    The combination of “Ideal laptop” and “ideal distribution channel” with paragraph below answered, can definitely have an impact of 1% at some point.
    The company: Ethos entering this market will have enormous challenges to overcome. I personally don’t know what Ethos stands for, what their values are, what they represent, what’s their strategy, who did they help so far, how long are they in the market, what challenges they have been through, what’s their corporate social responsibility, how their products are produced, do their producing partners care about their employees etc., are they green, how good is their relationship with (competitors, manufacturers, employees), who is the company leader and what’s the director’s vision and a lot of “why” questions have to be answered.

    If I don’t know the answer to all these above, it would be hard to convince me to buy Ethos laptops.

    I hope this message carries value and can help Ethos make the right planning and right decisions.

    • Hey Akhmad,

      that is a very good poing that you made! From where I am standing, I would say that there are different personas and types of people. There are indeed people who would agree with you, but there are also people who cannot afford an apple laptop and are happy to get a simple one.

      I would agree, given their current strategy and their situation, it will be hardly possible for them to compete against Apple for the customer segment you are in.

      Maybe there is one more lesson to be learned from your comment with respect to the results of the conjoint analysis. The results one represent an “average” customer. And this might mean that the laptop Ethos wants to produce is not ideal for any customer.

      Imagine that in reality the segment that Ethos wants to compete in consists of two extreme types. The first one represents you, the second one the people who are looking for cheap laptop with only the most necessary things. Then computing the ideal laptop without clustering the customers beforehand would result in a laptop that is a compromise between the ideal laptop of both customer types. As a result, non of the both customer types will be really happy.

      I am actually explaining the issue at the end of the following article: http://economalytics.com/how-to-build-the-best-fit-conjoint-analysis-in-7-simple-steps/.

      So what do you think?

      • Hi Andrej,

        It is definitely a good point you made, and I might have not given attention to it. I got into thoughts of market competition and I didn’t make an analysis, since I just love computers, I believe (bias) there are many more cheap laptops and tougher competition with many small players than highly productive laptops, which is part of competitive landscape of bigger players. You have also a very nice point of clustering customer, and finding the target group and perfectly satisfying them, this will sell well.

        I would be very interested to see what would be the strategy of (Fictional) Ethos to enter the market of budget laptops and how they would position themselves in the market. (How would their channels look like, from the ones you proposed. Do you have some unique ideas in mind?)

        One of distribution channels I thought of is openness, honesty, and a lot of humor (just like “Dollar shave club” on their AD). I know this might be an overused example, but viral content like this would definitely trigger investors to maybe acquire Ethos and users buy their laptops 🙂

        What do you think?

        • Hey Akhmad, thanks for your comment. I appreciate it. I think the difficulty with startups is the uncertainty associated with what will work in the market. We do not really know what will work and therefore we only can, for the beginning, make educated guesses in form of hypotheses like you did. It is important to collect data, e.g. facts and to see whether this hypothesis can hold true in reality, rather than just in our imagination.

          There is a chance that we can learn from the “Dollar Shave Club” and transfer the lessons learned to the startup. However, remember that at the end, the “Dollae Shave Club” firstly targets different users, secondly operates with a completely different business model (subscription based), and thirdly faces a different kind of competition. Therefore I would doubt that it would work like that. 😀

    • Hey Akhmad,

      that is a very good poing that you made! From where I am standing, I would say that there are different personas and types of people. There are indeed people who would agree with you, but there are also people who cannot afford an apple laptop and are happy to get a simple one.

      I would agree, given their current strategy and their situation, it will be hardly possible for them to compete against Apple for the customer segment you are in.

      Maybe there is one more lesson to be learned from your comment with respect to the results of the conjoint analysis. The results represent an “average” customer. And this might mean that the laptop Ethos wants to produce is not ideal for any customer.

      Imagine that in reality the segment that Ethos wants to compete in consists of two extreme types. The first one represents you, the second one the people who are looking for cheap laptop with only the most necessary things. Then computing the ideal laptop without clustering the customers beforehand would result in a laptop that is a compromise between the ideal laptop of both customer types. As a result, non of the both customer types will be really happy.

      I am actually explaining the issue at the end of the following article: http://economalytics.com/how-to-build-the-best-fit-conjoint-analysis-in-7-simple-steps/.

      So what do you think?

    • Thank you, Ashley! I am happy that you like it. If I can help you, or you have any suggestions, shoot me a message! 🙂

  • Enjoyed looking through this, very good stuff, regards. “Hereafter, in a better world than this, I shall desire more love and knowledge of you.” by William Shakespeare.

  • Having read this I believed it was extremely informative.
    I appreciate you taking the time and energy to put this informative article together.
    I once again find myself spending way too much time both reading and leaving
    comments. But so what, it was still worthwhile!

Leave a Reply

Your email address will not be published. Required fields are marked *