Построение одного и того же коэффициента во времени
Я использую coefplot
пакет в Stata, чтобы построить график изменения коэффициента в зависимости от используемой модели. В частности, я хочу увидеть, как коэффициент интереса меняется со временем. Я строю график по вертикали, чтобы ось х могла показывать год, к которому относится каждый коэффициент. Тем не менее, я не могу соответственно обозначить ось X (вместо того, чтобы показывать имя интересующей меня переменной, x1
, он должен указывать 1, 2 и 3. Я также хотел бы опустить легенду, используя опцию legend(off)
но это не работает.
Это код, который я использую:
reg y x1 x2 if year==1;
estimates store t1;
reg y x1 x2 if year==2;
estimates store t2;
reg y x1 x2 if year==3;
estimates store t3;
coefplot t1 t2 t3, drop(x2) vertical yline(0);
Любое предложение будет с благодарностью.
1 ответ
Бессмысленный пример, который использует две категории (а не время), может быть легко адаптирован:
clear
set more off
sysuse auto
reg price weight rep78 if foreign
estimates store foreign
reg price weight rep78 if !foreign
estimates store not_foreign
matrix at = (1 / 2)
coefplot foreign || not_foreign, drop(rep78 _cons) vertical bycoefs
Вы можете построить синтаксис внутри цикла, используя local
, Тогда накорми это coefplot
, Чтобы быть точным, я имею в виду что-то вроде примерного синтаксиса:
year1 || year2 || ... || yearn
Последняя команда будет выглядеть примерно так:
coefplot `allyears', drop(<some_stuff>) vertical bycoefs
Полный пример, который вовлекает время:
clear
set more off
use http://www.stata-press.com/data/r12/nlswork.dta
forvalues i = 70/73 {
regress ln_w grade age if year == `i'
estimates store year`i'
local allyears `allyears' year`i' ||
local labels `labels' `i'
}
// check
display "`allyears'"
display `"`labels'"'
coefplot `allyears', keep(grade) vertical bycoefs bylabels(`labels')
Если coefplot
не оказывается достаточно гибким, вы всегда можете попробовать с statsby
а также graph
команды (help graph
).