Coefplot: несколько моделей с несколькими коэффициентами каждая на одном графике

Я хотел бы отобразить коэффициенты (с их доверительными интервалами) двух регрессий друг под другом. Используя Бен Янна приятно coefplot (ssc install coefplot), Я могу создать график с одним подграфом только там, где включены все коэффициенты из всех моделей, но мне не удается упорядочить коэффициенты по модели, а не по коэффициенту.

В качестве альтернативы я могу создать график с несколькими подграфами по коэффициенту, который мне не нужен: должен быть только один подграф и общая шкала для коэффициентов.

Вот минимальный пример, иллюстрирующий мои потребности и то, что я только что описал:

sysuse auto.dta, clear
reg price mpg rep78
eststo model1
reg price mpg rep78 weight
eststo model2

*what do I have: 2 models with 2 coefficients each (plus constant)

*what do I want: 1 graph with 2 models beneath one another, 
                *2 coefficients per model, 1 colour and legend entry per coefficient (not model!)
                *common scale

*what is easy to get:

coefplot model1 model2, ///1 graph with all coefficients and models, 
  keep(mpg rep78)         //but order is by coefficient, not by model
                          //how to add model names as ylabels?

*or 1 graph with 2 subgraphs by coefficient:
coefplot model1 || model2, ///
  keep(mpg rep78) bycoefs    

Может ли кто-нибудь помочь мне в получении графика, который я хочу оптимально использовать coefplot?

Как видно из примечаний в примере, идеальное решение будет включать одну запись цвета и условных обозначений для каждого коэффициента (не для модели) и ylabels с использованием названий моделей, но это вторично.

Я уже попробовал пару coefplot варианты, но мне кажется, что большинство из них для нескольких уравнений из одной модели, а не для коэффициентов из разных моделей.

1 ответ

Я не уверен, как обращаться с названиями моделей, но для первой части вашего вопроса мне кажется, что вы могли бы просто сделать что-то вроде:

sysuse auto.dta, clear
reg price mpg rep78
eststo m1
reg price mpg rep78 weight
eststo m2


coefplot (m1) || (m2), ///
drop(_cons)  byopts(row(2)) keep(mpg rep78)

Или я неправильно понимаю, что вы хотите?

Другие вопросы по тегам