2014-10-30 164 views
0

这个问题是涉及到另外一个问题,我问在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 
+0

如果你不满意,请你简单评论一下。也许,我可以重新回答这个问题? – 2014-10-30 11:10:03

+0

目前还不清楚你是否在任何'esttab'程序套件中被黑客攻击或者暗示。如果你想这样做,我会直接联系作者(Ben Jann)。我不认为他在这里访问。 – 2014-10-31 11:18:41

+0

@NickCox我开始修改'estout'套件的ado文件,但后来我认定这对我的目的来说太多了。因此,我只写了这个小程序,并使用一些更通用的'estout'函数来使用'esttab'来捕获输出。 – 2014-11-01 12:47:34

回答

1

下面是一个例子。我不是100%肯定我收集了你想要的一切。如果没有,请添加一个你想要的表格的例子:

. sysuse auto 
(1978 Automobile Data) 

. eststo, title(Index): logit foreign price mpg 

Iteration 0: log likelihood = -45.03321 
Iteration 1: log likelihood = -36.627434 
Iteration 2: log likelihood = -36.462562 
Iteration 3: log likelihood = -36.46219 
Iteration 4: log likelihood = -36.462189 

Logistic regression        Number of obs =   74 
                LR chi2(2)  =  17.14 
                Prob > chi2  =  0.0002 
Log likelihood = -36.462189      Pseudo R2  =  0.1903 

------------------------------------------------------------------------------ 
    foreign |  Coef. Std. Err.  z P>|z|  [95% Conf. Interval] 
-------------+---------------------------------------------------------------- 
     price | .000266 .0001166  2.28 0.022  .0000375 .0004945 
     mpg | .2338353 .0671449  3.48 0.000  .1022338 .3654368 
     _cons | -7.648111 2.043673 -3.74 0.000 -11.65364 -3.642586 
------------------------------------------------------------------------------ 
(est1 stored) 

. eststo, title(AMEs): margins, dydx(*) post 

Average marginal effects       Number of obs =   74 
Model VCE : OIM 

Expression : Pr(foreign), predict() 
dy/dx w.r.t. : price mpg 

------------------------------------------------------------------------------ 
      |   Delta-method 
      |  dy/dx Std. Err.  z P>|z|  [95% Conf. Interval] 
-------------+---------------------------------------------------------------- 
     price | .0000428 .0000166  2.57 0.010  .0000102 .0000754 
     mpg | .0376126 .0074022  5.08 0.000  .0231045 .0521207 
------------------------------------------------------------------------------ 
(est2 stored) 

. esttab, drop(_cons) 

-------------------------------------------- 
         (1)    (2) 
        foreign     
-------------------------------------------- 
main           
price   0.000266*  0.0000428* 
        (2.28)   (2.57) 

mpg     0.234***  0.0376*** 
        (3.48)   (5.08) 
-------------------------------------------- 
N      74    74 
-------------------------------------------- 
t statistics in parentheses 
* p<0.05, ** p<0.01, *** p<0.001 
+0

非常感谢!我想比较两个不同的嵌套模型。因此,“指数”估计对我来说并不重要。但是,我想保留“指数”模型的AIC和R2等汇总统计数据,但只报告边际效应估计的效应和z统计量。我修改了我的问题,使其更清晰。 – 2014-10-30 22:20:53