margarine | R Documentation |
Panel data on purchases of margarine by 516 households. Demographic variables are included.
data(margarine)
The detailing
object is a list containing two data frames, choicePrice
and demos
.
In the choicePrice
data frame:
...$hhid | household ID |
...$choice | multinomial indicator of one of the 10 products |
The products are indicated by brand and type.
Brands:
...$Pk | Parkay |
...$BB | BlueBonnett |
...$Fl | Fleischmanns |
...$Hse | house |
...$Gen | generic |
...$Imp | Imperial |
...$SS | Shed Spread |
Product type:
...$_Stk | stick |
...$_Tub | tub |
In the demos
data frame:
...$Fs3_4 | dummy for family size 3-4 |
...$Fs5 | dummy for family size >= 5 |
...$college | dummy for education status |
...$whtcollar | dummy for job status |
...$retired | dummy for retirement status |
All prices are in U.S. dollars.
Allenby, Greg and Peter Rossi (1991), "Quality Perceptions and Asymmetric Switching Between Brands," Marketing Science 10, 185–205.
Chapter 5, Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.
data(margarine)
cat(" Table of Choice Variable ", fill=TRUE)
print(table(margarine$choicePrice[,2]))
cat(" Means of Prices", fill=TRUE)
mat=apply(as.matrix(margarine$choicePrice[,3:12]), 2, mean)
print(mat)
cat(" Quantiles of Demographic Variables", fill=TRUE)
mat=apply(as.matrix(margarine$demos[,2:8]), 2, quantile)
print(mat)
## example of processing for use with 'rhierMnlRwMixture'
if(0) {
select = c(1:5,7) ## select brands
chPr = as.matrix(margarine$choicePrice)
## make sure to log prices
chPr = cbind(chPr[,1], chPr[,2], log(chPr[,2+select]))
demos = as.matrix(margarine$demos[,c(1,2,5)])
## remove obs for other alts
chPr = chPr[chPr[,2] <= 7,]
chPr = chPr[chPr[,2] != 6,]
## recode choice
chPr[chPr[,2] == 7,2] = 6
hhidl = levels(as.factor(chPr[,1]))
lgtdata = NULL
nlgt = length(hhidl)
p = length(select) ## number of choice alts
ind = 1
for (i in 1:nlgt) {
nobs = sum(chPr[,1]==hhidl[i])
if(nobs >=5) {
data = chPr[chPr[,1]==hhidl[i],]
y = data[,2]
names(y) = NULL
X = createX(p=p, na=1, Xa=data[,3:8], nd=NULL, Xd=NULL, INT=TRUE, base=1)
lgtdata[[ind]] = list(y=y, X=X, hhid=hhidl[i])
ind = ind+1
}
}
nlgt = length(lgtdata)
## now extract demos corresponding to hhs in lgtdata
Z = NULL
nlgt = length(lgtdata)
for(i in 1:nlgt){
Z = rbind(Z, demos[demos[,1]==lgtdata[[i]]$hhid, 2:3])
}
## take log of income and family size and demean
Z = log(Z)
Z[,1] = Z[,1] - mean(Z[,1])
Z[,2] = Z[,2] - mean(Z[,2])
keep = 5
R = 20000
mcmc1 = list(keep=keep, R=R)
out = rhierMnlRwMixture(Data=list(p=p,lgtdata=lgtdata, Z=Z),
Prior=list(ncomp=1), Mcmc=mcmc1)
summary(out$Deltadraw)
summary(out$nmix)
## plotting examples
if(0){
plot(out$nmix)
plot(out$Deltadraw)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.