楼主: xingxf
8718 10

[编程问题求助] 分组esttab的问题 [推广有奖]

  • 0关注
  • 50粉丝

已卖:3687份资源

副教授

12%

还不是VIP/贵宾

-

威望
0
论坛币
60582 个
通用积分
772.5645
学术水平
224 点
热心指数
251 点
信用等级
138 点
经验
20775 点
帖子
753
精华
0
在线时间
522 小时
注册时间
2011-3-12
最后登录
2025-4-1

楼主
xingxf 发表于 2013-5-26 07:40:12 |AI写论文
1000论坛币
有若干dependent variable:y1,y2,y3,y4,y5,y6。有若干independent variable:x1, x2, x3, x4, x5, x6, x7, x8, x9, x10。另外,还有一个进行分组的参数G,G有三个取值0,1,2 。
现在对每一个dependent variable都要做如下三个回归:
reg y1 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==0
reg y1 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==1
reg y1 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==2
并且对每一个dependent variable用esttab输出回归结果到单独的csv文件

我已写程序如下:

foreach var in y1 y2 y3 y4 y5 y6 {

reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==0

est store `var'_m1

reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==1

est store `var'_m2

reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==2

est store `var'_m3

esttab `var'_m1 `var'_m2 `var'_m3 using `var'.csv, replace

}


以上程序很简单,但是有个缺点,如果分组G较多的话,那么要重复写多次如下两行代码:

reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==

est store `var'_m

我想用bys G: eststo: reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10

但是由于我有许多dependet variable,用esttab输出的结果包含所有dependent variable回归,而不是对于每一个dependent variable单独输出一个csv表格。


哪位有什么好办法解决这个问题么?非常感谢!


reg example.dta.zip (111.67 KB) 本附件包括:
  • reg example.dta

最佳答案

dxystata 查看完整内容

levelsof G,clean local(Gvalue) foreach var in y1 y2 y3 y4 y5 y6 { local i=1 local `var'_m forecach value of local Gvalue { reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==`value' est store `var'_m`i' local `var'_m ``var'_m' `var'_m`i' local i=`i'+1 } esttab "`var'_m" using `var'.csv, replace }
关键词:esttab Est tab Independent Dependent 程序

本帖被以下文库推荐

沙发
dxystata 发表于 2013-5-26 07:40:13
levelsof G,clean local(Gvalue)
foreach var in y1 y2 y3 y4 y5 y6 {
        local i=1
        local `var'_m
        forecach value of local Gvalue {
                reg `var' x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 if G==`value'
                est store `var'_m`i'
                local `var'_m ``var'_m' `var'_m`i'
                local i=`i'+1
        }
        esttab "`var'_m" using `var'.csv, replace
}

藤椅
dxystata 发表于 2013-5-26 08:07:50
esttab "`var'_m" using `var'.csv, replace

esttab `var'_m using `var'.csv, replace
你测试一下是否要加引号

板凳
xingxf 发表于 2013-5-26 08:35:31
dxystata 发表于 2013-5-26 08:06
levelsof G,clean local(Gvalue)
foreach var in y1 y2 y3 y4 y5 y6 {
        local i=1
这个我试了,好像还是有点问题。如果esttab那步加上引号,那么不输出结果。如果不加引号,会报错: estimation result y1_mm_m not found

想问您一下一开始levelsof G,clean local(Gvalue)
中间的 local `var'_m ``var'_m' `var'_m`i'
分别是起什么作用的啊?

报纸
dxystata 发表于 2013-5-26 08:38:15
你传部分数据上来,我测试一下!

地板
xingxf 发表于 2013-5-26 09:07:49
dxystata 发表于 2013-5-26 08:38
你传部分数据上来,我测试一下!
我上传了

7
liangsky 发表于 2013-5-26 09:58:57
把`var'_m改为 `var'_m* ! 不用加引号

8
sungmoo 发表于 2013-5-26 13:53:04
use "reg example.dta", clear
g y=1
expandcl 6,cl(y) gen(dependent)
forv i=1/6{
replace y=y`i' if dependent==`i'
}
statsby _b _se,clear by(dependent A): reg y x*

9
xingxf 发表于 2013-5-26 19:02:18
sungmoo 发表于 2013-5-26 13:53
use "reg example.dta", clear
g y=1
expandcl 6,cl(y) gen(dependent)
statsby挺好的,但是在输出表格方面esttab更灵活好用一些

10
xingxf 发表于 2013-5-26 23:59:01
sungmoo 发表于 2013-5-26 13:53
use "reg example.dta", clear
g y=1
expandcl 6,cl(y) gen(dependent)
如果想输出分组回归的各项系数并进行后续计算,statsby是最好的选择。
但是如果想输出学术论文的回归表格,esttab是比较好的选择,因为esttab输出的格式是系数beta下面一行显示p-value, 并可以设置保留小数点后面的位数,同时对显著的结果加注星标。可以说它直接输出的就是学术论文用的结果表格。这些功能是statsby不具备的。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-9 04:11