鉴于众多朋友对一键显著命令的需求,考虑到邮件传输的不便以及外部程序安装的困惑,我决定为大家呈现一个图文结合的教程,方便大家自行操作。
一、核心原理
我在查阅资料时,偶然发现了这个开源项目,初衷是想开发一个能自动筛选控制变量的命令。然而,在使用过程中,我发现该项目尚有许多待完善之处,且长时间无人更新。因此,我决定亲自动手进行改进,并根据自己的需求对部分内容进行了优化。下面我将分享具体的思路和代码。
简单来说,我们利用tuples命令遍历所有控制变量集。接下来,我将简要介绍该命令的使用方法。
执行程序后,我们应重点关注其返回的结果。
经过运行,我们找到了11个满足条件的子集,其中第一个子集是turn displacement。
接下来,我们可以将这些子集逐个进行回归分析。通过一系列的条件语句,我们将符合条件的子集保存下来。最终,我们便能得到符合所有条件的集合。有时,我们可能需要对多个方程进行限制,这时只需对程序稍作调整即可。基本思路是:在多方程程序中,调用单方程的返回结果,并取交集。
二、完整代码展示
下面提供的是包含详细注释的完整代码,用于筛选控制变量。在使用时,您可以将其复制到Stata的do文件编辑器中,并以.ado格式保存,以便后续调用。
第一个ado程序:针对单个方程的筛选
第二个ado程序:同时满足多方程的筛选
第三个do文件:程序调用示例
三、操作指南
如果您对外部命令的手动安装及路径设置有所了解,可以自行操作。若不太熟悉,请按照以下步骤进行:
首先,打开Stata并创建一个新的do文件。
接着,将代码另存为文件。需要注意的是,对于第一个和第二个程序,文件名(右侧红框)需要与program后的程序名(左侧红框)保持一致。对于第三个程序,文件名则无特殊要求。
完成保存后,您将得到三个文件。请确保这三个文件位于同一文件夹下,并且test是do文件,另外两个为ado文件。
最后,运行test文件(即提供的第三个程序)。
单方程变量的结果将存储在r(list)暂元中,而多方程的结果将存储在r(com_lists)中。满足条件的子集之间使用逗号进行分隔。
2月14日更新:尝试将程序作为附件上传。
2月18日更新:在使用此命令之前,请确保您已安装tuples命令。安装方法如下:
全部评论 (0)