Как получить метки переменных вывода регрессии в матрице - PullRequest
0 голосов
/ 08 мая 2020

В 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
....

Затем go к результатам оценки:

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, et c. Мне не нужно то, что хранится в матрице e(b): 1b. name2, 2. name2, 3. name2, et c. Есть ли способ сохранить то, что я хочу, в e(b) или где-то еще в других результатах оценки? Может estout/esttab? Я хочу, чтобы результаты сохранялись в матрице.

1 Ответ

1 голос
/ 11 мая 2020

Вы можете сохранить 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
...