☰
2000-2024年各省产业结构合理化指数:干春晖泰尔指数完整复现与应用指南
2026/10/23 5:21:49 网站建设 项目流程

2000-2024年各省产业结构合理化指数:干春晖泰尔指数的完整复现与使用笔记

写实证论文的朋友应该都有同感:找数据的过程,往往比跑回归还折磨人。尤其做区域经济、产业经济方向的研究,产业结构合理化指数几乎是绕不开的核心变量。最近我整理完一份2000-2024年各省产业结构合理化指数数据,基于干春晖泰尔指数的方法测算,包含原始数据、计算过程和最终结果,而且做到了25年、31个省级行政区无缺失的平衡面板。这篇内容就把这套数据的来龙去脉、计算公式、实操复现步骤、实证应用技巧一次讲清楚。

如果你正打算用产业结构合理化指数做面板回归,或者想搞清楚这套指数到底怎么从三次产业产值和就业人数中算出来,这篇文章能帮你省下大量翻文献、找数据、对口径的时间。我会把计算细节、Excel和Stata/Python的操作路径、以及实际使用中容易踩的坑都摊开讲,尽量让新手也能按图索骥。

1. 产业结构合理化指数是什么,为什么大家都在找

1.1 一个指数回答三个关键问题

产业结构合理化,简单说就是各产业之间的比例关系是否协调、资源要素配置是否处于一种有效状态。做实证研究的时候,我们希望把这种“协调程度”变成一个可以放进模型里的数字,于是就需要一个量化指标。产业结构合理化指数做的是三件事:第一,衡量一个地区产业结构偏离均衡状态的程度;第二,让不同省份之间可以横向比较;第三,让同一个省份在不同年份之间可以纵向比较。

打个比方,体温计不会告诉你身体哪里出了问题,但它能告诉你体温偏离正常值多少,从而提醒你去做进一步检查。产业结构合理化指数就是经济结构状态的“体温计”,它不负责解释产业结构为什么不合理,但它能客观告诉你偏离程度有多大、方向是正还是负、趋势是改善还是恶化。对实证研究来说,这就足够支撑起一篇论文的核心变量了。

1.2 从泰尔指数到干春晖泰尔指数

很多人第一次接触这个指标是在文献综述里,大家习惯把它称作干春晖泰尔指数。这个叫法来源于国内产业经济学研究中的经典做法:采用泰尔指数的变形来度量产业结构合理化程度。泰尔指数本身是信息经济学中衡量收入分配差异的指标,后来被引入产业结构研究领域,用来刻画产业结构与就业结构之间的耦合程度。

更早的研究里,大家常用的是“产业结构偏离度”,也就是把每个产业的产值比重与就业比重的差的绝对值加总。这个指标直观但是有个明显缺点:它把各个产业的偏离等权相加,没有体现不同产业在整体经济中的重要程度。干春晖式泰尔指数则在偏离度基础上做了加权处理,以各产业的产值占比作为权重,这样既保留了偏离的思想,又让权重结构更贴近现实经济。这也是它在文献中被广泛采用的原因。

1.3 别和产业结构高级化指数搞混

做产业结构的实证研究时,通常会出现两个配套指标:合理化指数和高级化指数。很多初学者会把它们当成一回事,实际上它们回答的是完全不同的问题。合理化指数关注的是“结构是否均衡”,即产业间比例关系是否协调;高级化指数关注的是“结构是否升级”,通常用第三产业产值与第二产业产值的比值来衡量,比值越高说明经济服务化程度越高。

我在实际整理数据时,通常会把这两类指标同时准备好。因为论文里做基准回归时可能用合理化指数,做稳健性检验或机制分析时又会用高级化指数。两者相互补充,但不能互相替代。如果只准备一个,后期写文章时会很被动。

2. 数据覆盖范围与字段解读

2.1 25年跨度的平衡面板意味着什么

这套数据覆盖了2000年到2024年,一共25年。之所以从2000年开始,是因为从这一年起,全国各地区的三次产业就业统计口径才相对稳定,早年的数据存在较多缺失和口径差异。到2024年,刚好能覆盖过去一个完整的经济周期,包括高速增长期、结构调整期、外部冲击期等不同阶段。做面板回归时,这种时间跨度足以支撑固定效应模型和动态分析。

“无缺失”这三个字在面板数据里是非常值钱的。真正做过面板数据的人都知道,一旦某个省份某一年数据缺失,要么用插值法补,要么直接丢样本,前者涉及主观处理,后者损失平衡性。31个省级行政区25年完全无缺失,意味着可以直接设置面板结构而不需要额外填补,回归结果也更容易通过稳健性检验。

