Advanced Quantitative Methods in Marketing

Fall 2008, Empirical Half


This course is built on the idea that "you don't understand it until you code it."


1. Course Schedule


Week 0: Optional preliminary session. Numerical optimization in matlab, and good coding habits.


Week 1: Overview, Introduction, and Review: Simulation, Drawing Random Numbers, GMM & MSM, interpreting parameter estimates, endogeneity, heterogeneity, limited v. full information approaches to estimation, aggregate v. individual level estimation.

Coding Assignment 1: Multinomial Probit

MATLAB: y.mat



Week 2: Heterogeneity. Kamakura and Russell (1989), Petrin (2002), Ackerberg (2001), Bajari, Fox, Kim and Ryan (2007).

Coding Assignment 2: Bajari et al. (2007). Prepared by TK Kim and Dinakar Jayarajan.

ASCII: rcl


Week 3: Endogeneity. Keane (2006), Berry (1994), Berry, Levinson and Pakes (1995), Nevo (2000), Petrin and Train (2006), Chintagunta, Dube, and Goh (2006)

Coding assignment 3: Berry (1994), BLP (1995), Petrin and Train (2006). Prepared by Abhishek Borah and Yi Zhu,

MATLAB: data_mnl

MATLAB: data_rcl


Week 4: Bayesian Estimation of Random Coefficients Logit Models. Yang, Chen and Allenby (2003), Jiang, Manchanda, and Rossi (2008), Chen and Yang (2007), Musalem, Bradlow, and Raju (2008).

Coding assignment: none.


Week 5: MPEC approach to estimation. Su and Judd (2008), Dube, Fox and Su (2008).

Coding assignment: use AMPL and NEOS to recover the parameters from data_rcl using the MPEC approach. Compare your coding time and computation time.


Week 6: Weibull model for count data. Bradlow, Fader, Adrian, and McShane (2008).

Coding assignment: Bradlow et al (2008). Prepared by Linli Xu.

MATLAB: data.mat

ASCII: data


Week 7: Matching. Becker (1973), Roth and Sotomayor (1990), Fox (2008), Yang (2006).

Coding assignment: Fox (2008). Under preparation by Minha Hwang and Bobby Zhou.

ASCII: match.txt, buyer_char.txt, target_char.txt



2. Student Deliverables.

Each student will prepare a paper. This preparation requires three steps:
1) Write down the essential model in a set of equations and identify a set of critical parameters. Write a brief document (Word or LaTEX) and send it to the instructor for approval. The deadline to send this is five days prior to the class in which we will discuss that paper.
2) Write matlab code to generate simulated data from this model, based on a set of distributional assumptions and known parameters. Write matlab code to recover the known parameters you used to generate the simulated data. Send both sets of code to the instructor for approval. The deadline to send this is two days prior to the class in which we will discuss the paper.

Note, there is no requirement for the student to present the paper in class.

The second set of deliverables will be weekly coding assignments. The purpose of these assignments will be to recover the known parameters that generated that week's simulated data. Students may work individually or in pairs to recover those parameters. The due date for each assignment is the following week's class. You will turn in your parameter guesses and your code. (TIP: do not wait until the last minute. Your code will need time to converge. The smart thing would be to start working each week immediately after the assignment is made.)

Many authors provide estimation code on their personal websites. Students may use this code in any manner they see fit.

Students may use any programming language they wish. Having said this, the use of matlab is strongly encouraged, for three reasons. 1) There is a positive network externality of using matlab within the structural modeling community. 2) The instructor is most familiar with matlab and can provide maximally helpful feedback on matlab code. 3) Graduate school is pretty much your last chance to develop bilingual programming skills; there are strong lock-in effects in this market. 4) While other packages may run faster than Matlab, Matlab compares favorably when you write efficient (vectorized) code and, more importantly, has very good documentation. Human time is more valuable than CPU time.

These coding assignments will likely take significant amounts of time outside class. Therefore you are not required to develop an empirical research proposal, you are not required to present your paper in class, and you are not required to read the associated material prior to class. You are free and encouraged to do any or all of these things according to your interests and needs, but they are not required and will not be assumed.