You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中企业层面非平衡面板数据投资率计算方法咨询

Stata非平衡面板企业投资率计算方案

适用场景:企业层面非平衡面板数据,不同企业观测起止时间存在差异(如部分样本观测区间为1990-2000年、部分为2005-2015年),逐企业匹配相邻年度的有形固定资产(TFA),按公式投资率=(TFA(t)-TFA(t-1))/TFA(t-1)计算,自动规避跨企业、跨时间断层的错配问题。

核心计算步骤

  • 预处理日期变量:原始数据中dec31year是Stata内部日期存储格式(数值为距1960年1月1日的天数),首先提取自然年度,再声明面板结构,让Stata自动识别每个企业的时间序列边界、年度间隔。

    * 从日期变量中提取自然年度
    gen year = year(dec31year)
    * 声明面板维度:个体为企业ID,时间为年度
    xtset ID year
    

    注意:xtset执行后会自动检测面板时间间隔,若存在年度断层(如2000年直接跳至2005年),后续滞后值计算会自动在断层位置返回缺失值,不会错误匹配间隔多年的观测,完全适配非平衡分段面板的计算要求。

  • 生成滞后一期TFA:使用面板专属滞后运算符取上期值,相比手动排序取前一行的写法,能自动识别时间断层,避免错配。

    gen L_TFA = L.TFA
    
  • 按公式计算投资率:增加判定条件,在上期TFA缺失、为0时不计算,避免除以0的计算错误。

    gen invest_rate = (TFA - L_TFA)/L_TFA if L_TFA > 0 & !missing(L_TFA)
    

示例数据全量可运行代码

* 导入示例数据
clear
input long ID int dec31year double TFA
 1 18992 1638309000
 1 19358 1430424000
 1 19723 2618977000
 1 20088  2.799e+09
 1 20453 3507431000
 1 20819 4219361000
 1 21184 4347613000
 1 21549 3.9619e+09
 1 21914 5100955000
 1 22280 5404411000
 2 19358 1.5479e+10
 2 19723 1.3219e+10
 2 20088 1.3387e+10
 2 20453 1.4867e+10
 2 20819  1.636e+10
 2 21184 1.6547e+10
 2 21549 1.6146e+10
 2 21914 1.4011e+10
 2 22280 1.3141e+10
 2 22645 1.3311e+10
 3 19358  3.201e+09
 3 19723  2.945e+09
 3 20088  2.955e+09
 3 20453  2.630e+09
 3 20819  2.375e+09
 3 21184  2.233e+09
 3 21549  2.166e+09
 3 21914  2.177e+09
 3 22280  2.015e+09
 3 22645  2.122e+09
 4 18992    1425000
 4 19358  395837000
 4 19723  385710000
 4 20088   98745000
 4 20453   20387000
 4 20819    1636000
 4 21184    1499000
 4 21549    1365000
 4 21914    1439000
 4 22280   92866000
 5 18992 4.5909e+10
 5 19358 4.6606e+10
 5 19723 4.5531e+10
 5 20088 4.5645e+10
 5 20453  4.627e+10
 5 20819 4.6155e+10
 5 21184 4.5847e+10
 5 21549 4.5774e+10
 5 21914 4.7443e+10
 5 22280 4.7853e+10
 6 19358  232641000
 6 19723  231892000
 6 20088  190669000
 6 20453  227862000
 6 20819  288878000
 6 21184  302291000
 6 21549  694925000
 6 21914  8.190e+08
 6 22280  7.730e+08
 6 22645  6.480e+08
 7 19358 1288758000
 7 19723 1217425000
 7 20088 1121128000
 7 20453 1033546000
 7 20819  964263000
 7 21184 1020210000
 7 21549 1087107000
 7 21914 1272572000
 7 22280 1310794000
 7 22645 1227395000
 8 19358 2463088000
 8 19723 2630901000
 8 20088 2811077000
 8 20453 3041447000
 8 20819 3257302000
 8 21184 4388377000
 8 21549 4427479000
 8 21914 4741731000
 8 22280 4845817000
 8 22645 5005846000
 9 19083  609320000
 9 19448  619372000
 9 19813  618904000
 9 20178  853070000
 9 20544  838932000
 9 20909  785931000
 9 21274  773765000
 9 21639  760809000
 9 22005  760693000
 9 22370  860146000
10 18992 1617674000
10 19358 1590728000
10 19723 1554051000
10 20088 1445113000
10 20453 1351322000
10 20819 1224924000
10 21184 1081895000
10 21549  133179000
10 21914  114626000
10 22280  110914000
end
format %td dec31year

* 执行计算
gen year = year(dec31year)
xtset ID year
gen L_TFA = L.TFA
gen invest_rate = (TFA - L_TFA)/L_TFA if L_TFA > 0 & !missing(L_TFA)

* 抽查前10条结果验证
list ID year TFA L_TFA invest_rate in 1/10, sepby(ID)

注意事项

  • 不推荐使用bysort ID (year): gen L_TFA = TFA[_n-1]的手动写法计算滞后值:该写法不会识别年度断层,若企业存在观测区间分段(如2000年直接衔接2005年观测),会错误将跨区间的两个观测匹配为相邻期,得到不符合定义的计算结果。
  • 运行效率:上述代码为Stata内置向量化运算,处理20万家企业、总观测约200万的样本时,运行耗时不超过2秒,无需额外优化。
  • 异常值处理:财务数据常因资产异动出现极端投资率值,可根据研究需求做缩尾处理,参考代码:
    * 首次使用需先安装winsor2:ssc install winsor2
    winsor2 invest_rate, cuts(1 99) replace
    

内容的提问来源于stack exchange,提问作者Serkan Kocabas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:36:14