Stata连享会 (知乎 | 简书 | 码云) 连享会最新专题直播
Source: http://www.statalist.org/forums/forum/general-stata-discussion/general/17996-substitute-rows-with-average-of-row-above-and-below

连享会-知乎推文列表

Note: 助教招聘信息请进入「课程主页」查看。

因果推断-内生性 专题 ⌚ 2020.11.12-15 主讲:王存同 (中央财经大学);司继春(上海对外经贸大学) 课程主页https://gitee.com/arlionn/YG | 微信版

http://qr32.cn/BlTL43 (二维码自动识别)

空间计量 专题 ⌚ 2020.12.10-13 主讲:杨海生 (中山大学);范巧 (兰州大学) 课程主页https://gitee.com/arlionn/SP | 微信版

https://gitee.com/arlionn/DSGE (二维码自动识别)


问题描述

我有一份面板数据,有些年份上的数据有两行或多行记录 (例如,本例中 2007 年的数据)。棘手的是,这两行数据存在差异,且无法判断哪一个记录是正确的。此时,比较稳妥的选择是:将这两汉数据都舍弃,使用相邻年度 (2006 和 2008 年) 的均值作为 2007 年的观察值 (插值)。

clear
input ID    year    var1    var2    var3
1    2006    34    45    65
1    2007    45    43    41
1    2007    3    56    59
1    2008    39    54    76
1    2009    41    57    68
end
save "data00.dta", replace

原始数据详情:

. list+--------------------------------+| ID   year   var1   var2   var3 ||--------------------------------|1. |  1   2006     34     45     65 |2. |  1   2007     45     43     41 |3. |  1   2007      3     56     59 |4. |  1   2008     39     54     76 |5. |  1   2009     41     57     68 |+--------------------------------+


解决方法1: 使用 tssmooth ma 命令

思路:

  • 先删除重复的观察值 (2007 年的数据)
  • 继而使用 tsfill 填充年份,让数据变成平行面板;
  • 最后用 tssmooth ma 命令插值 (用前后两年的平均值代替 2007 年的缺失值)。
    说明:此处 mamoving average 的简写。

命令如下:

. use "data00.dta", clear
*-删除重复值  (数据有误)
. drop if year == 2007
. tsset ID year
. tsfill
. list+--------------------------------+| ID   year   var1   var2   var3 ||--------------------------------|1. |  1   2006     34     45     65 |2. |  1   2007      .      .      . |3. |  1   2008     39     54     76 |4. |  1   2009     41     57     68 |+--------------------------------+
*-填充缺失值:
forv i = 1/3 {tssmooth ma v`i' = var`i' , w(1, 0, 1)replace var`i' = v`i' if var`i' == .
}
drop v?
list

运行结果如下:

. forv i = 1/3 {2.     tssmooth ma v`i' = var`i' , w(1, 0, 1)3.     replace var`i' = v`i' if var`i' == .4. }
The smoother applied was(1/2)*[x(t-1) + 0*x(t) + x(t+1)]; x(t)= var1
(1 real change made)
The smoother applied was(1/2)*[x(t-1) + 0*x(t) + x(t+1)]; x(t)= var2
(1 real change made)
The smoother applied was(1/2)*[x(t-1) + 0*x(t) + x(t+1)]; x(t)= var3
(1 real change made). drop v?. list+--------------------------------+| ID   year   var1   var2   var3 ||--------------------------------|1. |  1   2006     34     45     65 |2. |  1   2007   36.5   49.5   70.5 |3. |  1   2008     39     54     76 |4. |  1   2009     41     57     68 |+--------------------------------+

从结果的提示信息可以看出 w(1, 0, 1) 选项的含义:

The smoother applied was(1/2)*[x(t-1) + 0*x(t) + x(t+1)]; x(t)= var1

连享会最新专题直播

解决方法2: 使用 duplicates tag 命令

思路:

  • 使用 duplicates tag 命令标记重复的观察值,并使用 gen() 选项产生新变量用以记录标记情况;
  • 删除重复的观察值 (其实,这两步可以合为一步);
  • 使用 _n 标记观察先后顺序(x[_n]表示
    ;x[_n-1]表示
    ;x[_n+1]表示
    ) ,进行插值;
clear
input id year var1 var2 var3
1 2006 34 45 65
1 2007 45 43 41
1 2007 3 56 59
1 2008 39 54 76
1 2009 41 57 68
end

使用 duplicates tag 标记重复的观察值:

 duplicates tag id year, gen(mistake)  listbysort id year: keep if (_n == 1)foreach v of varlist var1 var2 var3 {  replace `v' =  (`v'[_n-1] + `v'[_n+1])/2 if mistake}

