百科问答小站 logo
百科问答小站 font logo



谁能简单解释一下经济学中的BLP模型? 第1页

  

user avatar   econjames 网友的相关建议: 
      

BLP 是Berry, Levinson和Pakes三个作者名字的缩写,这个模型是由他们在1995年的Econometrica论文提取出来的(Berry(1994)算是奠定了基础)。我来试着讲讲好了。


模型结构

BLP又叫Random coefficient logit model,其中有两个部分:random coefficient和logit。假设消费者选择产品j的效用函数是

其中 是产品的特征(比如在汽车市场就是性能,大小,品牌等等), 是价格, 是对应这两个变量的系数。和普通的logit model区别在于, 在不同消费者之间可以不同(比如张三更在乎性能,而李四不太在乎性能)。为了加入这种偏好差异同时不加入过强的假设,我们假设他们的形式是

其中 是两个常数,而 是期望为0的随机变量,所以这个模型是random coefficient。对于 的分布假设,一般会直接取正态分布然后估计他们的standard deviation;对于价格系数这种肯定为负的系数,可以把它的随机部分假设为log normal来保证符号不会变化。

至于叫logit model的原因在于效用函数里的 一般假设为GEV分布。


适用范围

首先,消费者的效用偏好要有明显的不同,像汽车的例子里面不同的人对于性能,大小这些指标明显有不同的偏好。如果这个假设不成立,比如在超跑市场里大家普遍关注速度,马力这些指标,偏好会差不多,那你大可使用logit model来简化计算。

第二,数据为市场份额。比如说还是汽车市场,如果你能拿到丰田凯美瑞,本田雅阁这种车型在某一年的销售份额这种数据,那你就可以用BLP。但是如果你拿到的是个人销售记录,比如张三买了丰田凯美瑞,李四买了本田雅阁,那么你当然还是可以求每辆车型的市场份额然后去用BLP,但是这样就太暴殄天物了……对于个人层面的数据可以更直接的计算random coefficient。

第三,模型尽量是非动态模型。BLP已经有两层iteration,在计算上很耗时间,如果再加上动态模型,比如耐用品,或者serially correlated cost这种情况,就相当于又加上了一到两层iteration,跑起来简直遥遥无期。


Computation

假设你的效用模型已经搭建好了,数据处理完了而且也符合使用范围,那么该如何估算参数呢?

首先,从效用函数出发,给定一组参数值 ,就可以计算出每一个商品的市场销售份额 。那么聪明如你一定会想到,只要找到让 和实际市场销售份额 接近的参数不就完了么?也就是

厉害!这样做在原理上的确行得通,但是实际操作上会有一些问题。在一般的例子里面,需要估计的参数会有很多,比如对于每一个产品特征的偏好,价格偏好,还有可能的品牌效应等等。而不管使用哪一种搜索算法,多一个参数就会多一个搜索维度,时间也会相应的延长很多很多,所以除非参数数量很少,否则这个算法是不推荐的。


那么该怎么估测这些参数呢?BLP把它分解成了两步:

  1. 通过拟合市场份额来估计非线性参数
  2. 通过GMM来估计线性参数

什么是线性和非线性参数?简单的来讲就是在估计的目标函数里,参数是否为线性。在这里,一般只有上面提到的 是线性的。之所以要区别开是因为线性函数的估计更简单。

  1. 通过拟合市场份额来估计非线性参数

消费者i选择产品j的概率为

产品j的市场份额就可以通过加总个人选择概率来得到

假设 是固定的,BLP定义了一个market share inversion contraction mapping,

其中 是消费者效用中的非随机部分, 是非线性参数。对于每一个 ,不断更新迭代直到迭代前后的差别很小,这样就找到了一个 和对应的simulated market share 。


2. 通过GMM来估计线性参数

在获得 之后, ,也就是unobservable就可以表示成 。那么只需要找到跟 垂直的工具变量就可以把 估算出来。因为 一般代表的是消费者对于品牌和其他产品特征的偏好,所以可以用地理位置这种跟品牌偏好无关,但是会影响价格这类变量来做工具变量。用 来表示工具变量,那么 ,GMM的估计方程就是 (其中 是Variance-covariance matrix, 可以先估算 ,然后用参数的Hessian矩阵来替代)。

