对stata数据中的缺失值分组进行处理(用非空前值填充、对累计值缺失值的处理)

问题

  • 因为发明专利是累计数量,所以笔者希望对同一证券名称的缺失值用其上一年的数值进行填充。所以对于下图中列出的缺失值应该不予处理。如果直接使用replace 发明专利数量=发明专利数量[_n-1] if 发明专利数量==.命令,会出现“科志股份”的缺失值全部被填充为19,“金浔股份”和“泰龙互联”、“爱依养老”的数值全部被填充为24。
    在这里插入图片描述
    在这里插入图片描述

解决办法(推荐carryforward)

  • carryforward 命令把非缺失值从一个观察值向后推进,用前一个值来填补缺失值。
  • 使用carryforward命令,需要先ssc install carryforward, replace
bys 证券代码 (year): carryforward 发明专利数量, replace //分组填充
  • 原始数据
    在这里插入图片描述
  • 处理后的结果:
    在这里插入图片描述

参考办法(autofill,backward不推荐)

  • 如果每个分组变量中不全是缺失值,可以试试这种办法,否则会出现下面第三章图片(结合本文第一张图片)的错误。
  • 如果需要对多个缺失值同时做上述处理,比如还需要对“发明专利数量合计(也是累计数)”做如此处理,可以只使用下面一共代码即可。
  • 先下载对应命令:ssc install autofill,replace
encode 证券代码,gen(code)
autofill 发明专利数量 公司专利数量合计, backward groupby(code)
  • 原始构造数据:
    在这里插入图片描述
  • 处理之后的结果:
    在这里插入图片描述
  • 但是将一些本不该填充的缺失值填充了。
    在这里插入图片描述

参考文章

### Stata处理面板数据缺失值方法Stata处理面板数据缺失值有多种策略,每种方法适用于不同的场景和需求。 #### 使用 `drop` 命令删除含有缺失值的观测 对于某些分析而言,最简单的方式就是直接移除任何存在缺失值的观察记录。这可以通过组合使用条件语句实现: ```stata drop if missing(varname) ``` 此命令会永久性地从工作文件中删除所有指定变量中有缺失值的行[^1]。 #### 利用 `xtset` 和 `tsfill` 完善时间序列结构 当面对不完整的时期时,可以先通过设定面板数据的时间维度来填补可能存在的空白时间段: ```stata xtset id time_variable tsfill ``` 这里假设 `id` 表示个体标识符而 `time_variable` 是表示时间周期的变量名。上述操作有助于确保后续处理过程中不会因为缺少特定年份而导致问题[^2]。 #### 应用多重插补法(Multiple Imputation) 为了更加稳健地解决缺失数据带来的偏差影响,在许多情况下推荐采用多轮次模拟填充的办法来进行估计。具体步骤如下所示: 1. **准备阶段** - 设置随机种子以保证结果可重复; - 指定要进行多次迭代的数量; ```stata mi set wide mi register imputed varlist set seed 12345 mi passive: gen double _mi_id = _n mi update mi estimate, dots saving(myimputations.dta): regress y x1 x2 ... ``` 2. **执行MI过程** ```stata mi impute chained (regress) x1 x2 ... , add(5) rseed(12345) ``` 这段代码实现了基于链式方程式的多重插补,并保存了五个不同版本的结果集供进一步分析之用[^3]。 #### 实施均替换或其他单替代方式 如果仅需快速获得初步结论,则可以选择较为简单的手段如平均数代替等。不过需要注意的是这种方法可能会引入额外误差并降低统计效力: ```stata egen mean_var = rowmean(x*) replace x* = mean_var if mi(x*) ``` 以上展示了如何计算各列缺失项的算术平均作为相应位置上缺失值得到补充的例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值