【OP方法实战】从数据清洗到结果解读:上市公司TFP的OP方法Stata实现全流程
1. 数据准备与清洗:构建高质量分析基础
做TFP分析就像盖房子,地基不牢地动山摇。我处理过上百家上市公司数据,第一步永远是数据清洗。很多新手直接套用代码,结果跑出来的TFP值离谱得能吓死人——不是负数就是天文数字,原因八成出在原始数据上。
先说说样本筛选。A股市场有个特点,金融类公司的报表结构和其他行业完全不同,ROE能差出十倍不止。我习惯用证监会行业分类标准,直接剔除代码为J开头的公司(银行、保险、证券等)。还有个坑是AB股并存的公司,这类企业常有汇率折算问题,最好也剔除。实际操作时用Stata写个条件筛选就行:
drop if substr(industry,1,1)=="J" // 剔除金融业 drop if B_shares==1 // 剔除B股上市公司异常值处理我推荐三步法:先看缺失值比例,超过30%的变量直接放弃;然后1%缩尾处理(winsor2命令超好用);最后人工核查极端值。有次我发现某公司固定资产净值居然是营收的1000倍,查原始报表才发现是数据录入少了个小数点。
2. 核心变量构造:关键指标的标准化处理
变量定义是OP方法的灵魂,但教科书往往不说人话。我用最直白的语言解释:
Y(产出):理论上应该用工业增加值,但上市公司不披露。实测发现用营业收入替代效果不错,记得单位统一用万元。有个细节——营收要扣掉增值税,否则会高估。
L(劳动投入):员工人数是最常用指标,但存在季节性波动。我更喜欢用"支付给职工的现金"除以行业平均工资,这样能反映实际劳动成本。代码示例:
gen L = employee_payment / industry_avg_wage- K(资本存量):固定资产净值要永续盘存法调整。我常用的折旧率是9.6%(参照张军等学者的参数),具体公式:
gen K = net_fixed_assets * (1 - 0.096)^(current_year - establish_year)代理变量投资额(I)的计算最易出错。很多人直接用现金流量表的"购建固定资产支出",其实还要加上无形资产和长期资产投资。更严谨的写法:
gen I = fixed_asset_invest + intangible_invest + longterm_asset_invest replace I = 0 if missing(I) // 缺失值补零3. OP方法实现:Stata代码逐行解析
OP方法本质是个黑箱,但拆开看就三部分:
3.1 第一步:生存概率估计
这步要预测企业存活概率,用probit模型。关键在exit变量的定义——我建议综合ST状态和退市标志:
gen exit = (ST_status==1 | delist_flag==1) probit exit L.lnK L.age i.year i.reg i.ind predict survival_prob, pr3.2 第二步:投资方程估计
代理变量和状态变量的交互是重点。我习惯加入行业时间趋势项,控制技术冲击:
reg lnI c.lnK##c.age i.year##i.ind EX predict fitted_I, xb3.3 第三步:生产函数估计
最后用非线性最小二乘法(NLS)估计系数。注意这里要包含第一步的生存概率:
nl (lnY = {_b[lnL]}*lnL + {_b[lnK]}*lnK + {_b[age]}*age /// + {_b[EX]}*EX + {phi}*fitted_I + {rho}*survival_prob), /// initial(_b[lnL] 0.6 _b[lnK] 0.4 _b[age] 0.01 _b[EX] 0.02 phi 0.1 rho 0.05)跑完这三步,TFP就是残差项。建议保存结果时标注清楚:
predict tfp_op, residuals label variable tfp_op "TFP estimated by OP method"4. 结果验证与解读:从数字到经济含义
算出TFP值只是开始,验证合理性更重要。我常用的诊断方法:
描述性统计检查:正常TFP均值在0附近,标准差0.3-0.8。如果出现均值-5、标准差10,肯定是哪里出错了。
行业对比:制造业TFP通常低于高科技行业。可以用简单分组统计验证:
tabstat tfp_op, by(ind) stat(mean sd)- 时间趋势:正常情况下TFP应该缓慢上升。如果某年突然暴跌,可能是数据问题或需要加入特殊年份虚拟变量。
解读TFP差异时,别忘了控制企业特征。比如出口企业TFP平均高15%-20%,这符合"自我选择效应"理论。国有企业可能比民营企业低10%左右,反映了效率差异。
最后提醒:不要过度解读小数点后三位的差异。TFP本质是个相对指标,重点看排名和变化趋势。我见过有人纠结0.001的差异,其实标准误可能都有0.01。
