Household Panel Data on Margarine Purchases
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.
http://www.perossi.org/home/bsm-1
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) } }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.