我想在一个边距图中绘制由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("")
}
这给了我三个单独的文件。但我当然希望所有的线都在一个图中,用不同的颜色。
有任何建议怎么做?
答案 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")
当然,只比较全部在同一范围内的变量系数才有意义。这个限制不是我原来答案的一部分 - 对不起。