D7. HHI-赫芬达尔指数
整理: 胡世亮 (河海大学商学院)
邮箱: hushiliang2009@yeah.net
在经济学领域,赫芬达尔指数具有非常广泛的应用。比如,在产业经济学领域,我们经常利用赫芬达尔指数来计算行业的集中度,或者在某一个行业内部竞争的程度;在微观经济学领域,我们也经常利用赫芬达尔指数来计算收入的不均等性。
1. 赫芬达尔指数 (HHI)简介
赫芬达尔指数(Herfindahl-Hirschman Index, HHI)是衡量市场集中度的一种常用指标,通常用于评估市场竞争程度。它反映了市场中各个参与者的市场份额分布情况,值越高意味着市场集中度越高,竞争越少,反之则说明市场竞争越激烈。
计算方法
赫芬达尔指数的计算公式如下:
\[\text{HHI} = \sum_{i=1}^N s_i^2 = (s_1^2 + s_2^2 + \dots + s_N^2)\]
其中: - \(N\) 表示市场中的参与者数量; - \(s_i\) 是第 \(i\) 个参与者的市场份额,通常以百分比表示(如 10% 为 0.10)。
当我们拥有每家公司的销售额数据 \(x_i\) 时,首先计算市场总规模 \(X = x_1 + x_2 + \dots + x_N\),进而计算每个企业的市场占有率 \(s_i = \dfrac{x_i}{X}\),然后将其带入 HHI 计算公式即可。
指数含义
市场集中度: 赫芬达尔指数的值介于 0 到 10,000 之间。如果市场中只有一个公司主导且占据 100% 的市场份额,那么赫芬达尔指数的值为 10,000,表示市场完全垄断。若市场中参与者众多且市场份额较为均匀,则赫芬达尔指数接近于 0,表示完全竞争。
竞争程度:
- 当 HHI 值接近 10,000 时,市场呈现高度集中,竞争较弱;
- 当 HHI 值低于 1,500 时,市场通常被认为是高度竞争的;
- 当 HHI 值在 1,500 到 2,500 之间时,市场属于中等集中度。
示例
假设一个市场中有 4 家公司,它们的市场份额分别为 50%、30%、15% 和 5%。赫芬达尔指数的计算过程如下:
\[\text{HHI} = (0.50^2 + 0.30^2 + 0.15^2 + 0.05^2) = 0.365\]
为了得到 HHI 的标准值(0 到 10,000),通常将结果乘以 10,000:
\[\text{HHI} = 0.365 \times 10,000 = 3,650\]
这表明该市场有中等的市场集中度。
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
year sale
browse ind_code
bysort ind_code year: egen pc_sale = pc(sale)
bysort ind_code year: egen hhi = total(pc_sale^2)
大家可以思考一下如下两个问题 (可以问问 ChatGPT 或 DeepSeek):
- 如何计算 HHI5 , 即行业内销售额排名前五企业的 HHI ?
- 如果部分行业中的公司数量非常少 (比如只有 2-3 家,甚至只有一家) 如何解决?
下面要介绍的 hhi5
命令可以很好地应对这两个问题。
3. 使用 hhi5
命令计算 HHI
更为便捷的方法是,我们直接采用连玉君老师编写的命令 hhi5
计算赫芬达尔指数 HHI。
由于 hhi5
命令是外部命令,需要采用ssc install
命令下载安装。
ssc install hhi5, replace
接下来,我们可以键入 help hhi5
查看一下 hhi5
命令的帮助。
help hhi5
hhi5
的基本语法
varlist [if] [in], by(groupvar)
hhi5 prefix(str) top(#) mimobs(#)
[ outfile(str)
percentage 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
选项
by(ind_code year) percentage //产生新变量: hhi_sale
hhi5 sale, br ind_code sale hhi_sale
(2) 采用每个分组中 sale 排名前 5 的观测值,并设定 prefix
选项
by(ind_code year) top(5) prefix(hhi5)
hhi5 sale, year sale hhi* br ind_code
(3) 在 (2) 的基础上,进一步设定每个分组中的观察值个数大于 2
by(ind_code year) top(5) prefix(hhi5_2) minobs(2)
hhi5 sale, year sale hhi*
br ind_code *-Note: 注意第 242 行的变化
(4) 在 (2) 的基础上,进一步设定不扩充至 top5 以外的观察值
by(ind_code year) top(5) prefix(HHI) noexpand
hhi5 sale, year hhi* HHI* br ind_code
评述:
hhi5
可以一次性计算多个变量的 HHI 指数- 附加的
percentage
选项得到的 HHI 指数将放大 10000 倍
4. 扩展阅读
- 杜孟凡, 2021, Stata:各类集中度指数估算-广义基尼Gini系数, 连享会 No.519.
- 连小白, 2025, 同伴效应研究中的关键指标:Peer Mean 的计算方法, 连享会 No.1560.
- Hong, L., Alfani, G., Gigliarano, C., & Bonetti, M. (2018). Giniinc: A Stata Package for Measuring Inequality from Incomplete Income and Survival Data. The Stata Journal, 18(3), 692–715. Link, PDF, Google.