2.2 原始数据里到底包含哪些字段

这份数据的原始部分保留了计算指数所需的全部中间变量,字段包括:省份代码、省份名称、年份、地区生产总值、第一产业产值、第二产业产值、第三产业产值、全社会就业人员总数、第一产业就业人数、第二产业就业人数、第三产业就业人数。

这里需要特别提醒的是就业人数的统计口径。三次产业就业人数加总应该等于全社会就业人员总数,但实际整理时会发现早期年份的统计数据中两者经常对不上。我核对这套数据时发现,2000年前后少数省份的统计公报里,三次产业就业加总与总就业之间存在细微差异,后来通过同一年度不同统计来源的交叉核对把口径统一了。如果你打算自己从原始年鉴计算,务必要注意这个问题,否则指数会存在系统性偏差。

2.3 计算结果字段:不只是给一个最终数字

最终计算结果部分包含的字段比一般数据要多,包括:第一产业产值占比、第二产业产值占比、第三产业产值占比、第一产业就业占比、第二产业就业占比、第三产业就业占比、产业结构泰尔指数。

把中间变量保留下来,是为了让大家能验算,也方便在实际研究中做更细致的分析。比如你想研究第二产业内部的偏离情况,直接利用中间变量就能拆分。很多数据供应商只给一个最终指数,虽然能用,但遇到审稿人要求复核计算过程时就比较被动。保留全部中间计算字段,等于给论文加了一道保险。

2.4 统计来源与数据口径的处理原则

数据来源主要是各省级行政区公开出版的统计年鉴以及官方统计部门发布的历史数据。整理过程中遵循的原则是:凡是统计年鉴直接公布的数值,优先采用年鉴数值;年鉴未直接公布但可计算的,采用官方数据库的原始分项数据计算;不同来源数据存在冲突时,以发布时间更晚、覆盖范围更全的版本为准。

关于价格口径,这里有一个容易误解的点。计算产业结构占比时,分子分母都是同一个年份的当年价数据,价格水平在占比计算中会被抵消,所以用现价GDP和用不变价GDP计算的占比结果基本一致。但如果你要拿产业产值去和其他价格指数做交互项,就要特别注意统一基期。我在这套数据中统一采用当年价口径,并在文件中做了说明,方便使用者明确口径边界。

3. 计算原理:干春晖泰尔指数到底在算什么

3.1 从信息熵到经济结构均衡

泰尔指数的理论基础是信息理论中的熵概念。熵衡量的是一个系统的无序程度,泰尔把它引入经济学,用来衡量收入在群体间的分配差异。产业结构合理化指数借用同样的数学框架,把“收入份额”换成“产值份额”,把“人口份额”换成“就业份额”,从而衡量产值结构与就业结构之间的偏离程度。

这个迁移之所以成立,是因为一个理想的经济结构中,各产业应该具有大致相近的劳动生产率。如果某个产业的产值占比高于就业占比,说明该产业劳动生产率较高,吸收了较少劳动力却创造了较多产出;反之则说明该产业沉淀了大量劳动力但产出贡献相对偏低。产业结构合理化调整的过程,本质上就是让要素在产业之间流动,使得各个产业的劳动生产率趋于一致。

3.2 计算公式与变量定义

干春晖泰尔指数(产业结构合理化指数,通常记为 TL)的具体形式如下:

[ TL = \sum_{i=1}^{3} \left( \frac{Y_i}{Y} \right) \times \ln\left( \frac{Y_i / Y}{L_i / L} \right) ]

其中,( i ) 表示第一、第二、第三产业,( Y_i ) 表示第 ( i ) 产业的产值,( Y ) 表示地区生产总值,( L_i ) 表示第 ( i ) 产业的就业人数,( L ) 表示全社会就业人员总数。

从公式可以看出,如果某个产业的产值占比等于就业占比,那么 ( \frac{Y_i / Y}{L_i / L} = 1 ),对数项为 0,该产业对指数的贡献为 0。只有当产业间产值份额与就业份额完全一致时,TL 才等于 0,这是产业结构完全合理化的理论状态。现实经济几乎不可能达到这个状态,所以一般省区的 TL 值都是负数,表示结构偏离了均衡。

3.3 为什么用就业人数作为均衡基准

