Stata:强大的变量管理命令-vl

发布时间:2021-12-18 阅读 280

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:桑倩倩 (中央财经大学)
邮箱sqq6763@163.com


目录


在代码写作过程中,你是否每个回归都要重复写一堆相同的控制变量?又或者是,在设定全局暂元代替这一堆控制变量后,某些回归又需要增加或删减控制变量?对于上述繁琐的变量管理问题,vl 命令将会大有帮助。

1. 命令介绍

vl 是一套用于创建和管理变量列表的命令,适用于数十个甚至数千个变量的大数据。该命令包括系统命令和用户命令,具体来看:

  • vl set:初始化系统定义的变量列表。默认情况下对数据集中的所有数值变量进行分类,也可以只对指定变量进行分类;
  • vl move:将变量从一个系统定义的变量列表移动到另一个系统定义的变量列表;
  • vl create:创建用户定义的变量列表。如果熟悉数据集中的变量,并且知道将哪些变量视为分类变量,哪些变量视为连续变量,那么我们可能只需要创建用户定义的变量列表;
  • vl modify:从用户定义的变量列表中添加或删除变量;
  • vl label:将标签添加到用户定义的变量列表中;
  • vl substitute:使用变量运算符创建用户定义的变量列表;
  • vl list:列出系统或用户变量列表的内容;
  • vl dir:显示系统或用户已定义的变量列表;
  • vl drop:删除指定变量列表;
  • vl clear:删除所有变量列表;
  • vl rebuild:恢复变量列表。

2. 案例演示

2.1 定义变量列表

. sysuse auto.dta, clear
. vl set

-------------------------------------------------------------------------------
                  |                      Macro's contents
                  |------------------------------------------------------------
Macro             |  # Vars   Description
------------------+------------------------------------------------------------
System            |
  $vlcategorical  |       2   categorical variables
  $vlcontinuous   |       2   continuous variables
  $vluncertain    |       7   perhaps continuous, perhaps categorical variables
  $vlother        |       0   all missing or constant variables
-------------------------------------------------------------------------------

通过 vl set 命令,系统自动将变量定义为 2 个分类变量,2 个连续变量,7 个不确定变量,0 个全部缺失或常数变量。上述过程类似于使用 4 次 global 命令来定义 4 个全局暂元。

. vl list, min max obs // 列出变量列表内容

-----------------------------------------------------------------------------------
    Variable | Macro           Values         Levels       Min       Max        Obs
-------------+---------------------------------------------------------------------
       rep78 | $vlcategorical  integers >=0        5         1         5         69
     foreign | $vlcategorical  0 and 1             2         0         1         74
    headroom | $vlcontinuous   noninteger                  1.5         5         74
  gear_ratio | $vlcontinuous   noninteger                 2.19      3.89         74
       price | $vluncertain    integers >=0       74      3291     15906         74
         mpg | $vluncertain    integers >=0       21        12        41         74
       trunk | $vluncertain    integers >=0       18         5        23         74
      weight | $vluncertain    integers >=0       64      1760      4840         74
      length | $vluncertain    integers >=0       47       142       233         74
        turn | $vluncertain    integers >=0       18        31        51         74
displacement | $vluncertain    integers >=0       31        79       425         74
-----------------------------------------------------------------------------------
. vl move vluncertain vlcontinuous  // 把不确定变量列表全部移到连续变量列表

------------------------------
Macro          # Added/Removed
------------------------------
$vlcategorical               0
$vlcontinuous                7
$vluncertain                -7
$vlother                     0
------------------------------

. vl move (rep78) vlcontinuous     // 把指定变量 rep78 移到连续变量列表

------------------------------
Macro          # Added/Removed
------------------------------
$vlcategorical              -1
$vlcontinuous                1
$vluncertain                 0
$vlother                     0
------------------------------
. vl create power = (gear_ratio displacement weight)  
. // 用户自定义变量列表, power 包括 3 个变量. 
. // 类似于 global, 不同之处在于 vl 可以通过命令增减变量.
. vl create nonpower = (turn length rep78)

除此之外,vl drop vlother 删掉 vlother 这个变量列表,但 vlother 变量列表中的变量依然在数据集中。drop $vlother 删掉 vlother 中的所有变量。vl rebuild 重建变量列表,适用以下情况:

  • vl drop 指定变量列表后,再使用 vl list 命令会报错,需要使用 vl rebuild 重建变量列表,恢复被删掉的列表;
  • 保存数据的时变量列表会被自动保存,但是重新导入时变量列表不会自动恢复,需要使用 vl rebuild 重建。

2.2 变量列表运算

. vl substitute indepvars = i.vlcategorical##c.vlcontinuous  
. // indepvars 包括 vlcategoriacl 所有的类别变量、xvars 所有的连续变量、以及交乘项. 
. // 相当于多次使用 gen, vl 的优点在于用简洁的命令表示巨大的变量列表!

. dis "$indepvars
i.rep78 i.foreign headroom gear_ratio i.rep78#c.headroom i.rep78#c.gear_ratio i.foreign#c.headroom i.foreign#c.gear_ratio

. reg mpg $indepvars

      Source |       SS           df       MS      Number of obs   =        69
-------------+----------------------------------   F(16, 52)       =      7.91
       Model |  1658.51332        16  103.657082   Prob > F        =    0.0000
    Residual |  681.689583        52  13.1094151   R-squared       =    0.7087
-------------+----------------------------------   Adj R-squared   =    0.6191
       Total |   2340.2029        68  34.4147485   Root MSE        =    3.6207
--------------------------------------------------------------------------------------
                 mpg | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
---------------------+----------------------------------------------------------------
               rep78 |
                  2  |     55.350     32.492     1.70   0.094       -9.849     120.549
                  3  |     49.477     29.832     1.66   0.103      -10.385     109.339
                  4  |     65.428     29.198     2.24   0.029        6.838     124.019
                  5  |     41.589     20.335     2.05   0.046        0.783      82.394
             foreign |
            Foreign  |    -53.066     21.264    -2.50   0.016      -95.735     -10.398
            headroom |     19.569     11.039     1.77   0.082       -2.583      41.720
          gear_ratio |     10.813      5.887     1.84   0.072       -1.002      22.627
							省略......
foreign#c.gear_ratio |
            Foreign  |     10.184      5.565     1.83   0.073       -0.983      21.352
               _cons |    -44.656     30.314    -1.47   0.147     -105.486      16.175
--------------------------------------------------------------------------------------

3. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 暂元 变量 标签, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

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

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

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh