以下是引用zuiaibz在2006-11-20 18:13:00的发言: 我想请教一个问题:
形式如下的数据
name y x
1 3332 7765
1 5554 55656
1 555 6665
2 354 6656
2 566 67788
2 655 466
按name 分别做回归
即命令 by name,sort:reg y x
运行后会按name得到多个回归结果表,请问有没有办法直接输出x的系数的?
就像这样
name coef
1 XXXX
2 XXXX
可以采用下面这段小程序(假设有30个不同的name):
local N = 30
mat C = J(`N', 2, 0)
forvalues id = 1(1)`N'{
qui reg y x if name == `id'
mat C[`id', 1] = `id'
mat C[`id', 2] = _b[x]
}
mat list C
--------- 下面是采用 STATA 数据测试结果 -----
. sysuse auto, clear
(1978 Automobile Data)
. rename price y
. rename mpg x
. rename foreign name
. replace name = 2 if name == 0
(52 real changes made)
.
. local N = 2
.
. mat C = J(`N', 2, 0)
. forvalues id = 1(1)`N'{
2. qui reg y x if name == `id'
3. mat C[`id', 1] = `id'
4. mat C[`id', 2] = _b[x]
5. }
.
. mat list C
C[2,2]
c1 c2
r1 1 -250.36681
r2 2 -329.25507
.
end of do-file