Stata:系数为何不显著?GIF 演示 OLS 的性质
Stata连享会 (知乎 | 简书 | 码云)
Source: http://www.statalist.org/forums/forum/general-stata-discussion/general/17996-substitute-rows-with-average-of-row-above-and-below
- Stata连享会 精彩推文1 || 精彩推文2
文章目录
- @[toc]
- 问题描述
- 解决方法1: 使用 tssmooth ma 命令
- 解决方法2: 使用 duplicates tag 命令
- 附:文中使用的代码
- 关于我们
- 联系我们
- 往期精彩推文
问题描述
我有一份面板数据,有些年份上的数据有两行或多行记录 (例如,本例中 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] 表示 xt;x_{t};xt;x[_n-1] 表示 xt−1x_{t-1}xt−1;x[_n+1] 表示 xt+1x_{t+1}xt+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)
. list
. bysort 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
关于我们
- 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
- 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词
Stata
或Stata连享会
后关注我们。 - 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
- Stata连享会 精彩推文1 || 精彩推文2
联系我们
- 欢迎赐稿: 欢迎将您的文章或笔记投稿至
Stata连享会(公众号: StataChina)
,我们会保留您的署名;录用稿件达五篇
以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。 - 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
- 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 联系邮件: StataChina@163.com
往期精彩推文
- Stata连享会推文列表
- Stata连享会 精彩推文1 || 精彩推文2
Stata:系数为何不显著?GIF 演示 OLS 的性质相关推荐
- 【统计学】基本Stata使用手册(2):OLS回归
本篇为自己总结的基本Stata使用手册~今天更新的是第一部分:OLS回归. 目录 2. OLS 回归 2.1一元线性回归 2.2 多元线性回归 2.3 大样本 OLS 2.4 二值选择模型 2. OL ...
- 【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)
需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一.聚类任务 设样本集S={x_1,x_2,-,x_m}包含m个未标记样本,样本x_i=(x_i^(1),x_i^(2),-,x_i^(n))是一 ...
- Stata连享会推文列表
Stata 连享会 主页 || 视频 || 推文 温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验. ✌ 课程详情: https://gitee.com/arlionn/Course ...
- 两组回归系数差异检验_【stata系列】——组间系数差异检验
01 组间系数差异检验是什么? 组间系数差异检验可以用于横截面中产权性质分析.高低分组分析等,在DID模型里也可用于检验post=0(或post=1)时组间系数差异,需要说明的是,DID模型里如果只 ...
- 面板数据分析及stata应用笔记
动态面板数据模型及估计方法 假说里面不要出现显著 文章目录 (一)面板数据基础知识 **一.面板数据的定义** **二.面板数据的分类** **三.面板数据的优缺点** **四.面板数据模型** ** ...
- 机器学习之线性回归:OLS 无偏估计及相关性python分析
戳上面的蓝字关注我们! 作者:alg-flody 编辑:Emily 0 回顾 在最近的推送中,先后总结了最小二乘法的原理,两个求解方法:直接法和梯度下降,最后利用这两种思路进行了python实战.在用 ...
- 实证会计理论与因果推断13 线性模型概述
实证会计理论与因果推断13 线性模型概述1 OLS GLS 大部分应用微观计量模型都在试图去计算causal effects,对这个causal effects有一个比较经典的定义:Causal ef ...
- neo4j python 算法_图论与图学习(二):图算法
选自towardsdatascience 作者:Maël Fabien机器之心编译参与:熊猫 图(graph)近来正逐渐变成机器学习的一大核心领域,比如你可以通过预测潜在的连接来理解社交网络的结构.检 ...
- c++ map 自定义排序_Java学习笔记:Map集合介绍
在介绍它之前先来看看再API文档中是如何介绍它的,看图片: 由图片可以看出,Map属于双列集合,每次可以添加一对数据,并且这两个数据具有映射关系. 单列集合和双列集合区别 一.Map继承体系 1.Ha ...
最新文章
- Docker暴露端口服务器公网IP无法访问问题排查
- 设置Tomcat字符集为utf-8
- linux apache找不到woff2,使服务器Nginx(或者Apache)支持woff2等字体文件
- mac自己定义tree命令
- pythoncsv文件的操作_python操作CSV文件
- 前端开发学习Day4
- Java 算法 特殊的数字四十
- arcpy.mapping常用四大件-StyleItem
- cmd 修改ie快捷方式_windows使用技巧之Win + R 与 CMD 的不同
- java 爬虫 sessionid_java爬虫实战之模拟登陆
- Mac电脑没声音了怎么办?
- 如何找对另一半--第一章 品格与择偶关系
- 第三方登陆(一)微信登陆
- 各大AI开放平台汇总分析
- 知到网课中国戏曲剧种鉴赏考试试题|真题演练|题库(含答案)
- ios 仿京东商品属性选择界面
- 创业起步?先收藏这份终极指南
- php artisan command,artisan command 小技巧
- Camera知识问答
- 5G和WiFi6的故事
热门文章
- Java基础读书笔记
- 图像超分辨率重建之SRCNN
- 聊聊飞书和钉钉哪个更能打
- cuda官网打不开,下载速度慢
- gcd(int a, int b) //求最大公约数
- 模拟实现msn登陆过程(MSNP15)
- 传奇引擎在服务器上无响应,如何解决传奇3服务器在运营过程中出现假死情况...
- 安全测试——验证日志文件
- rowspan table布局_css如何实现table表格的单元格合并?colspan和rowspan合并单元格(实例)...
- repost 力出一孔,“感觉睡觉都是在浪费时间”--孙正义