有朋友问过我,为什么不用资本存量或者投资结构作为比较基准。原因有两点。第一,就业数据在各省级统计年鉴中从世纪之交开始就有较为完整的分产业统计,而资本存量大多需要估算,不同估算方法的差异比较大,会影响指标的客观性。第二,从劳动生产率的视角看,产业结构调整的核心目标之一是充分就业与产出效率的统一,产值份额与就业份额的匹配度能够直接反映这种统一程度。

当然,这套指数也有局限性。它假定每个产业的“合理”就业份额应该等于其产值份额,这在产业结构差异较大的现实中略显理想化。但作为实证研究中的相对指标,它用来刻画时间趋势和地区差异是足够的。使用的时候不需要过于纠结理论假设的强与弱,关键是保证计算口径的一致性。

3.4 负数结果怎么解读

实际算出来的 TL 值基本都是负数。以我整理的这套数据为例,大多数省份的 TL 值集中在 -0.3 到 -0.1 之间,少数产业偏离明显的省份在某些年份会低于 -0.5。数值越接近 0,说明产业结构越合理;数值越偏离 0,说明结构越不合理。

因为负数的存在,实证操作中面临一个选择:是直接使用原始负数,还是取绝对值。我在数据中同时保留了“TL”和“TL_abs”两个字段。直接使用原始负数时,系数含义要解释为“对负偏离的改善程度”,相对绕一些。很多已发表文献会取绝对值,然后定义指数越大越不合理,加回归时再加负号处理成“越大越合理”。无论用哪种方式,只要保证方向解释清楚,回归结果在统计显著性上是一致的。

4. 从原始数据到最终指标:分步复现

4.1 拿到数据之后先别急着算

如果你是拿着自己的原始数据复现计算,第一步不是写公式,而是检查数据质量。我一般先做三件事:检查缺失值、统一单位、确认行业加总关系。

缺失值检查要逐省份、逐年份排查,尤其是就业数据。单位统一主要是产值的单位要一致,有的年鉴用亿元,有的用万元,千万不能混用。行业加总关系则是确认三次产业产值之和等于地区生产总值,三次产业就业人数之和等于全社会就业人员总数。只有这三项检查全部通过,计算出的指数才是可信的。

4.2 Excel 手把手复现步骤

用 Excel 复现并不复杂,适合只需要计算少量年份和省份的场景。核心思路是按照公式逐列生成中间变量。

第一步,在数据表中新建三列,分别计算第一、第二、第三产业产值占地区生产总值的比重,得到 Yi/Y。

第二步,新建三列,分别计算第一、第二、第三产业就业人数占全社会就业人员的比重,得到 Li/L。

第三步,对每个产业计算“产值占比除以就业占比”,再取自然对数,得到 ln((Yi/Y)/(Li/L))。

第四步,将每个产业的产值占比与上一步的对数值相乘,得到三个产业各自的贡献项。

第五步,把三个贡献项横向加总,即可得到当年的泰尔指数。

Excel 操作中一个常见问题是LN函数遇到 0 时会报错。产业就业占比为 0 的情况几乎不会出现,但产值占比在极个别早期年份可能因为统计异常接近 0,这时需要回头检查原始数据,而不是直接忽略。另一个实操细节是保留足够多的小数位,我建议至少保留 4 位小数,否则最终指数会损失精度。

4.3 Stata 复现代码

Stata 是处理面板数据最常用的工具,建议直接写循环批量生成。下面这段代码假设你已经把原始数据导入 Stata,变量名为 prov(省份)、year(年份)、Y1-Y3(三次产业产值)、L1-L3(三次产业就业人数)、Y(地区生产总值)、L(总就业)。

* 计算各产业产值占比 gen s1 = Y1 / Y gen s2 = Y2 / Y gen s3 = Y3 / Y * 计算各产业就业占比 gen w1 = L1 / L gen w2 = L2 / L gen w3 = L3 / L * 计算各产业贡献 gen t1 = s1 * ln(s1 / w1) gen t2 = s2 * ln(s2 / w2) gen t3 = s3 * ln(s3 / w3) * 加总得到产业结构合理化泰尔指数 egen TL = rowtotal(t1 t2 t3) * 生成绝对值版本 gen TL_abs = abs(TL) * 设置面板结构 xtset prov year

执行完这一步,你会发现 TL 基本都是负值。这里的rowtotal函数优点是遇到缺失值会自动按 0 处理,但如果某个产业数据本身确实缺失,它会静默补零,掩盖问题。所以我习惯在运行前先执行misstable summarize Y1 Y2 Y3 L1 L2 L3检查缺失情况,确保所有中间变量完整。

