如何在矩阵中获取回归输出的变量标签

How to get variable labels of regression output in matrix

在 Stata 中,假设我有这些数据:

sysuse auto2, clear
gen name = substr(make, 1,3)
encode name, gen(name2) 

我 运行 这个回归,重要的是使用 i.:

reg price i.name2 trunk weight turn

输出采用以下形式:

------------------------------------------------------------------------------
       price |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       name2 |
        Aud  |   4853.048   1254.083     3.87   0.000     2331.545    7374.551
        BMW  |   5742.124   1560.161     3.68   0.001     2605.211    8879.037
        Bui  |   1351.065    946.733     1.43   0.160    -552.4696    3254.599
        Cad  |   7740.865   1168.332     6.63   0.000     5391.776    10089.95
        Che  |   62.35577   946.1153     0.07   0.948    -1839.937    1964.648
....

我接着去估算结果:

matrix list e(b)

产生:

e(b)[1,27]
            1b.          2.          3.          4.          5.          6.          7.
         name2       name2       name2       name2       name2       name2       name2
y1           0   4853.0482   5742.1237   1351.0647   7740.8653   62.355771   2676.3971

             8.          9.         10.         11.         12.         13.         14.
         name2       name2       name2       name2       name2       name2       name2
y1    943.4266   1964.8242   1776.4058   2711.4324   6386.7936 
....

我的问题是如何在回归 运行 后从 name2 变量中检索变量标签?我想要的是初始输出中显示的内容:AudBMWBui 等。我不想要 e(b) 矩阵中存储的内容:1b. name2, 2. name2, 3. name2, etc. 有没有办法得到我想要存储在 e(b) 中或者存储在其他估计结果中的其他地方?可以estout/esttab吗?我想将结果存储在矩阵中。

您可以将 e(b) 存储在矩阵中,使用 levelsof 命令获取变量名称并重命名列名称。

sysuse auto2, clear
gen name = substr(make, 1,3)
encode name, gen(name2) 

reg price i.name2 trunk weight turn
mat A = e(b)

levelsof name, local(names)
local colnames "`names' trunk weight turn _cons"
matrix colnames A = `colnames'
matrix list A