结果如下:

.  duplicates tag id year, gen(mistake)
Duplicates in terms of id year.  list   // A-1+------------------------------------------+| id   year   var1   var2   var3   mistake ||------------------------------------------|1. |  1   2006     34     45     65         0 |2. |  1   2007     45     43     41         1 |3. |  1   2007      3     56     59         1 |4. |  1   2008     39     54     76         0 |5. |  1   2009     41     57     68         0 |+------------------------------------------+.  bysort id year: keep if (_n == 1)
(1 observation deleted).  list   // A-2+------------------------------------------+| id   year   var1   var2   var3   mistake ||------------------------------------------|1. |  1   2006     34     45     65         0 |2. |  1   2007     45     43     41         1 |3. |  1   2008     39     54     76         0 |4. |  1   2009     41     57     68         0 |+------------------------------------------+.  foreach v of varlist var1 var2 var3 {  2.     replace `v' =  (`v'[_n-1] + `v'[_n+1])/2 if mistake3.  }.  list   // A-3+------------------------------------------+| id   year   var1   var2   var3   mistake ||------------------------------------------|1. |  1   2006     34     45     65         0 |2. |  1   2007   36.5   49.5   70.5         1 |3. |  1   2008     39     54     76         0 |4. |  1   2009     41     57     68         0 |+------------------------------------------+


附:文中使用的代码

*------------
*-Solution 1:
* You could use tssmooth ma.
* For example:clear
input ID    year    var1    var2    var3
1    2006    34    45    65
1    2007    45    43    41
1    2007    3    56    59
1    2008    39    54    76
1    2009    41    57    68
endlistdrop if year == 2007
tsset ID year
tsfill
list forv i = 1/3 {tssmooth ma v`i' = var`i' , w(1, 0, 1)replace var`i' = v`i' if var`i' == .
}
drop v?
list*------------
*-Solution 2:  clear
input id year var1 var2 var3
1 2006 34 45 65
1 2007 45 43 41
1 2007 3 56 59
1 2008 39 54 76
1 2009 41 57 68
endduplicates tag id year, gen(mistake)
list
bysort id year: keep if (_n == 1)
list
foreach v of varlist var1 var2 var3 {  replace `v' =  (`v'[_n-1] + `v'[_n+1])/2 if mistake
}
list

相关课程

连享会-直播课 上线了!http://lianxh.duanshu.com免费公开课:

  • 直击面板数据模型 - 连玉君,时长:1 小时 40 分钟
  • Stata 33 讲 - 连玉君, 每讲 15 分钟.
  • 部分直播课 课程资料下载 (PPT,dofiles 等)

课程一览
支持回看,所有课程可以随时购买观看。连享会 - 文本分析与爬虫 - 专题视频
主讲嘉宾:司继春 || 游万海

连享会 - 效率分析专题已上线:可随时购买学习+全套课件,课程主页 已经放置板书和 FAQs
主讲嘉宾:连玉君 | 鲁晓东 | 张宁课程主页微信版 https://gitee.com/arlionn/TE

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata 连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类:计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。

连享会小程序:扫一扫,看推文,看视频……


扫码加入连享会微信群,提问交流更方便

