这个问题是涉及到另外一个问题,我问在CrossValidated:
我在Stata
运行多个逻辑模型和要存储模型的结果,并使用margins
一些后估计的。使用ado estout
有两种相对简单的可能性(请参见documentation)。但是,两者都缺乏z统计或一些总结统计。下面是一个例子:如何使用estadd获得利润率的估计p值?
. webuse acmemanuf, clear
. // estadd
. eststo est1: qui logit acceptable i.temp y
. qui estadd margins, dydx(*)
. eststo est2: qui logit acceptable i.temp y i.pressure
. qui estadd margins, dydx(*)
. // margins, post
. qui logit acceptable i.temp y, nolog
. eststo est3: qui margins, dydx(*) post
. qui logit acceptable i.temp y i.pressure, nolog
. eststo est4: qui margins, dydx(*) post
. // Wrong t-statistics using "estadd"
. esttab est1 est2, cells("margins_b t") margin pr2 aic
----------------------------------------------------------------
(1) (2)
acceptable acceptable
margins_b t margins_b t
----------------------------------------------------------------
acceptable
1.temp 0 . 0 .
2.temp .122275 .8468373 .2366358 1.448193
3.temp .1028261 .6194538 .0930619 .6025044
y .0171374 2.752288 .0202188 2.993524
1.pressure 0 .
2.pressure -.2384807 -1.454117
----------------------------------------------------------------
N 49 49
pseudo R-sq 0.233 0.271
AIC 55.48 55.10
----------------------------------------------------------------
Marginal effects
. // Loosing summary statistics using "margins, post"
. esttab est3 est4, cells("b t") margin pr2 aic
----------------------------------------------------------------
(1) (2)
b t b t
----------------------------------------------------------------
1.temp 0 . 0 .
2.temp .122275 .8600932 .2366358 1.723335
3.temp .1028261 .6322357 .0930619 .6126009
y .0171374 4.103384 .0202188 5.118546
1.pressure 0 .
2.pressure -.2384807 -1.729937
----------------------------------------------------------------
N 49 49
pseudo R-sq
AIC . .
----------------------------------------------------------------
Marginal effects
我想有一个表,该表显示了从第一表和z统计从上面的例子中所述第二表中的汇总统计。
编辑
我写了一个小地方程序,做这项工作,其结果可以通过esttab
被捕获。请注意,对于产生t统计数据而不是z统计数据的模型,程序代码必须稍作修改。如果有人可以将程序整合到estadd
的子程序中,如documentation中所述,我很想听到它,因为我只是成功添加了线性回归模型的结果。这是我做文件:
webuse acmemanuf, clear
program define margzp
tempname rtab
tempname tmargins_z
tempname tmargins_p
mat `rtab' = r(table)
mat `tmargins_z' = `rtab'["z", 1..(colsof(`rtab')-1)]
mat `tmargins_p' = `rtab'["pvalue", 1..(colsof(`rtab')-1)]
estadd matrix margins_z = `tmargins_z'
estadd matrix margins_p = `tmargins_p'
end
eststo: logit acceptable i.temp y
estadd margins, dydx(*)
margzp *
eststo: logit acceptable i.temp y i.pressure
estadd margins, dydx(*)
margzp *
esttab, cells((margins_b(fmt(3) star pvalue(margins_p)) ///
margins_z)) pr2 aic bic star(+ 0.10 * 0.05 ** 0.01 *** 0.001) ///
postfoot(`"{hline @width}"' ///
`"Marginal effects, standard errors in parentheses"' `"@starlegend"') ///
其中给出如下表:
----------------------------------------------------------------------
(1) (2)
acceptable acceptable
margins_b margins_z margins_b margins_z
----------------------------------------------------------------------
acceptable
1.temp 0.000 . 0.000 .
2.temp 0.122 0.847 0.237 1.448
3.temp 0.103 0.619 0.093 0.603
y 0.017** 2.752 0.020** 2.994
1.pressure 0.000 .
2.pressure -0.238 -1.454
----------------------------------------------------------------------
N 49 49
pseudo R-sq 0.233 0.271
AIC 55.48 55.10
BIC 63.05 64.56
----------------------------------------------------------------------
Marginal effects, standard errors in parentheses
+ p<0.10 * p<0.05, ** p<0.01, *** p<0.001
如果你不满意,请你简单评论一下。也许,我可以重新回答这个问题? – 2014-10-30 11:10:03
目前还不清楚你是否在任何'esttab'程序套件中被黑客攻击或者暗示。如果你想这样做,我会直接联系作者(Ben Jann)。我不认为他在这里访问。 – 2014-10-31 11:18:41
@NickCox我开始修改'estout'套件的ado文件,但后来我认定这对我的目的来说太多了。因此,我只写了这个小程序,并使用一些更通用的'estout'函数来使用'esttab'来捕获输出。 – 2014-11-01 12:47:34