Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:左祥太 (武汉纺织大学)
邮箱:Shutter_Z@outlook.com
目录
tuples
命令的主要作用是从给定列表集合中抽取所有的真子集。例如,我们可以通过命令语句 tuples A B
,来分别抽取集合 tuples
命令有些鸡肋,但当我们利用 tuples
命令从众多控制变量中筛选出我们满意的组合时,就能够解锁 tuples
的进阶用法了。
tuples
命令安装:
ssc install tuples, replace
tuples
命令语法:
tuples list [ , options]
当 list
表示变量时,不需要缩写;而当其表示包含空格的其他内容时,则需配合双引号使用。options
主要包括以下内容:
max(#)
:指定返回子集中元素的最大个数;min(#)
:指定返回子集中元素的最小个数;display
:在屏幕上展示真子集结果;nopython
:不用 Python 进行运算 (未正确安装 Python 环境可以使用此选项);nomata
不用 Mata 进行运算;nosort
不对子集进行排序。
接着,我们介绍下如何利用 tuples
命令来筛选控制变量,以使得主要解释变量显著。具体思路如下:
tuples
命令先返回全部控制变量的真子集;. sysuse auto.dta, clear
(1978 automobile data)
. * 设定显著性水平
. global significance 0.01
. * 设定变量
. global dependentVariable price // 设置被解释变量
. global independentVariable weight // 设置解释变量
. global controlVariables headroom trunk length displacement // 设置控制变量
. * 以下不用修改
. gen degreeOfFreedom = .
. gen tValue = .
. gen bOfIndX = .
. gen seOfIndX = .
. gen tOfIndX = .
. gen rSq = .
. gen controlVariableSet = ""
. tuples $controlVariables
. forvalues i = 1/`ntuples' {
2. regress $dependentVariable $independentVariable `tuple`i'', r
3. replace bOfIndX = _b[$independentVariable] in `i'
4. replace seOfIndX = _se[$independentVariable] in `i'
5. replace tOfIndX = bOfIndX / seOfIndX in `i'
6. replace degreeOfFreedom = e(df_r) in `i'
7. replace tValue = invttail(degreeOfFreedom, $significance) in `i'
8. replace rSq = e(r2) in `i'
9. replace controlVariableSet = "`tuple`i''" in `i'
10. }
. preserve
. replace tOfIndX = abs(tOfIndX)
. replace tValue = abs(tValue)
. keep if tOfIndX > tValue
. gen controlVariableNumbers = wordcount(controlVariableSet) if controlVariableSet != ""
. sort controlVariableNumbers rSq
. keep if rSq != .
. list controlVariableSet tOfIndX tValue rSq
. restore
+--------------------------------------------------------+
| controlVariableSet tOfIndX tValue rSq |
|--------------------------------------------------------|
1. | trunk 3.639188 2.380024 .2942578 |
2. | headroom 5.325744 2.380024 .317878 |
3. | length 2.714205 2.380024 .3475631 |
4. | headroom trunk 3.801941 2.380807 .3185539 |
5. | headroom displacement 2.516981 2.380807 .3200988 |
|--------------------------------------------------------|
6. | trunk length 2.70173 2.380807 .3483588 |
7. | headroom length 2.690756 2.380807 .3618365 |
8. | headroom trunk length 2.673256 2.381614 .3716414 |
+--------------------------------------------------------+
结果说明如下:
weight
所对应的 invttail
的方式计算出来的 可以看到,这些控制变量组合都是能够使得主要解释变量 weight
在 1% 显著水平下显著的结果。
在阅读完文献后,我们通常会准备多个控制变量,选择不同的控制变量组可能会使结果出现不合意的变化。通过上述方法,我们可以很容易地从众多控制变量中筛选出比较满意的控制变量组合。
不过由于这种做法是我一时兴起所编,所以在实际运行过程当中或多或少会出现一些的 bug,比如当控制变量的真子集个数超过观测样本的总数时,就有可能报错。连享会之前的一篇推文「gsreg:自动模型设定和变量筛选」则很好地解决了这一问题,但同样也存在着一系列的局限性,如 gsreg
难以配合 reghdfe
等命令进行使用。
Note:产生如下推文列表的 Stata 命令为:
lianxh 控制变量, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh