27.1 Conjoint Analysis

also known as conjoint measurements, which stems from mathematical psychology and psychometrics

Aims:

  • Willingness to pay: measure what individual are willing to give up to obtain certain product benefits

  • Distribution of willing to pay : measure how consumer differ

Advantages:

  • Improves ability to assess customers’ true wants and needs (especially price)

  • Dissect “everything is important”

Perception vs. preference

  • Perception (beliefs about the market) is largely homogeneous across customers

  • Preference (what product they buy) is heterogeneous across customers.

Conjoint analysis is a tool for preference assessment.

Attributes in conjoint:

  • Not too many attributes

  • Attributes should be actionable

  • Need to choose reasonable range of attributes

    • within range under consideration

    • All levels should be feasible

  • Number of attribute levels

    • Too many can be confusing

    • Halo effect of number of attributes (or the order of levels)

Number of profiles equal number of dummy variables with the assumption of independence

If you suspect that there might be interaction effect (violation of independence), you can either

  • use higher-level attribute

  • increase the number of profiles

Ranking and Rating conjoint analysis are not different Kalish and Nelson (1991)

(Green and Wind 1975)

Basics:

  • Use orthogonal array (in experimental design) to test combinations where independent contributions of all factors (attributes) are balanced.

  • Then rank all the reduced combinations in order

Uses:

  • New product development

  • Package design

  • Pricing and brand alternatives

  • Descriptions of new products or services

  • Alternative service design

  • Also organizations as consumers

Outcome variable can be:

  • Preference

  • Likelihood to purchase

  • best value for the money

  • Convenience of use

  • Suitability for a specific job

  • Psychological images (e.g., ruggedness, distinctiveness, conservativeness)

Can be used in conjunction with

  • factor analysis: firm-level decision variables (attribute/factor), dimension reduction technique

  • perceptual mapping: multidimensional scaling

  • cluster analysis: customer-level variables, segmentation technique

Suggested packages (in order of preference):

  • AlgDesign

  • conjoint

  • faisalconjoint

  • mlogit

  • conf.design

  • prefmod

27.1.1 Full-Profile

library(conjoint)
data(tea)
caModel(y = tprefm[1,],x = tprof)
## 
## Call:
## lm(formula = frml)
## 
## Residuals:
##       1       2       3       4       5       6       7       8       9      10 
##  1.1345 -1.4897  0.3103 -0.2655  0.3103  0.1931  1.5931 -1.4310 -1.4310  1.1207 
##      11      12      13 
##  0.3690  1.1931 -1.6069 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)   
## (Intercept)          3.3937     0.5439   6.240  0.00155 **
## factor(x$price)1    -1.5172     0.7944  -1.910  0.11440   
## factor(x$price)2    -1.1414     0.6889  -1.657  0.15844   
## factor(x$variety)1  -0.4747     0.6889  -0.689  0.52141   
## factor(x$variety)2  -0.6747     0.6889  -0.979  0.37234   
## factor(x$kind)1      0.6586     0.6889   0.956  0.38293   
## factor(x$kind)2     -1.5172     0.7944  -1.910  0.11440   
## factor(x$aroma)1     0.6293     0.5093   1.236  0.27150   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.78 on 5 degrees of freedom
## Multiple R-squared:  0.8184, Adjusted R-squared:  0.5642 
## F-statistic:  3.22 on 7 and 5 DF,  p-value: 0.1082

27.1.2 Choice-based

Also known as Discrete-choice conjoint analysis

27.1.3 Adaptive

  • Varies the choice sets based on respondent’s preference

  • Reduces the survey length

27.1.4 Hybrid

27.1.5 Max-Diff

  • Assortment under most preferred and least preferred scenario.

27.1.6 Self-explicated

27.1.7 Hierarchical Bayes analysis

27.1.8 Application