4.4 Python 复现示例

如果你习惯用 Python 处理数据,Pandas 的实现逻辑同样清晰。假设原始数据读入后为df,包含上述字段,代码如下:

import pandas as pd import numpy as np df = df.sort_values(['prov', 'year']).reset_index(drop=True) df['s1'] = df['Y1'] / df['Y'] df['s2'] = df['Y2'] / df['Y'] df['s3'] = df['Y3'] / df['Y'] df['w1'] = df['L1'] / df['L'] df['w2'] = df['L2'] / df['L'] df['w3'] = df['L3'] / df['L'] df['t1'] = df['s1'] * np.log(df['s1'] / df['w1']) df['t2'] = df['s2'] * np.log(df['s2'] / df['w2']) df['t3'] = df['s3'] * np.log(df['s3'] / df['w3']) df['TL'] = df[['t1', 't2', 't3']].sum(axis=1) df['TL_abs'] = df['TL'].abs()

Python 的优势是后续做分组描述、可视化、拼接其他宏观变量非常方便。如果后续要合并数字经济指数、城镇化率等控制变量,直接在 DataFrame 上用merge就能完成。我现在的处理流程基本都是 Python 清洗、Stata 回归,两者结合效率很高。

4.5 如何判断你算对了

复现计算最怕的就是算完不知道对不对。我通常用三个方法验证。

第一,人工抽算。随机挑一个省份的一个年份,用计算器按照公式手算一遍,比对结果。虽然麻烦,但能发现 Excel 公式引用错误、对数方向写反这类低级问题。

第二,与文献数值对比。已发表论文中报告的产业结构泰尔指数大多在 -0.5 到 0 之间,如果算出来的数值是正数且大于 0.1,那大概率是公式写反了,比如把 ln 项写成了产值占比减就业占比而不是比值的对数。

第三,观察趋势合理性。产业结构合理化应当与经济发展阶段相关,早期年份偏离程度大,后期随结构调整逐步改善。如果一个省份的指数呈随机波动,没有明显趋势,就要怀疑原始数据或者计算过程出了问题。

5. 拿到指数之后,实证还能怎么做

5.1 面板回归中的三种典型用法

产业结构合理化指数在实证模型中的角色,主要有三种。

第一种是作被解释变量。研究数字经济、金融发展、外商投资、环境规制等因素对产业结构合理化的影响时,TL 作为被解释变量进入模型。这种情况下一般建议使用 TL 或 TL_abs 的原始值,配合双向固定效应模型。

第二种是作核心解释变量。研究产业结构合理化对经济增长、碳排放、城乡收入差距的影响时,TL 作为解释变量进入模型。这时需要注意方向问题,有的文献用 TL 原始值,有的用 TL_abs 并加负号,两种做法解释不同但本质等价。

第三种是作分组变量或机制变量。比如按产业结构合理化程度的高低把样本分为两组,做异质性分析;或者在机制检验中把合理化指数作为中间变量纳入路径分析。

5.2 数据变换与标准化处理

很多人在模型里直接放入 TL,没有做任何变换。实际操作中,如果 TL 的绝对值较大,回归系数会非常小,展示上不方便,可以考虑乘 100 或者做标准化处理。标准化处理后的指数均值为 0、标准差为 1,解释成“相对平均水平每提高一个标准差,被解释变量变化多少单位”,更加直观。

如果 TL 是负数,取绝对值 TL_abs 后,数值越大代表越不合理。如果你希望指数越大代表越合理,则可以用-TL_abs构造反向指标。为了便于描述,我通常自己写一个变量TL_rev = -abs(TL),这样回归系数解释为合理化程度越高带来的影响,写作时更省事。

5.3 稳健性检验的替代指标

审稿人几乎必然会要求做稳健性检验,此时不能换汤不换药地换样本或换年份,最好换一个度量方式。产业结构合理化方面,常用的替代指标有两个。

第一个是产业结构偏离度,公式为各产业产值占比与就业占比之差的绝对值之和。这个指标更直观,便于解释,但它没有按产业产值份额加权,对二产、三产偏离的敏感度不同。不过我实际比对后发现,用偏离度和用泰尔指数跑回归,结论方向通常高度一致。

第二个是 Moore 结构变动指数,它衡量的是产业结构向量之间的夹角变化,本质上刻画的是结构变动速度而不是合理化程度,适合做“结构调整速度”的辅助检验。此外,数字经济、绿色转型研究的文献里,也有人用绿色全要素生产率作为合理化指数的间接验证指标。

