利润率与lincom / nlcom在Stata中有什么不同?

问题描述

Stata中的marginslincom之间到底有什么区别?如何调整nlcom中的手动公式以匹配margins的结果?谢谢

* load data
use http://www.stata-press.com/data/r13/nlswork

* set panel structure
xtset idcode year

* fixed effects regression 
xtreg ln_wage c.wks_ue##c.wks_ue union age,fe coeflegend
margins,dydx(wks_ue)
------------------------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      wks_ue |    -.00594   .0009744    -6.10   0.000    -.0078497   -.0040303
------------------------------------------------------------------------------

* check with lincom/nlcom
lincom _b[wks_ue] + 2*_b[c.wks_ue#c.wks_ue]
nlcom _b[wks_ue] + 2*_b[c.wks_ue#c.wks_ue]

------------------------------------------------------------------------------
     ln_wage |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       _nl_1 |  -.0062406   .0010319    -6.05   0.000    -.0082632   -.0042181
------------------------------------------------------------------------------

解决方法

我错过了wks_ue的平均值。从估计的样本中获取它,将其另存为本地,并将其包含在lincom中。系数和标准误差将相同。 lincom使用t分布,margins使用z分布。

* load data
use http://www.stata-press.com/data/r13/nlswork

* set panel structure
xtset idcode year

* fixed effects regression 
xtreg ln_wage c.wks_ue##c.wks_ue union age,fe coeflegend
margins,dydx(wks_ue)

qui sum wks_ue if e(sample)
local wks_ue_mean = r(mean)

lincom wks_ue + 2*c.wks_ue#c.wks_ue*`wks_ue_mean' 

enter image description here