如何在矩阵中获取回归输出的变量标签
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
变量中检索变量标签?我想要的是初始输出中显示的内容:Aud
、BMW
、Bui
等。我不想要 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
在 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
, 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