6. 常见问题与避坑实录

6.1 “无缺失”凭什么能实现

你可能会好奇,2000年到2024年这么长的跨度,为什么能做到无缺失。最大的难点其实在早期就业数据上。2000年前后,部分省级行政区的第三产业就业人数没有单独公布,存在若干年断档。另外,1997年之后新的直辖市逐步走上独立统计轨道,早期的就业统计也出现过口径切换。

解决办法主要有三个:一是查找不同年份出版的统计年鉴,很多早期遗漏数据在后续年鉴中会以历史数据的形式补录;二是参考省级统计部门发布的历史数据库,按可比口径追溯;三是对极小范围的缺失采用相邻年份线性插值,并在数据文件中标注插值位置。这套数据里插值占比不到 1%,对实证结果的影响几乎可以忽略。

6.2 指数出现异常跳跃怎么办

整理数据的过程中,会碰到某些省份在某一年指数突然大幅变化的情况。比如某省在某个年份进行了就业统计口径调整,导致第三产业就业人数系统性变化,反映到 TL 上就是异常跳跃。

如果遇到这个问题,建议不要急着删样本。先查看该省前后几年的统计制度说明,判断是真实经济结构调整还是统计口径变化。如果是统计口径变化,可以在回归中加入省份与年份的交互项控制,或者在稳健性检验中剔除该省份该年份。如果确定是原始数据录入错误,才做更正处理。

6.3 就业分母到底用哪个指标

这是我在审核大量数据时发现的高频错误。计算产业就业占比时,分母必须用“全社会就业人员总数”,而不是“城镇就业人员总数”。一些统计数据库默认给出的是城镇口径,直接拿来做分母会导致指数严重失真。

更隐蔽的问题是部分年鉴中三次产业就业人数之和与全社会就业总数有细微出入,最大能差到几十万人。处理办法不是强行调整,而是以“三次产业就业人数的合计数”作为有效总就业,因为公式最终需要的是各产业的相对份额,用合计数做分母能保证各产业占比加总为 100%。

6.4 年份和价格基期的常见误解

前面提过,占比指标用当年价计算没有大问题。但如果你把泰尔指数和其他以不变价计算的指标做交互项,就会遇到基期不一致的问题。比如数字经济指数通常以某一年为基期,产业结构合理化指数不受价格影响,两者交互时并不会产生价格口径冲突,但如果你把产业产值与数字经济指数相乘构造交互项,就必须统一基期。

我的建议是,论文中如果同时涉及多个价格相关的指标,在数据说明里清楚写明白“生产总值采用当年价,指数计算不受价格影响”这一句。审稿人看到清晰的口径说明,一般不会再追问价格问题。

7. 个人使用体会与扩展思路

这套数据整理完到今天,我把它用于多个不同主题的验证,整体感受是稳定性很好。拿到数据后,我建议你先做三件事。

第一,画趋势图。随便挑几个省份,把 25 年 TL_abs 的走势拉出来看,你会发现大多数省份在 2005 年到 2015 年期间经历了明显的结构调整期,指数波动较大;2015 年之后普遍趋于平稳。这个规律和产业升级、就业转移的现实进程基本吻合,说明数据本身是可靠的。

第二,跑描述性统计。重点关注标准差和极值。如果某个省份的 TL_abs 最小值接近 0,不必惊讶,说明该省份产业结构在某一阶段比较均衡,可能是由于统计口径调整造成的“人工均衡”。

第三,做组间差异检验。按经济区域划分样本后,比较不同区域的 TL_abs 均值差异,通常显著。这可以作为论文里异质性分析的初步证据,节省很多后顾之忧。

最后再说一点个人经验:在论文写作中,把原始数据、计算过程、最终指数同时放在附录或者可供复验的数据文件里,是应对审稿质疑最有效的办法。与其被要求补材料时手忙脚乱,不如从一开始就把数据和过程整理得清清楚楚。这份 2000-2024 年各省产业结构合理化指数数据,我把它们打包整理在一块,使用的时候直接替换省份和年份字段,就能无缝嵌入你的研究框架。

如果后续你想做更深入的分析,可以在泰尔指数基础上尝试结构分解。把总指数按产业贡献拆分,可以识别出哪个产业对合理化程度拖累最大,那个产业往往就是产业结构调整的关键突破口。这个扩展方向不需要额外找数据,用现有中间字段就能实现,建议你可以试试。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询