Stata编程小笔记7:系统变量
deepwaterqh
2023年02月21日 21:55
收录于文集
共8篇

引言

跑完一个回归,如何提取某个变量的系数?代码如下:

代码块
JavaScript
自动换行
复制代码
sysuse auto,clear
reg price mpg
dis _b[mpg]
复制成功

上述代码中,_b[varname]是什么?是Stata内置的、不需要我们自己定义的变量,也叫系统变量(System variables)。Stata手册有一小节专门讲述了常见系统变量的含义(见下图)。


常见系统变量:与回归结果相关

  • _b[varname](也可以写成_coef[varname]):提取回归系数。

  • _se[varname]:提取回归标准差。

  • _cons:永远等于1,在回归中就是截距项。

代码块
JavaScript
自动换行
复制代码
*** Example 1
sysuse auto,clear
reg price mpg
local b0 = _b[_cons]
local t = _b[mpg]/_se[mpg]  //手动计算t值,并储存在局部暂元t中
local p = 2*ttail(e(df_r),abs(`t'))  //手动计算p值,并储存在局部暂元p中

dis `b0' _newline `t' _newline `p'  //_newline表示换行
dis `b0' _skip(2) `t' _skip(2) `p'  //_skip(2)隔两个字符显示

*** Example 2
sysuse auto,clear
mlogit rep78 gear_ratio displacement foreign
dis [5]_b[foreign]  //第5个模型的foreign变量的系数
复制成功

上面这几行代码很有用,待大家挖掘它的价值。


常见系统变量:与计数相关

  • _n:给当前数据集中的观测值编号,从1开始计数。

  • _N:当前数据集中观测值的总数。

  • 可以与bys结合使用;还可以与[]结合使用,表示索引。

代码块
JavaScript
自动换行
复制代码
clear
input stkcd year a
1 2011 89
1 2012 96
1 2010 65
2 2012 97
2 2010 87
2 2011 65
end

sort stkcd year  //将公司、年份从小到大排序
by stkcd: gen a_2010=a[1]  //a取第一年的值
by stkcd: gen a_2012=a[_N]  //a取最后一年的值

list,noobs
复制成功


常见系统变量:其他

  • _all:代表数据集中的所有变量。

  • _rc:执行 capture 命令后的返回值,如果命令正确执行,则返回值为0。

  • _pi:圆周率 π。

代码块
JavaScript
自动换行
复制代码
sysuse auto,clear
sum _all,sep(0)  //对所有变量进行描述性统计

capture sum _all
dis _rc  //检查sum _all这个代码能否被正确执行,能的话则显示0
复制成功