绘制Stata中的个体边际效应

时间:2014-03-03 15:46:07

标签: stata

我有一个概率模型,我正在尝试计算和绘制连续变量对样本中所有观察结果的边际效应。

我正在使用Stata,我有五个自变量。我想为所有个体计算边际效应的变量需要9个可能的整数值(0到8),我把它视为连续的(不是因子变量)。对边际效应最常见的命令似乎是边缘:

margins, dydx(x) at(x=(0(1)8))
marginsplot 

此命令不能执行我想要执行的操作。它似乎计算了x=0, x=1等所有个体的边际效应,然后对每个x值进行平均。我得到的输出报告了每个x值的边际效应和标准误差。

我想获得样本中每个人的x的边际效应。如果模型中的其他变量对这些观察值采用不同的值,则x=0应该具有不同边际效应的两个人。如何计算和绘制这些效果?

1 个答案:

答案 0 :(得分:1)

您可以估算模型predict,再次使用replacepredict更改x。然后,您可以计算两个预测之间的差异,以获得边际效应。您可以将x更改为1或使用少量epsilon(这将近似计算边距计算得更好)。第一个版本显然会更大。

以下是使用汽车数据的示例:

set more off
sysuse auto, clear
keep foreign mpg rep78 make

clonevar orig_rep78 = rep78

probit foreign mpg rep78
margins, dydx(rep78)

predict phat, pr

replace rep78 = rep78 + 1
predict phat_plus_one, pr
gen double finite_diff = phat_plus_one - phat

replace rep78 = orig_rep78 + 0.01
predict phat_plus_eps, pr

gen double eps_diff = (phat_plus_eps - phat)/.01

drop rep78
rename orig_rep78 rep78

tw (scatter finite_diff mpg) (scatter eps_diff mpg)

sum *_diff

您可以看到eps版本更接近地匹配边距输出。您可能希望了解估算值对不同epsilon值的敏感程度。

我不知道你想到的是什么样的图形,所以我只是将MEs绘制成另一个回归量。您可以看到ME以mpg增加,这是有道理的,因为索引函数系数都是正数。 mpg低于30的低值是有道理的,因为预测的概率已接近1,所以额外的修复不能提高它。