stata F值缺失_Stata数据处理: 面板数据填充和补漏
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 年的缺失值)。
说明:此处 ma 是 moving 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数据处理: 面板数据填充和补漏相关推荐
- stata F值缺失_stata面板数据回归操作之GMM
新手面板数据回归之GMM 的 stata 操作步骤 广义矩估计( Generalized Method of Moments 即 GMM ) 原理就是回归!就是一种高级点的回归! 我也是新手,也有很多 ...
- stata F值缺失_Stata开机设定 - profile.do 文档
作者:连玉君 (知乎 | 简书 | 码云) 下载:老连的 profile.do Note:对于微信公众号用户,请点击底部 [阅读原文] 查看下载链接.连享会 最新专题 直播 今天说说多数 St ...
- stata F值缺失_Stata 转 Excel —— export excel 命令详解
作者:李刚 (中南财经政法大学) 邮箱:gang.li.0814@gmail.com Stata连享会 计量专题 || 公众号合集 点击查看完整推文列表 2020寒假Stata现场班 北京, 1月8 ...
- stata F值缺失_Stata:刀切法-去一法-Jackknife 简介
连玉君 (中山大学,arlionn@163.com) 陈鑫梅 (暨南大学,1562922593@qq.com) Stata连享会 主页 || 视频 || 推文 http://qr06.cn/B9E ...
- stata F值缺失_stata操作问题实录
一.数据整理 1.新变量带原变量的标签 sysuse auto,clear gen m=mpg //新建的变量m没有了标签,我想要标签 clonevar Mpg = mpg //直接用clonevar ...
- stata F值缺失_计量经济学stata代码总结
答主本来想水掉这次总结,但是身为ikun,就应该像坤坤一样言既出行必果,不能砸了ikun的招牌,接下来我们就开始吧. 数据的读取与查看 读取数据集:use 路径(.dta) 读取Stata系统中的数据 ...
- stata F值缺失_一文读懂Stata做格兰杰因果检验命令总结
来源:http://dss.princeton.edu/training/,部分资源整理自:百度文库.CDA数据分析师.社会科学中的数据可视化 在实证分析中,我们经常需要确定因果关系是x导致y,还是y ...
- 【关于回归结果F值缺失的处理方式】
关于F值缺失的问题,搜索了相关论坛,发现有以下几个处理方式: (1)手动删除只有一个观测数据的样本: (2)使用reghdfe,这个会自动删除只有一个观测数据的样本,但是不知道为什么比我手动删除的要多 ...
- stata中计算公式命令_Stata数据处理:各种求和方式一览
Stata 连享会 主页 || 视频 || 推文 温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验. 目录 本文主要通过一些案例演示,来解决大家在 Stata 应用中遇到的各种求和问题. 1 ...
最新文章
- 部署可扩展的目标检测管道:推理过程(上)
- python 包介绍:osmnx
- 为何LPWA对物联网是颠覆性的新网络?
- 蓝桥杯_算法训练_矩阵乘法
- 工控图表控件ProEssentials改变子集的颜色和线条风格
- iOS核心动画之CALayer-自定义层
- html连接数据库id号自动生成器,SQL Server数据库sql语句生成器(SqlDataToScript)的使用(sql server自增列(id)插入固定值)...
- pytorch_basics
- 2019-02-26-GCN资料
- regionGrowth3D
- RabbitMQ消息队列之RPC调用
- 自主研发的流程引擎怎么样?好用吗?
- 记一篇IT培训日记050-嗯嗯,差距不大
- 基于c#的IE 代理服务器设置
- 人工智能轨道交通行业周刊-第43期(2023.4.24-5.7)
- 计算机应用课程的体会,计算机课程心得体会
- 计算机软件标杆企业,张军平老师—人工智能专家,复旦大学教授,博士生导师,中国计算机协会人工智能专委会委员,软件学报和自动化学报责任编辑...
- 风水招财用品:貔貅的材质与区别
- Springboot+vue项目毕业生信息招聘平台
- WIN7 安装VS2005 错误1935