2015-10-11 4 views
4

Я использую пакет 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); 

Любое предложение было бы весьма признателен

+0

Я вставил 'if' в ваши команды' regress'; они не могли бы работать иначе. –

ответ

3

нелепый пример, который использует две категории (и не раз) может быть легко адаптируется:

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 и команд (help graph).

+0

Это очень полезно, огромное спасибо! – Fran

+0

Следуя этому, вместо «year70», «year71» и т. Д. Было бы возможно, что ось x показывает только «70», «71», «72» и «73»? – Fran

+0

Это недопустимые имена для 'оценок магазина', но вы можете использовать опцию' bylabels() '. Я отредактировал свой ответ. –