io19
Advanced Studies in Industrial Organization (212.669) Fall 2019
Course web page: https://sites.google.com/site/oyvindthomassen/io19
Lectures:
Mondays 9.30 - 12.20, room 105, building 16.
First lecture, Monday 2 September.
Exam date:
Monday 9 December during class hours.
Aim:
To introduce methods for demand estimation commonly used in empirical industrial organization, and programming (in Matlab) to implement these methods.
Prerequisites:
No particular background knowledge in industrial organization or programming is needed. Basic familiarity with concepts from econometrics, such as generalized method of moments and maximum likelihood, is useful, although an introduction will be provided in the lectures.
Grading:
Final written exam 100%
Lecture plan
Lecture 1 --- 2 September
Introduction: about structural models
Lecture 2 --- 9 September
About identification in linear models and definition of GMM
Lecture 3 --- 16 September
Programming:
basic operations on scalars and arrays
function handles
function files
a simple example of OLS
code (the function files are included at the end of the script, from line 236, just before the homework)
Lecture:
OLS as an example of GMM
slides for lectures 2 - 4
For next week:
Do the homework the end of the code (script1.m) file. No need to hand in your solutions; I will go through the solutions in the next lecture.
Download data in both (.txt format) and (.xlsx format) from the Porter (1983) paper to a folder on your computer. We will use these in class next week or the week after.
Lecture 4 --- 23 September
Programming:
logical statements / variables
if-else statements
for loops
while loops
uploading data to Matlab
code
Lecture:
2SLS, linear model with panel data, multiple equations linear model; all as examples of GMM
slides for lectures 2 - 4
For next week:
Do the homework at the end of the code (script2.m) file.
The homework refers to equations in these lecture notes, that I introduced briefly at the end of the class.
Lecture 5 --- 30 September
Programming:
system 2SLS (as GMM) and linear GMM with optimal weighting matrix
numerical minimization
finite-difference derivatives
let analytical derivatives be second (optional, by using if nargout>1) output argument
code linearGmm.m for linear GMM
code script4.m for numerical minimization and finite-difference derivatives
Lecture:
only pointing out that linear GMM can also be done by numerically minimizing the GMM function, and calculating derivatives of moments with finite differences. This is the homework for next week.
For next week:
Do the homework at the end of the code (linearGmm.m) file.
The homework now mainly refers to the slides for lectures 2 - 4
Lecture 6 --- 7 October
Programming:
overview of code for GMM estimation with numerical minimization of objective function (and finite differences to calculate standard errors)
code gmm_porter.m
Lecture:
multinomial logit demand model
ln(s_j/s_0) method for finding xi in simple logit model
BLP instruments (functions of product characteristics of other products)
contraction mapping for finding xi: xi^(t+1) = xi^t + ln(s) - ln[P(xi^t)]
For next week:
Study all the Matlab code that we have covered so far.
The next lecture will be used in its entirety to catching up on programming - both what we have done earlier and the homework for this week: gmm_porter.m.
If you feel that the programming aspect of the course is perfectly under control and that more time going over the same code would be unnecessary, feel free to simply skip the next lecture.
Homework about a simple version of the BLP model will be postponed a little bit.
Lecture 7 --- 14 October
Programming:
reviewing the programming, especially from Lecture 5.
For next week:
study code gmm_porter.m
study section 5 in the new notes.
Lecture 8 --- 21 October
Programming:
reviewing the programming homework for Lecture 6.
Lecture:
Discrete-choice demand models (new notes on discrete choice + the material from lectures 1-4 on structural models, identification in simple regression model, large-sample theory and GMM).
For next week:
Download BLP_data.zip which contains several data files needed to replicate BLP (1995), and a Matlab function initial_preparation_blp_data.m with three outputs: [data,Table1_print,Table2_print] = initial_preparation_blp_data( ) , where data is a structure array with all necessary variables, and the last two replicates Table 1 and Table 2 in BLP. Check that this works. Please let me know if you are not able to open the zip file.
If you want you can already try to replicate Table 3 in BLP (p. 873): (i) in the standard way, using xi_j = log(s_j/s_0) - x_j*beta + alpha*p_j, to get a linear model, and (ii) using the contraction to find xi with a while-loop and numerically minimizing the GMM function with respect to all parameters.
Lecture 9 --- 28 October
Lecture:
contraction for finding xi
substitution patterns with and without random coefficients
concentrating out the linear parameters
Notes containing only the new material (section on BLP, plus two new subsection on other topics) - i.e. does not include the material from 11 October.
Notes containing new material and material from 11 October.
For next week:
Download BLP_data.zip which contains several data files needed to replicate BLP (1995), and a Matlab function initial_preparation_blp_data.m with three outputs: [data,Table1_print,Table2_print] = initial_preparation_blp_data( ) , where data is a structure array with all necessary variables, and the last two replicates Table 1 and Table 2 in BLP.
Replicate Table 3 in BLP (p. 873): (i) in the standard way, using xi_j = log(s_j/s_0) - x_j*beta + alpha*p_j, to get a linear model, and (ii) using the contraction to find xi with a while-loop and numerically minimizing the GMM function with respect to all parameters.
Lecture 10 --- 4 November
Lecture:
BLP
if time, start talking about Aviv Nevo (2001): Measuring Market Power in the Ready-to-Eat Cereal Industry, Econometrica
lecture notes (updated 2 November with new section on Nevo (2001) at the end, no other changes)
Programming:
Simple version of BLP model (no random coefficients) estimated with numerical minimization and while loop for contraction. Code: gmm_blp1.m
Some code for calculating choice probabilities in random coefficients logit model: random_coefficients_test.m
For next week:
Write code to estimate full BLP model.
Lecture 11 --- 11 November
Lecture:
Aviv Nevo (2001): Measuring Market Power in the Ready-to-Eat Cereal Industry, Econometrica
[Also have a look at this paper, which uses the same data/model/estimation, but for merger simulation: Aviv Nevo (2000): Mergers with Differentiated Products. The Case of the Ready-to-Eat Cereals Industry, Rand Journal of Economics]
Programming:
estimating the full BLP model
Lecture 12 --- 18 November
Lecture:
Austan Goolsbee and Amil Petrin (2004): The Consumer Gains from Direct Broadcast Satellites and the Competition with Cable TV, Econometrica
Programming:
Code for BLP model: gmm_blp2.m
Lecture 13 ---- 25 November
Lecture:
Matthew Gentzkow (2007): Valuing New Goods in a Model with Complementarity: Online Newspapers, American Economic Review
notes: Gentzkow_2007_notes.pdf
Lecture 14 --- 2 December
Lecture:
Øyvind Thomassen, Howard Smith, Stephan Seiler and Pasquale Schiraldi (2017): Multi-Category Competition and Market Power: A Model of Supermarket Pricing, American Economic Review
9 December - Final exam
Other lecture material:
draft (there may be errors) lecture notes with more detail; you don't have to read this, but you may use it to look up details not in the slides. Section 1 (until top of p. 5) contains the material from the first lecture.
Other material, on the models that we will learn to implement in Matlab:
Lecture notes on
linear demand and supply (Porter 1983)
BLP (1995); also Short introduction to BLP (about 10 slides)
including a warm-up version of the BLP model, without random coefficients
(and same content but in slides format)
Reading:
1. Background: structural models, discrete choice / logit models
Aviv Nevo and Michael Whinston (2010): Taking the Dogma out of Econometrics: Structural Modeling and Credible Inference, Journal of Economic Perspectives. [For a contrasting view on structural models, see Joshua Angrist and Jörn-Steffen Pischke (2010): The Credibility Revolution in Empirical Economics: How Better Research Design is Taking the Con out of Econometrics, Journal of Economic Perspectives]
Aviv Nevo (2011): Empirical Models of Consumer Behavior, Annual Review of Economics
Low and Meghir (2017): The Use of Structural Models in Econometrics, Journal of Economic Perspectives
Kenneth Train (2009): Discrete Choice Methods with Simulation ch. 1.1-1.2, 2.1-2.3, 3 (especially 3.1, 3.6, 3.7.1), 6.1-6.2, 6.4, 6.6, Cambridge University Press
2. The BLP (Berry, Levinsohn and Pakes, 1995) approach to demand estimation for differentiated products with product-level data
Steven Berry (1994): Estimating Discrete-Choice Models of Product Differentiation, RAND Journal of Economics
Steven Berry, James Levinsohn and Ariel Pakes (1995): Automobile Prices in Market Equilibrium, Econometrica
Classical guide to practical implementation: Aviv Nevo (2000): A Practitioner's Guide to Estimation of Random-Coefficients Logit Models of Demand, Journal of Economics and Management Strategy, and technical appendix to 'Practitioner's guide'.
[if you are interested, an up-to-date guide to implementing BLP, with companion code in the Python language, is Chris Conlon and Jeff Gortmaker (2019): Best Practices for Differentiated Products Demand Estimation with pyblp]
Aviv Nevo (2001): Measuring Market Power in the Ready-to-Eat Cereal Industry, Econometrica
3. Merger simulation
Aviv Nevo (2000): Mergers with Differentiated Products. The Case of the Ready-to-Eat Cereals Industry, Rand Journal of Economics
Nathan Miller and Matthew Weinberg (2017): Understanding the Price Effects of the Miller-Coors Joint Venture, Econometrica
4. BLP-style estimation with consumer-level data
Austan Goolsbee and Amil Petrin (2004): The Consumer Gains from Direct Broadcast Satellites and the Competition with Cable TV, Econometrica
5. Demand models where consumers can choose multiple alternatives that may be substitutes or complements
Matthew Gentzkow (2007): Valuing New Goods in a Model with Complementarity: Online Newspapers, American Economic Review
Øyvind Thomassen, Howard Smith, Stephan Seiler and Pasquale Schiraldi (2017): Multi-Category Competition and Market Power: A Model of Supermarket Pricing, American Economic Review
Instructions for installing Matlab on your computer:
1. Create an account on mathworks' webpage https://www.mathworks.com/mwaccount/register with your @snu.ac.kr email address as username and choose 'student use' under 'How will you use Mathworks software?'.
2. Information about campus license can be found at this link: http://board.snu.ac.kr/apiboard/575/10000000145560?langKnd=en under the download section. **This should be done on an SNU network (or any internal IP)**. In particular, you may need the license number that you can find in the instructions.
4. You should be able to download MATLAB from the Mathworks site, using the credentials you created in step 1.
5. During installation you will be asked to 'select products to install'. To speed up the installation (which might otherwise take quite long) you can uncheck everything *except* the following
MATLAB
Econometrics Toolbox
Financial Toolbox
Global Optimization Toolbox
Optimization Toolbox
Parallel Computing Toolbox
Statistics and Machine Learning Toolbox
Symbolic Math Toolbox