D7. HHI-赫芬达尔指数

整理: 胡世亮 (河海大学商学院)
邮箱:

在经济学领域,赫芬达尔指数具有非常广泛的应用。比如,在产业经济学领域,我们经常利用赫芬达尔指数来计算行业的集中度,或者在某一个行业内部竞争的程度;在微观经济学领域,我们也经常利用赫芬达尔指数来计算收入的不均等性。

1. 赫芬达尔指数 (HHI) 简介

赫芬达尔-赫希曼指数 (Herfindahl-Hirschman Index,简称 HHI) ,简称赫芬达尔指数,是一种测量产业集中度的综合指数。它是指一个行业中各市场竞争主体所占行业总收入或总资产百分比的平方和,用来计量市场份额的变化,即市场中厂商规模的离散度。

另参见 百度百科:HHI指数

赫芬达尔指数的计算方法具体如下:

如果,

\(X\) —— 市场的总规模 = (\(x_1\) + \(x_2\) + \(x_3\) + … + \(x_N\))

\(N\) —— 该产业内的企业数

\(x_i\) —— 第 \(i\) 个企业的规模

\(s_i\) \(= \dfrac{x_i}{X}\) —— 第 \(i\) 个企业的市场占有率

那么,

\[\text{HHI} = \sum_{i=1}^N s_i^2 = (s_1^2 + s_2^2 + ... + s_N^2)\]

2. 采用 Stata 手动计算 HHI

首先,我们可以采用 egen 命令提供的 pc 函数和 total 函数手动计算赫芬达尔指数 HHI。

首先,针对全样本,计算 “行业-年度” 层面的 HHI 指数。

这里,我们采用 1968 年美国年轻女性 (14-26岁) 纵向调查数据集 nlswork.dta 进行演示。

webuse "nlswork.dta", clear
gen sale = ln_wage
    
sort   ind_code year
browse ind_code year sale
    
bysort ind_code year: egen pc_sale = pc(sale)
bysort ind_code year: egen hhi = total(pc_sale^2)

Comments:

  • 如何计算 HHI5 , 即行业内前五名的 HHI ?

  • 部分行业中的公司数量过少如何解决?

3. 使用 hhi5 命令计算 HHI

更为便捷的方法是,我们直接采用连玉君老师编写的命令 hhi5 计算赫芬达尔指数 HHI。

由于 hhi5 命令是外部命令,需要采用 finditssc install 命令下载安装。

ssc install hhi5, replace

接下来,我们可以键入 help hhi5 查看一下 hhi5 命令的帮助。

help hhi5

hhi5 的基本语法

hhi5 varlist [if] [in], by(groupvar) 
     [ prefix(str) top(#) mimobs(#) 
       percentage outfile(str) 
       replace noexpand 
     ]

其中,by(groupvar)hhi5 命令的必选项。下表为 hhi5 命令的选项解释。

选项 含义
by(groupvar) 设定分组变量,必选项
prefix(str) 设定新生成变量的前缀,默认为 hhi_
top(#) 设定采用每个分组内最高的 # 个值参与计算
mimobs(#) 设定参与计算的每个分组的最少观测值数量
percentage 设定采用百分数的形式
outfile(str) 设定将计算结果数据输出为 csv 格式的数据
replace 设定替换原变量
noexpand 设定严格采用 top(#) 选项或 mimobs(#) 选项限定后的子样本参与计算,默认是拓展为全样本

然后,我们还是采用数据集 nlswork.dta 举例演示。

use "nlswork.dta", clear
gen sale = ln_wage

(1) 采用行业-年度分组,并设定 percentage 选项

hhi5 sale, by(ind_code year) percentage //产生新变量: hhi_sale
br ind_code sale hhi_sale

(2) 采用每个分组中 sale 排名前 5 的观测值,并设定 prefix 选项

hhi5 sale, by(ind_code year) top(5) prefix(hhi5)
br ind_code year sale hhi*

(3) 在(2)的基础上,进一步设定每个分组中的观察值个数大于 2

hhi5 sale, by(ind_code year) top(5) prefix(hhi5_2) minobs(2) 
br ind_code year sale hhi*
*-Note: 注意第 242 行的变化

(4) 在(2)的基础上,进一步设定不扩充至 top5 以外的观察值

hhi5 sale, by(ind_code year) top(5) prefix(HHI) noexpand
br ind_code year hhi* HHI*

Comments:

  • hhi5 可以一次性计算多个变量的 HHI 指数

  • 附加的 percentage 选项得到的 HHI 指数将放大 10000 倍

4. 总结

连玉君老师编写的 hhi5 命令提供了非常丰富和灵活的选项设定,我们之后在计算赫芬达尔指数 HHI 时,可以直接使用。