library(conjoint)
Experiment = expand.grid(weight = c("a","b"),
                         Price = c("Low","High"),
                         Warranty = c("2","3"),
                         Battery = c("10","20"))

partial_design = caFactorialDesign(Experiment,type = "orthogonal",seed = 123)
partial_profile = caEncodedDesign(partial_design)

levels <- c("a","b","Low","High","2","3","10","20")
lev.df <- data.frame(levels)

data = c("")

Example by Martin Muller

# Declaration of features and feature values
feature_names <- c("LENGTH", "ILLUSTRATION", "CLAPS")
feature_values <- list()
feature_values[[1]] <- c("2min", "7min", "20min")
feature_values[[2]] <- c("several images", "one image", "no image")
feature_values[[3]] <- c("+500 claps", "less than 500 claps")

# All concept generation
articles <- expand.grid(LENGTH = feature_values[[1]],
                        ILLUSTRATION = feature_values[[2]],
                        CLAPS = feature_values[[3]])

library (conjoint)
maxNumberOfArticles = 8

# Selection of relevant concepts
selectedArticles <- caFactorialDesign(data = articles,
                                      type = 'fractional',
                                      cards = maxNumberOfArticles)

# Checking if selected concepts are relevant for study
corrSelectedArticles <- caEncodedDesign(selectedArticles)
#print(cor(corr_design_mails))
print(cor(corrSelectedArticles))
##                 LENGTH ILLUSTRATION     CLAPS
## LENGTH       1.0000000            0 0.1240347
## ILLUSTRATION 0.0000000            1 0.0000000
## CLAPS        0.1240347            0 1.0000000
# List of rates of each article allowing to compare them
ranking = c(7 / 7, 3 / 7, 3 / 7, 5 / 7, 2 / 7, 6 / 7, 3 / 7, 0 / 7)

# Performing conjoint analysis
Conjoint(ranking, selectedArticles, unlist(feature_values))
## 
## Call:
## lm(formula = frml)
## 
## Residuals:
##        1        2        3        4        5        6        7        8 
## -0,03401 -0,02041  0,07483  0,10884 -0,12925  0,05442 -0,07483  0,02041 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)  
## (Intercept)              0,44898    0,05651   7,945   0,0155 *
## factor(x$LENGTH)1        0,25850    0,07534   3,431   0,0755 .
## factor(x$LENGTH)2        0,06803    0,07534   0,903   0,4619  
## factor(x$ILLUSTRATION)1  0,30612    0,07534   4,063   0,0556 .
## factor(x$ILLUSTRATION)2 -0,18367    0,08835  -2,079   0,1732  
## factor(x$CLAPS)1         0,02041    0,05651   0,361   0,7526  
## ---
## Signif. codes:  0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 ' ' 1
## 
## Residual standard error: 0,1495 on 2 degrees of freedom
## Multiple R-squared:  0,9389, Adjusted R-squared:  0,7863 
## F-statistic: 6,151 on 5 and 2 DF,  p-value: 0,1457
## [1] "Part worths (utilities) of levels (model parameters for whole sample):"
##                levnms    utls
## 1           intercept   0,449
## 2                2min  0,2585
## 3                7min   0,068
## 4               20min -0,3265
## 5      several images  0,3061
## 6           one image -0,1837
## 7            no image -0,1224
## 8          +500 claps  0,0204
## 9 less than 500 claps -0,0204
## [1] "Average importance of factors (attributes):"
## [1] 52,44 43,90  3,66
## [1] Sum of average importance:  100
## [1] "Chart of average factors importance"

References

Green, Paul, and Yoram Wind. 1975. “New Way to Measure Consumers’ Judgments.” Harvard Business Review, 107–17.
Kalish, Shlomo, and Paul Nelson. 1991. “A Comparison of Ranking, Rating and Reservation Price Measurement in Conjoint Analysis.” Marketing Letters 2 (4): 327–35. https://doi.org/10.1007/bf00664219.