stata F值缺失_Stata数据处理: 面板数据填充和补漏相关推荐

  1. stata F值缺失_stata面板数据回归操作之GMM

    新手面板数据回归之GMM 的 stata 操作步骤 广义矩估计( Generalized Method of Moments 即 GMM ) 原理就是回归!就是一种高级点的回归! 我也是新手,也有很多 ...

  2. stata F值缺失_Stata开机设定 - profile.do 文档

    作者:连玉君 (知乎 | 简书 | 码云) 下载:老连的 profile.do Note:对于微信公众号用户,请点击底部 [阅读原文] 查看下载链接.连享会   最新专题   直播 今天说说多数 St ...

  3. stata F值缺失_Stata 转 Excel —— export excel 命令详解

    作者:李刚 (中南财经政法大学) 邮箱:gang.li.0814@gmail.com Stata连享会 计量专题  || 公众号合集 点击查看完整推文列表 2020寒假Stata现场班 北京, 1月8 ...

  4. stata F值缺失_Stata:刀切法-去一法-Jackknife 简介

    连玉君 (中山大学,arlionn@163.com) 陈鑫梅 (暨南大学,1562922593@qq.com) Stata连享会   主页 || 视频 || 推文 http://qr06.cn/B9E ...

  5. stata F值缺失_stata操作问题实录

    一.数据整理 1.新变量带原变量的标签 sysuse auto,clear gen m=mpg //新建的变量m没有了标签,我想要标签 clonevar Mpg = mpg //直接用clonevar ...

  6. stata F值缺失_计量经济学stata代码总结

    答主本来想水掉这次总结,但是身为ikun,就应该像坤坤一样言既出行必果,不能砸了ikun的招牌,接下来我们就开始吧. 数据的读取与查看 读取数据集:use 路径(.dta) 读取Stata系统中的数据 ...

  7. stata F值缺失_一文读懂Stata做格兰杰因果检验命令总结

    来源:http://dss.princeton.edu/training/,部分资源整理自:百度文库.CDA数据分析师.社会科学中的数据可视化 在实证分析中,我们经常需要确定因果关系是x导致y,还是y ...

  8. 【关于回归结果F值缺失的处理方式】

    关于F值缺失的问题,搜索了相关论坛,发现有以下几个处理方式: (1)手动删除只有一个观测数据的样本: (2)使用reghdfe,这个会自动删除只有一个观测数据的样本,但是不知道为什么比我手动删除的要多 ...

  9. stata中计算公式命令_Stata数据处理:各种求和方式一览

    Stata 连享会   主页 || 视频 || 推文 温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验. 目录 本文主要通过一些案例演示,来解决大家在 Stata 应用中遇到的各种求和问题. 1 ...

最新文章

  1. 部署可扩展的目标检测管道:推理过程(上)
  2. python 包介绍:osmnx
  3. 为何LPWA对物联网是颠覆性的新网络?
  4. 蓝桥杯_算法训练_矩阵乘法
  5. 工控图表控件ProEssentials改变子集的颜色和线条风格
  6. iOS核心动画之CALayer-自定义层
  7. html连接数据库id号自动生成器,SQL Server数据库sql语句生成器(SqlDataToScript)的使用(sql server自增列(id)插入固定值)...
  8. pytorch_basics
  9. 2019-02-26-GCN资料
  10. regionGrowth3D
  11. RabbitMQ消息队列之RPC调用
  12. 自主研发的流程引擎怎么样?好用吗?
  13. 记一篇IT培训日记050-嗯嗯,差距不大
  14. 基于c#的IE 代理服务器设置
  15. 人工智能轨道交通行业周刊-第43期(2023.4.24-5.7)
  16. 计算机应用课程的体会,计算机课程心得体会
  17. 计算机软件标杆企业,张军平老师—人工智能专家,复旦大学教授,博士生导师,中国计算机协会人工智能专委会委员,软件学报和自动化学报责任编辑...
  18. 风水招财用品:貔貅的材质与区别
  19. Springboot+vue项目毕业生信息招聘平台
  20. WIN7 安装VS2005 错误1935

热门文章

  1. 2022年最新宠物十二生肖区块系统源码
  2. 读《环境光遮蔽技术在图形图像中若干关键技术的研究》总结-其一
  3. Hello MySQL(三)——SQL语言
  4. autojs-微信群抢红包
  5. mysql根据表的一个字段决定去关联(join)那张表格
  6. 《长安十二时辰》静安司上云,云计算有杀手锏
  7. (二)库存计划-经济订货量(EOQ)
  8. 软件设计师学习笔记-计算机网络
  9. MATLAB串口通信
  10. 有关字节型转换为浮点型