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

问题描述 投票:0回答:1

在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 回归运行后的变量?我想要的是初始输出中显示的内容。Aud, BMW, Bui等。我不想要存储在 e(b) 矩阵。1b. name2, 2. name2, 3. name2等。有没有办法让我想要的东西存储在 e(b) 还是存储在其他估算结果中?蟮? estout/esttab? 我想把结果存储在一个矩阵中。

variables label naming-conventions stata
1个回答
1
投票

你可以将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
© www.soinside.com 2019 - 2024. All rights reserved.