Stata中一个边缘图中的几个边距的图表

时间:2014-09-24 15:37:33

标签: plot stata margins

我想在一个边距图中绘制由margins命令产生的边距,但是来自不同的margins估算。重要限制:这些系数在相同的最小值和最大值内,因此具有可比性。我该怎么做?

这是一个代码示例:

webuse nhanes2, clear

tnbreg psu weight hdresult iron, iterate(5) // I am using this regression type so I stick with it here

我知道我可以将所有边距响应图放在一个图中

margins, dydx(*)
marginsplot, horizontal xline(0) yscale(reverse) recast(scatter)

但实际上我分别为每个回归量运行了三个margins命令,因为我想比较回归量变化时的效果。因此代码是

foreach var in weight hdresult iron {
  * Procedure to get the numbers for margins right
  quietly summarize `var '
  local max = r(max)
  local step = round(r(max)/6)

  quietly margins, at(`cvar'=(1(`step')`max'))
  marginsplot, title("") ytitle("")
}

这给了我三个单独的文件。但我当然希望所有的线都在一个图中,用不同的颜色。

有任何建议怎么做?

2 个答案:

答案 0 :(得分:5)

使用combomarginsplot(以及帮助文件中):

sysuse auto, clear

oprobit rep78 i.foreign mpg price weight
margins foreign, at(mpg=(10(5)50)) predict(outcome(3)) saving(file1, replace)

oprobit rep78 i.foreign mpg
margins foreign, at(mpg=(10(5)50)) predict(outcome(3)) saving(file2, replace)

oprobit rep78 i.foreign mpg gear
margins foreign, at(mpg=(10(5)50)) predict(outcome(3)) saving(file3, replace)

combomarginsplot file1 file2 file3, ///
    labels("Full model" "Restricted model" "Gear Model") noci

combomarginsplot是Nicholas Winter用户编写的命令。您可以安装它

ssc install combomarginsplot

答案 1 :(得分:1)

基于@ RobertoFerrer建议使用combomarginsplot我现在正在欺骗那个包(感谢Nicholas Winter):

webuse nhanes2, clear

* Run regressions
foreach var in weight hdresult iron {
  * Trick: always regress on the same variable
  gen testvar = `var'

  * Any regression where testvar enters first - the identical variable will be omitted
  tnbreg psu ///
     testvar weight hdresult iron, iterate(5)

  * Procedure to get the numbers for margins right
  quietly summarize testvar
  local max = r(max)
  local step = round(r(max)/6)

  * Margins post estimation
  quietly margins, at(testvar=(1(`step')`max')) saving(margins_`var', replace)

  * Drop testvar so that it can be reassigned within the loop
  drop testvar
}

* Combine the margins graph information
combomarginsplot margins_weight margins_hdresult margins_iron, labels("Weight" "HDrestul" "Iron")

当然,只比较全部在同一范围内的变量系数才有意义。这个限制不是我原来答案的一部分 - 对不起。