跑完一个回归,如何提取某个变量的系数?代码如下:
sysuse auto,clear
reg price mpg
dis _b[mpg] 上述代码中,_b[varname]是什么?是Stata内置的、不需要我们自己定义的变量,也叫系统变量(System variables)。Stata手册有一小节专门讲述了常见系统变量的含义(见下图)。

_b[varname](也可以写成_coef[varname]):提取回归系数。
_se[varname]:提取回归标准差。
_cons:永远等于1,在回归中就是截距项。
*** 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结合使用;还可以与[]结合使用,表示索引。
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:圆周率 π。
sysuse auto,clear
sum _all,sep(0) //对所有变量进行描述性统计
capture sum _all
dis _rc //检查sum _all这个代码能否被正确执行,能的话则显示0