问题描述
我正在尝试为两个变量创建散点图,同时偏向于控制变量的影响。
我的回归如下:
reg y x z,robust
twoway scatter y x,mlabel(country) || lfitci y x
但是现在我有了控制变量z,我不知道如何将它包含在散点图中。
还有其他命令可以用于它吗?谢谢。
解决方法
我将向模型添加第二个控制变量以使图表更有趣。
最简单的方法是使用 margins
:
sysuse auto,clear
keep price mpg foreign weight
/* Expected Value with CI Varying mpg */
reg price mpg i.foreign weight,robust
margins,at(mpg = (10(5)30))
marginsplot,name(ci_only,replace) ylab(#10,format(%9.0fc))
/* Add Scatterplot and Modify Aesthetic Options */
reg price mpg i.foreign c.weight,robust
forvalues v = 1(1)5 {
gen mpg`v'=5+`v'*5
}
margins,at(mpg = (10(5)30)) generate(exp_price)
marginsplot,addplot( ///
scatter exp_price1 mpg1,ms(oh) mcolor(maroon) mlwidth(vvthin) || ///
scatter exp_price2 mpg2,ms(oh) mcolor(maroon) mlwidth(vvthin) || ///
scatter exp_price3 mpg3,ms(oh) mcolor(maroon) mlwidth(vvthin) || ///
scatter exp_price4 mpg4,ms(oh) mcolor(maroon) mlwidth(vvthin) || ///
scatter exp_price5 mpg5,ms(oh) mcolor(maroon) mlwidth(vvthin) || ///,below) ///
legend(off) ylab(#10,format(%9.0fc)) recastci(rline) ///
ciopts(lpattern(shortdash) lcolor(navy) lwidth(thin)) ///
plotopts(lcolor(navy) mcolor(navy) lwidth(thin) mlwidth(thin) ms(Oh)) ///
name(ci_plus_scatter,replace)
第一幅图显示了所有汽车的预期价格变化 mpg,但保持数据中观察到的外国和重量。
第二个图添加了建模值的散点图,并使用了一些美学选项。添加这些需要更多的工作。
您的评论与其说是对 PO 的定义,不如说是重述。从字里行间看,你可能想要这样的东西:
sysuse auto,clear
reg price mpg weight,robust
gen price_po_mpg = price - _b[mpg]*mpg
tw (scatter price_po_mpg mpg) (lfitci price_po_mpg mpg,ciplot(rline))
这个 CI 会关闭,因为它没有考虑 mpg 系数的估计,所以我不会太认真。或者,如果您的意思是将年龄设置为预期值的中位数和不同的教育程度,则可以使用 margins
命令完成。