Fe和回归表中的第一个区别

时间:2014-07-16 08:18:01

标签: regression panel stata

我正在Stata进行分析,我有很多不同的面板回归(内部,第一差异和随机趋势)并正确查看结果,我使用eststoesttab

我现在的问题是,为了获得第一个差异和随机趋势的双重差异,我使用d. varname和d.d. varname。 Stata然后认为差异是新的变量,并将它们放在自己的行中,这变得非常难以阅读。

有谁知道如何获得一个回归表,其中Stata将varname,d. varname和d.d. varname视为同一个变量?

我的回归看起来像这样:

 foreach v in a aa aaa aaaa{
 qui eststo: xtreg `v' b b1 b2 b3 b4 b5 i.year, fe cluster(xy)
 qui eststo: xtreg `v' b b1 b2 b3 b4 b5 i.year if c>d, fe cluster(xy)
 qui eststo: reg d.`v' d.b d.b1 d.b2 d.b3 d.b4 d.b5 i.year, cluster(xy)
 qui eststo: reg d.`v' d.b d.b1 d.b2 d.b3 d.b4 d.b5 i.year if c>d, cluster(xy)
 qui eststo: reg d.d.`v' d.d.b d.d.b1 d.d.b2 d.d.b3 d.d.b4 d.d.b5 i.year, cluster(xy)
 qui eststo: reg d.d.`v' d.d.b d.d.b1 d.d.b2 d.d.b3 d.d.b4 d.d.b5 i.year if c>d, cluster(xy)
 esttab using output.tex, wide
 }

在我的表格中,我得到了我对

的估计
 b
 b1
 b2
 b3
 b4
 b5
 d.b1
 d.d.b1
 d.b2
 d.d.b2
 and so on..

2 个答案:

答案 0 :(得分:3)

这有点被黑客攻击 - 最终它没有做任何花哨的事情,只是自动更改规范中的变量名称。对于这么简单的问题,似乎有点太多的代码,但我不知道更简单的方法。

***create dummy data
set seed 99
webuse xtsetxmpl, clear
foreach i in "" 1 2 3 4 5 {
    g b`i' = uniform()
    }
foreach i in a aa aaa aaaa c d {
    g `i'= y*uniform()
    }
*next two lines just so the differencing works
g xy = pid
replace tod = (tod-1609570800000)/(36*100000)
xtset pid tod
***end of data creation

cap program drop diff
program define  diff
syntax anything
cap drop *_adj *adjDV
if "`anything'" == "orig" {
foreach i in "" 1 2 3 4 5 {
    g b`i'_adj = b`i'
    }
foreach i in a aa aaa aaaa {
    g `i'_adjDV = `i'
    }
}
else {
foreach i in "" 1 2 3 4 5 {
    g b`i'_adj = `anything'b`i'
    }
foreach i in a aa aaa aaaa {
    g `i'_adjDV = `anything'`i'
    }
}
 end
 **************************************
 *run original regression (excluding year term not necessary to example)
 **************************************
 eststo clear
 foreach v in a aa aaa aaaa {
 diff orig
 eststo: xtreg `v'_adjDV *adj , fe cluster(xy)
 eststo: xtreg `v'_adjDV *adj  if c>d, fe cluster(xy)
 diff d.
 eststo: reg `v'_adjDV *adj , cluster(xy)
 eststo: reg `v'_adjDV *adj  if c>d, cluster(xy)
 diff d.d.
 eststo: reg `v'_adjDV *adj , cluster(xy)
 eststo: reg `v'_adjDV *adj  if c>d, cluster(xy)
 esttab _all, wide
 }

你是新来的,所以只是为了将来,尝试发布一个MWE(最小的工作示例)---它使事情在这方面更快一些。您可以看到我在代码的第一部分中给出了如何执行此操作的示例。

答案 1 :(得分:0)

它实际上只使用esttab命令。一个例子:

esttab ,compress nogaps booktabs drop( _cons) ///
 indicate("State specific effects = var_dummy_*") ///
rename(    D.b b D2.b b D.b2 b2 D2.b b2 )   ///

重命名可以完成工作。其余部分包括在内以显示更多可能性。