Please download and load data “super_bock_mini.Rdata” from Canvas.

head(data)

To Estimate the Binary Choice Model

mdl <- glm(choice ~ price + brand + capacity + shape, family = "binomial", data)
results <- summary(mdl)
results

Call:
glm(formula = choice ~ price + brand + capacity + shape, family = "binomial", 
    data = data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.9879  -0.4170  -0.3096   0.1522   4.1570  

Coefficients:
                Estimate Std. Error z value Pr(>|z|)    
(Intercept)       1.7294     0.4361   3.965 7.33e-05 ***
price50ct        -2.0558     0.4746  -4.332 1.48e-05 ***
price60ct        -0.5594     0.3778  -1.481    0.139    
price70ct        -1.9348     0.3312  -5.842 5.16e-09 ***
brandSagres       2.4692     0.3181   7.761 8.40e-15 ***
brandSuper Bock   2.7227     0.4127   6.597 4.19e-11 ***
capacity250ml    -2.5363     0.3263  -7.773 7.69e-15 ***
capacity330ml    -4.1839     0.3899 -10.730  < 2e-16 ***
shapeRocket      -2.0051     0.3050  -6.575 4.87e-11 ***
shapeSpanish     -4.1298     0.3888 -10.621  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1057.06  on 935  degrees of freedom
Residual deviance:  464.55  on 926  degrees of freedom
AIC: 484.55

Number of Fisher Scoring iterations: 6

To Obtain the Partworths

Three rules to transform the coefficients to partworths:

  1. Baseline levels partworths = 0
  2. Insignificant levels partworths = 0
  3. Significant levels partworths = coefficients
     

A list called “partworth” is loaded for the collection of partworths.
You may also create tables or vectors for partworths.

partworth
$brand
   Cristal     Sagres Super Bock 
         0          0          0 

$capacity
200ml 250ml 330ml 
    0     0     0 

$price
30ct 50ct 60ct 70ct 
   0    0    0    0 

$shape
Long Neck    Rocket   Spanish 
        0         0         0 


We need to first set insignificant coefficients to zeros, with the cutoff of p-values as 0.05.

coeffs <- results$coefficients[,1]*(results$coefficients[,4]<.05)
coeffs
    (Intercept)       price50ct       price60ct       price70ct     brandSagres brandSuper Bock 
       1.729359       -2.055824        0.000000       -1.934842        2.469227        2.722735 
  capacity250ml   capacity330ml     shapeRocket    shapeSpanish 
      -2.536253       -4.183921       -2.005092       -4.129809 


Set the partworths based on the transformed coefficients - “coeff”.

partworth$brand[2:3] <- coeffs[5:6]
partworth$capacity[2:3] <- coeffs[7:8]
partworth$price[2:4] <- coeffs[2:4]
partworth$shape[2:3] <- coeffs[9:10]
partworth
$brand
   Cristal     Sagres Super Bock 
  0.000000   2.469227   2.722735 

$capacity
    200ml     250ml     330ml 
 0.000000 -2.536253 -4.183921 

$price
     30ct      50ct      60ct      70ct 
 0.000000 -2.055824  0.000000 -1.934842 

$shape
Long Neck    Rocket   Spanish 
 0.000000 -2.005092 -4.129809 


Next, we evaluate the 4 strategies of new product designs:

We first define a function to compute the (binary) logistic choice probabilities.

f <- function(ind) {
  x <- coeffs[1] + 
    partworth$brand[ind[1]] + 
    partworth$capacity[ind[2]] + 
    partworth$price[ind[3]] + 
    partworth$shape[ind[4]]
  return(1/(1+exp(-x)))
}

decision.prob <- c(f(c(1,1,2,1)),
                   f(c(3,3,3,2)),
                   f(c(3,1,2,1)),
                   f(c(3,2,2,1))
                   )
100*as.numeric(decision.prob)
[1] 41.91009 14.97047 91.65424 46.50612
LS0tDQp0aXRsZTogJ0Nhc2UgSTogVGhlIExhdW5jaCBvZiBTdXBlciBCb2NrIE1pbmknDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgdGhlbWU6IGpvdXJuYWwNCiAgICBkZl9wcmludDogdGliYmxlDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50Og0KICAgIGRmX3ByaW50OiBwYWdlZA0KLS0tDQoNCiMjIyAqKlBsZWFzZSBkb3dubG9hZCBhbmQgbG9hZCBkYXRhICJzdXBlcl9ib2NrX21pbmkuUmRhdGEiIGZyb20gQ2FudmFzLioqIA0KYGBge3J9DQpoZWFkKGRhdGEpDQpgYGANCg0KDQojIyMgKipUbyBFc3RpbWF0ZSB0aGUgQmluYXJ5IENob2ljZSBNb2RlbCoqDQoNCmBgYHtyfQ0KbWRsIDwtIGdsbShjaG9pY2UgfiBwcmljZSArIGJyYW5kICsgY2FwYWNpdHkgKyBzaGFwZSwgZmFtaWx5ID0gImJpbm9taWFsIiwgZGF0YSA9IGRhdGEpDQpyZXN1bHRzIDwtIHN1bW1hcnkobWRsKQ0KcmVzdWx0cw0KYGBgDQojIyMgKipUbyBPYnRhaW4gdGhlIFBhcnR3b3J0aHMqKg0KVGhyZWUgcnVsZXMgdG8gdHJhbnNmb3JtIHRoZSBjb2VmZmljaWVudHMgdG8gcGFydHdvcnRoczoNCg0KICAxLiBCYXNlbGluZSBsZXZlbHMgcGFydHdvcnRocyA9IDANCiAgMi4gSW5zaWduaWZpY2FudCBsZXZlbHMgcGFydHdvcnRocyA9IDANCiAgMy4gU2lnbmlmaWNhbnQgbGV2ZWxzIHBhcnR3b3J0aHMgPSBjb2VmZmljaWVudHMgIA0KXCAgICAgDQoNCkEgbGlzdCBjYWxsZWQgInBhcnR3b3J0aCIgaXMgbG9hZGVkIGZvciB0aGUgY29sbGVjdGlvbiBvZiBwYXJ0d29ydGhzLlwNCllvdSBtYXkgYWxzbyBjcmVhdGUgdGFibGVzIG9yIHZlY3RvcnMgZm9yIHBhcnR3b3J0aHMuDQpgYGB7cn0NCnBhcnR3b3J0aA0KYGBgDQpcDQoNCldlIG5lZWQgdG8gZmlyc3Qgc2V0IGluc2lnbmlmaWNhbnQgY29lZmZpY2llbnRzIHRvIHplcm9zLCB3aXRoIHRoZSBjdXRvZmYgb2YgcC12YWx1ZXMgYXMgMC4wNS4gDQpgYGB7cn0NCmNvZWZmcyA8LSByZXN1bHRzJGNvZWZmaWNpZW50c1ssMV0qKHJlc3VsdHMkY29lZmZpY2llbnRzWyw0XTwuMDUpDQpjb2VmZnMNCmBgYA0KXA0KDQpTZXQgdGhlIHBhcnR3b3J0aHMgYmFzZWQgb24gdGhlIHRyYW5zZm9ybWVkIGNvZWZmaWNpZW50cyAtICJjb2VmZiIuIA0KYGBge3J9DQpwYXJ0d29ydGgkYnJhbmRbMjozXSA8LSBjb2VmZnNbNTo2XQ0KcGFydHdvcnRoJGNhcGFjaXR5WzI6M10gPC0gY29lZmZzWzc6OF0NCnBhcnR3b3J0aCRwcmljZVsyOjRdIDwtIGNvZWZmc1syOjRdDQpwYXJ0d29ydGgkc2hhcGVbMjozXSA8LSBjb2VmZnNbOToxMF0NCnBhcnR3b3J0aA0KYGBgDQpcDQoNCk5leHQsIHdlIGV2YWx1YXRlIHRoZSA0IHN0cmF0ZWdpZXMgb2YgbmV3IHByb2R1Y3QgZGVzaWduczoNCg0KKiBUbyBhdHRhY2sgd2l0aCBDcmlzdGFsIGxvbmctbmVjayBzaGFwZSAyMDBtbCBwcmljZWQgYXQgNTAgY2VudHMNCiogVG8gYXR0YWNrIHdpdGggU3VwZXIgQm9jayByb2NrZXQgc2hhcGUgMzMwbWwgcHJpY2VkIGF0IDYwIGNlbnRzDQoqIFRvIGxhdW5jaCBhIFN1cGVyIEJvY2sgbG9uZy1uZWNrIHNoYXBlIDIwMG1sIHByaWNlZCBhdCA1MCBjZW50cw0KKiBUbyByZS1sYXVuY2ggYSBTdXBlciBCb2NrIGxvbmctbmVjayBzaGFwZSAyNTBtbCBwcmljZWQgYXQgNTAgY2VudHMNClwNCg0KV2UgZmlyc3QgZGVmaW5lIGEgZnVuY3Rpb24gdG8gY29tcHV0ZSB0aGUgKGJpbmFyeSkgbG9naXN0aWMgY2hvaWNlIHByb2JhYmlsaXRpZXMuIA0KYGBge3J9DQpmIDwtIGZ1bmN0aW9uKGluZCkgew0KICB4IDwtIGNvZWZmc1sxXSArIA0KICAgIHBhcnR3b3J0aCRicmFuZFtpbmRbMV1dICsgDQogICAgcGFydHdvcnRoJGNhcGFjaXR5W2luZFsyXV0gKyANCiAgICBwYXJ0d29ydGgkcHJpY2VbaW5kWzNdXSArIA0KICAgIHBhcnR3b3J0aCRzaGFwZVtpbmRbNF1dDQogIHJldHVybigxLygxK2V4cCgteCkpKQ0KfQ0KDQpkZWNpc2lvbi5wcm9iIDwtIGMoZihjKDEsMSwyLDEpKSwNCiAgICAgICAgICAgICAgICAgICBmKGMoMywzLDMsMikpLA0KICAgICAgICAgICAgICAgICAgIGYoYygzLDEsMiwxKSksDQogICAgICAgICAgICAgICAgICAgZihjKDMsMiwyLDEpKQ0KICAgICAgICAgICAgICAgICAgICkNCjEwMCphcy5udW1lcmljKGRlY2lzaW9uLnByb2IsZGlnaXRzKQ0KYGBgDQoNCg0KDQo=