在获得 的估计值后,GMM的方程值也能求出来,这也就是第一步中非线性参数对应的目标方程值。回到第一步里用不同的 再试,然后不断重复整个过程,直到这一目标方程值无法再减小为止

虽然两步迭代看起来很复杂,其实整个计算里面最耗时的是求mean utility 时的迭代。一般而言这个迭代速度不会很快,可能100次迭代之后 才下降了0.01不到。Nevo (2000)在附录里面介绍了一个办法:在最开始的时候把 的threshhold定为10^-10,然后在迭代100次以后每迭代50次就把这个threshold放宽10倍(比如到150次的时候变成10^-9)。这样一来每次迭代之后要么保证得到的 足够准确,要么已经迭代了相当次数,没必要继续在当前的参数值下面浪费时间。




其他

这里说的还是太简略了。如果只是想了解BLP是怎么做的,可以看看Nevo在2000年写的A Practitioner’s Guide to Estimation of Random-Coefficients Logit Models of Demand。如果想更系统的了解的话可以看看各个学校的lecture notes。

我能找到的notes,欢迎大家补充:

Matt Shum, Economics 223b: Empirical Methods for Industrial Organization

Victor Aguirregabiria, Empirical Industrial Organization: Models, Methods, and Applications


user avatar   edwin_hao_qing_han 网友的相关建议: 
      

蟹邀,实话讲这是一个很难简单讲讲的问题。一般在国外比较好的大学的博士阶段的课程中BLP model 都可以讲个两三节课才能讲清楚,而且下面的学生也往往是听个一知半解。其缘由是要理解BLP 首先理解的脉络应该是Logit/probit 其次到Multinomial Logit, nested Logit,再到random coefficient model,再到BLP model换而言之BLP model相当于集了个大成,其中还有很多computational issues。关于之前脉络的问题 请参见Train的Discrete choice methods with similation。上文所提及的方法里面已经描述得很详尽。关于BLP model 我这里就说个简化版 以供参考。我们在现实生活中看到N个Market的百事可乐和可口可乐的销量。我们想知道每个market中购买百事可乐或者可口可乐的人的utility function是怎么样的,或者说他们的价格弹性是怎么样的。相比传统的discrete choice model可以看到每个人的0,1选择而言,这次我们只能看到market share。BLP简化版的操作方式就是在Logit error假设的情况下,假设可口可乐的market share是s1 百事可乐是s0,可以简单证得购买可口可乐的 Utility就是log(s1)-log(s0)。即我们可以通过inverse market share得到Utility function的值,然后把它看作Y变量,直接暴力估计utiltiy function。这就是BLP model的简单版,希望你可以借此意会,这么说是不是看上去很简单?当然在大多数情况下我们是无法直接简单暴力估计的,因为无法通过简单inverse market share的话我们只能通过simulated moment的方法来估计模型,那样会使得估计异常复杂和耗费时间。




  

相关话题

  韩国经济奇迹过程中,工人受到了哪些非人道待遇? 
  从生产过程和全生命周期的角度,国内光伏企业的污染严重吗? 
  为什么美国人口相对它的国土面积那么低? 
  为什么政府立法禁止高利贷? 
  假设有个游戏,你可以无偿获得五千元,但有百万分之一的几率会当场毙命。那么你会玩多少次游戏? 
  立陶宛靠什么维持近2万美元的人均GDP? 
  索罗斯 1998 年狙击香港是成功了还是失败了? 
  专家称「要达到 2030 年控烟目标,卷烟价格要达到每包 59 元」,2030 年控烟目标如何实现? 
  为什么在大学一边批判资本主义,又要学习西方经济学??? 
  2016 年诺贝尔经济学奖得主的契约理论对于国企改革有哪些借鉴意义? 

前一个讨论
但使龙城飞将在中的飞将是指卫青还是李广?
下一个讨论
电影里比较好的追逐戏有哪些?





© 2024-05-09 - tinynew.org. All Rights Reserved.
© 2024-05-09 - tinynew.org. 保留所有权利