Bank Card Conjoint Data
A panel dataset from a conjoint experiment in which two partial profiles of credit cards were presented to 946 respondents from a regional bank wanting to offer credit cards to customers outside of its normal operating region. Each respondent was presented with between 13 and 17 paired comparisons. The bank and attribute levels are disguised to protect the proprietary interests of the cooperating firm.
data(bank)
The bank
object is a list containing two data frames. The first, choiceAtt
, provides choice attributes for the partial credit card profiles. The second, demo
, provides demographic information on the respondents.
In the choiceAtt
data frame:
...$id |
respondent id |
...$choice |
profile chosen |
...$Med_FInt |
medium fixed interest rate |
...$Low_FInt |
low fixed interest rate |
...$Med_VInt |
variable interest rate |
...$Rewrd_2 |
reward level 2 |
...$Rewrd_3 |
reward level 3 |
...$Rewrd_4 |
reward level 4 |
...$Med_Fee |
medium annual fee level |
...$Low_Fee |
low annual fee level |
...$Bank_B |
bank offering the credit card |
...$Out_State |
location of the bank offering the credit card |
...$Med_Rebate |
medium rebate level |
...$High_Rebate |
high rebate level |
...$High_CredLine |
high credit line level |
...$Long_Grace |
grace period |
The profiles are coded as the difference in attribute levels. Thus, that a "-1" means the profile coded as a choice of "0" has the attribute. A value of 0 means that the attribute was not present in the comparison.
In the demo
data frame:
...$id |
respondent id |
...$age |
respondent age in years |
...$income |
respondent income category |
...$gender |
female=1 |
Allenby, Gregg and James Ginter (1995), "Using Extremes to Design Products and Segment Markets," Journal of Marketing Research, 392–403.
Appendix A, Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.
http://www.perossi.org/home/bsm-1
data(bank) cat(" table of Binary Dep Var", fill=TRUE) print(table(bank$choiceAtt[,2])) cat(" table of Attribute Variables", fill=TRUE) mat = apply(as.matrix(bank$choiceAtt[,3:16]), 2, table) print(mat) cat(" means of Demographic Variables", fill=TRUE) mat=apply(as.matrix(bank$demo[,2:3]), 2, mean) print(mat) ## example of processing for use with rhierBinLogit if(0) { choiceAtt = bank$choiceAtt Z = bank$demo ## center demo data so that mean of random-effects ## distribution can be interpreted as the average respondent Z[,1] = rep(1,nrow(Z)) Z[,2] = Z[,2] - mean(Z[,2]) Z[,3] = Z[,3] - mean(Z[,3]) Z[,4] = Z[,4] - mean(Z[,4]) Z = as.matrix(Z) hh = levels(factor(choiceAtt$id)) nhh = length(hh) lgtdata = NULL for (i in 1:nhh) { y = choiceAtt[choiceAtt[,1]==hh[i], 2] nobs = length(y) X = as.matrix(choiceAtt[choiceAtt[,1]==hh[i], c(3:16)]) lgtdata[[i]] = list(y=y, X=X) } cat("Finished Reading data", fill=TRUE) Data = list(lgtdata=lgtdata, Z=Z) Mcmc = list(R=10000, sbeta=0.2, keep=20) set.seed(66) out = rhierBinLogit(Data=Data, Mcmc=Mcmc) begin = 5000/20 summary(out$Deltadraw, burnin=begin) summary(out$Vbetadraw, burnin=begin) ## plotting examples if(0){ ## plot grand means of random effects distribution (first row of Delta) index = 4*c(0:13)+1 matplot(out$Deltadraw[,index], type="l", xlab="Iterations/20", ylab="", main="Average Respondent Part-Worths") ## plot hierarchical coefs plot(out$betadraw) ## plot log-likelihood plot(out$llike, type="l", xlab="Iterations/20", ylab="", main="Log Likelihood") } }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.