避坑指南:用Stata计算OP法TFP时,如何处理‘投资’变量与‘退出’判定?
避坑指南:用Stata计算OP法TFP时,如何处理‘投资’变量与‘退出’判定?
在实证研究中,全要素生产率(TFP)的测算一直是学者们关注的焦点。Olley-Pakes(OP)方法因其能够有效解决同时性偏差和样本选择偏差问题,成为测算TFP的主流方法之一。然而,在实际操作中,尤其是使用Stata进行OP法TFP计算时,研究者常常会遇到一些"魔鬼细节"——比如如何正确处理"投资"变量和"退出"判定标准。这些看似微小的技术问题,往往会对最终结果产生显著影响。
1. OP方法的核心逻辑与变量构建要点
OP方法通过引入投资作为生产率的代理变量,巧妙地解决了传统方法中的内生性问题。但这一优势的实现,高度依赖于关键变量的准确构建。理解OP方法背后的经济学直觉至关重要——企业根据观察到的生产率水平做出投资决策,而投资又反过来影响未来的生产率。
1.1 状态变量与控制变量的选择
在OP框架中,状态变量(state variables)和控制变量(control variables)的选择直接影响估计效果:
资本存量(lnK):通常使用固定资产净值衡量,需注意以下几点:
- 价格平减问题:不同年份的固定资产需要统一到基期价格
- 折旧率选择:文献中常用9%或15%,需根据行业特性调整
- 初始资本估算:可采用永续盘存法回溯计算
企业年龄(age):从成立年份或上市年份开始计算,但需注意:
- 上市公司可能存在改制重组,实际经营年限可能长于上市年限
- 对于存续时间特别长的企业,年龄变量可能需要做非线性处理
出口状态(EX):通常以是否有海外销售收入判定,但实际操作中:
- 阈值设定影响结果(如是否要求海外收入占比超过5%)
- 部分企业可能间歇性出口,需要考虑时间持续性
1.2 代理变量的经济学含义与测量
投资变量(I)作为OP方法的核心代理变量,其构建尤为关键。原始文献建议使用"购建固定资产支付的现金",但在中国上市公司数据中,这一指标存在几个实际问题:
- 会计科目变化:2007年新会计准则实施前后,相关科目名称和内涵有所调整
- 零值问题:约15-20%的样本企业该指标为零,需要谨慎处理
- 负值现象:少数情况下可能出现负值(资产处置大于新增投资)
提示:处理零投资样本时,不建议简单删除或赋值为极小正数,可考虑使用Tobit模型或Heckman两步法校正选择偏差。
2. 投资变量的实战处理技巧
2.1 原始数据的获取与清洗
从CSMAR/Wind等数据库获取"购建固定资产、无形资产和其他长期资产支付的现金"时,需特别注意:
- 合并报表与母公司报表:优先使用合并报表数据,但需保持前后一致
- 单位统一:确保所有变量单位一致(通常为万元),避免量纲问题
- 异常值处理:建议采用以下步骤:
- 剔除投资率(I/K)大于1的极端观测值
- 对连续变量进行1%的双侧缩尾处理
- 检查投资与资本存量的逻辑关系(如I>K是否合理)
// Stata数据清洗示例代码 gen invest = cash_purchase_fixed_assets // 原始投资变量 replace invest = invest/10000 // 单位转换为万元 // 计算资本存量(假设已有k变量) gen invest_rate = invest/k drop if invest_rate > 1 & !missing(invest_rate) // 删除异常值 winsor2 invest k, cuts(1 99) replace // 缩尾处理2.2 投资变量的对数化处理
OP方法通常要求对投资变量取对数,但零值问题使这一步骤变得复杂。常见处理方法对比:
| 处理方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 直接取对数 | 保持理论一致性 | 丢失零投资样本 | 零值比例极低的情况 |
| ln(I+1) | 保留所有样本 | 扭曲小投资值分布 | 零值较少(<5%) |
| 分位数填充 | 保持分布形态 | 方法复杂,需多次尝试 | 零值较多(>10%) |
| Heckman校正 | 考虑选择偏差 | 需要额外排除变量 | 有理论支持的选择过程 |
表:不同投资变量处理方法的比较
在实际应用中,我们发现对于中国上市公司数据,当零投资比例较高时,采用分位数填充法效果相对稳健:
// 分位数填充法Stata实现 sum invest, detail local p1 = r(p1) // 获取第1百分位数 replace invest = `p1' if invest == 0 // 用最小值替代零值 gen lnI = log(invest)3. 退出判定的敏感性与替代方案
3.1 基于ST/*ST状态的传统判定
原始文献常用ST/*ST状态作为退出标志,但这一标准存在几个潜在问题:
- 时间滞后性:ST状态通常在财务异常后1-2年才被实施
- 政策变动影响:ST规则在2012年和2020年有过重大调整
- 区域性差异:不同地区监管力度可能影响ST判定标准
更精确的退出判定应考虑以下因素:
- 退市整理期:从终止上市决定到实际退市有30个交易日过渡期
- 主动退市:私有化、吸收合并等情况不应视为生产率导致的退出
- 财务指标:可结合连续亏损、净资产为负等直接财务标准
3.2 改进的退出变量构建方法
我们建议采用多维度标准构建退出变量:
官方状态标准:
- 被实施ST/*ST/PT
- 进入退市整理期
- 终止上市
财务表现标准:
- 连续两年营业收入低于1000万元
- 连续三年净利润为负
- 最近一年期末净资产为负
经营异常标准:
- 主要银行账户被冻结
- 生产经营活动受到严重影响且预计三个月内不能恢复
// 改进的退出变量构建代码 gen exit = 0 replace exit = 1 if st_status == 1 // ST状态 replace exit = 1 if delist_date != . // 已退市 replace exit = 1 if (roa < -0.5 & roa[_n-1] < -0.5) // 连续严重亏损注意:退出判定标准改变后,需重新检查样本平衡性,确保处理组和对照组具有可比性。
4. 稳健性检验与结果解读
4.1 关键参数的敏感性分析
为确保结果可靠,建议进行以下敏感性检验:
投资变量构建方式:
- 比较不同零值处理方法的结果差异
- 尝试使用其他投资衡量指标(如固定资产原值变动)
退出判定标准:
- 放宽/收紧退出标准,观察TFP估计值变化
- 排除政策影响期(如2012年ST规则改革前后)
生产函数形式:
- 比较Cobb-Douglas与Translog设定下的结果
- 尝试不同要素替代弹性假设
4.2 结果呈现与经济学解释
在报告OP法TFP估计结果时,应包含以下关键信息:
- 变量构建细节:明确说明每个变量的具体定义和处理方法
- 样本筛选过程:列明数据清洗的每一步骤及剔除样本量
- 估计方程设定:包括状态变量、控制变量和自由变量的选择
- 敏感性分析结果:展示关键假设变化对主要结论的影响
// OP法估计结果输出示例 opreg lnY, free(lnL year reg ind) state(lnK age) proxy(lnI) cvars(state EX) exit(exit) est store op_results // 敏感性分析:不同投资变量定义 opreg lnY, free(lnL year reg ind) state(lnK age) proxy(lnI_alt) cvars(state EX) exit(exit) est store op_robust // 结果对比 esttab op_results op_robust, stats(N r2) mtitle("基准结果" "稳健性检验")在实际研究过程中,我们经常发现投资变量的处理方式对TFP估计结果影响显著。例如,在某次分析中,使用简单对数变换与分位数填充法得到的行业生产率排名相关系数仅为0.65,这意味着方法选择可能直接影响研究结论。因此,清晰报告变量构建细节并进行充分的稳健性检验至关重要。
