楼主: jinlong1835
39412 23

[stata资源分享] 如何将回归得到的变量系数保存 [推广有奖]

11
jinlong1835 发表于 2014-5-20 22:37:03
ywh19860616 发表于 2014-5-20 22:21
就是把你标注的那两句换为这两句命令
你可以把自己的数据修改,然后传一个样本数据到论坛,可以方便调 ...
insheet using C:\Users\dell\Desktop\12345.csv
reg  taccta ta revrecta ppea roa1,noc
predict e,r
gen name=_n
keep  v1 e name
sort name
save 1,replace
sample 20
sort name
save 2,replace
use 1
sort name
merge name using 2
gen part=1 if _merge==3
replace part=0 if part==.
reg  e part
gen ncoeff=_b[part]
以上这步会得到这样的结果
      |     v1           e   name   _merge   part     ncoeff |
      |------------------------------------------------------|
   1. |      2   -.0596653      1        1      0   .0348098 |
   2. |      4     .132309      2        1      0   .0348098 |
   3. |      5    .1781067      3        1      0   .0348098 |
   4. |      6   -.1426554      4        1      0   .0348098 |
   5. |      7    .4624781      5        1      0   .0348098 |
      |------------------------------------------------------|
   6. |      8    .0878844      6        1      0   .0348098 |
   7. |      9    .2980676      7        1      0   .0348098 |
   8. |     11   -.2907471      8        1      0   .0348098 |
   9. |     12    2.144006      9        1      0   .0348098 |
  10. |     14   -.3491684     10        1      0   .0348098 |
      |------------------------------------------------------|
  11. |     16    .2977334     11        1      0   .0348098 |
  12. |     18    .4632861     12        3      1   .0348098 |
  13. |     19    .5795037     13        1      0   .0348098 |
  14. |     20    1.202998     14        3      1   .0348098 |
  15. |     21    .9889596     15        1      0   .0348098 |
最有一列不是那个系数吗?我需要将它带入到另一个数据文件中。这样用循环语句做下来不就可以得到100次随机抽样回归得到的part的系数了吗?可是我不知道怎么编这段程序。

12
ywh19860616 发表于 2014-5-20 22:49:49
jinlong1835 发表于 2014-5-20 22:37
insheet using C:\Users\dell\Desktop\12345.csv
reg  taccta ta revrecta ppea roa1,noc
predict e,r
...
没有你的数据,你按照自己做小改动试试
  1. mat b = J(100,1,0)
  2. preserve
  3. forvalues i=1/100{
  4. sort year
  5. sample 100, count by(year)
  6. save `i'.dta,replace
  7. restore,preserve

  8. merge 1:1 num year using `i'.dta
  9. sort year
  10. gen part`i'=1 if _merge==3
  11. replace part`i'=0 if part`i'==.
  12. drop _merge
  13. regress DA2 part`i',level(95)
  14. mat b[`i',1] = _b[part`i']
  15. test part`i'
  16. }

  17. matrix list b
复制代码
一份耕耘,一份收获。

13
jinlong1835 发表于 2014-5-20 23:17:39
非常感谢您。实在不好意思再麻烦您,可是我还不知道能找谁帮忙,您给我写的程序我执行了,可是执行不了。我把实验的数据传上来,麻烦您再帮我调试一下。

14
jinlong1835 发表于 2014-5-20 23:22:47
不需要分年抽样了,对总样本随机抽样20%,重复100次就行。辛苦您了。

试验1.xlsx
下载链接: https://bbs.pinggu.org/a-1557932.html

207.29 KB

样本

15
jinlong1835 发表于 2014-5-20 23:50:36
多谢高人,在你的帮助下,刚才我试出来了,谢谢您。

16
ywh19860616 发表于 2014-5-21 08:26:09
模型大体的程序就是这样
其实用我刚开始给的simulate那个程序会好些
因为Stata自带的simulate比较方便。
一份耕耘,一份收获。

17
jinlong1835 发表于 2014-5-22 20:44:14
您好,还需要再麻烦你一下。通过您之前的帮助我已经知道如何将part的回归系数提取出来了,现在还有一个问题我还需要提取出part的p-value,我在网上找了一下有以下这两段命令:
local t = _b[part`i']/_se[part`i']
local p=2*ttail(e(df_r),abs(`t'))
这是算p-value的,我现在不知道如何将它增加到矩阵中,按照您先前叫我的,这样做吗?
mat b[`i',1] = p[part`i']  可是我没做出来,希望您还能帮助我。

18
ywh19860616 发表于 2014-5-22 21:22:31
jinlong1835 发表于 2014-5-22 20:44
您好,还需要再麻烦你一下。通过您之前的帮助我已经知道如何将part的回归系数提取出来了,现在还有一个问题 ...
  1. mat b = J(100,1,0)
  2. mat se = J(10,1,0)
  3. mat p = J(10,1,0)

  4. preserve
  5. forvalues i=1/100{
  6. sort year
  7. sample 100, count by(year)
  8. save `i'.dta,replace
  9. restore,preserve

  10. merge 1:1 num year using `i'.dta
  11. sort year
  12. gen part`i'=1 if _merge==3
  13. replace part`i'=0 if part`i'==.
  14. drop _merge
  15. regress DA2 part`i',level(95)
  16. mat b[`i',1] = _b[part`i']
  17. mat se[`i',1] = _se[part`i']
  18. mat p[`i',1] = 2*ttail(e(df_r),abs(_b[part`i']/_se[part`i']))
  19. test part`i'
  20. }

  21. matrix list b
复制代码
一份耕耘,一份收获。

19
jinlong1835 发表于 2014-5-22 21:30:53
ywh19860616 发表于 2014-5-22 21:22
你好,请问如果是1000次重复回归那,那两个10应该怎么改?

20
ywh19860616 发表于 2014-5-22 21:34:38
  1. mat b = J(1000,1,0)

  2. mat se = J(1000,1,0)

  3. mat p = J(1000,1,0)



  4. preserve

  5. forvalues i=1/1000{
  6. ...
  7. }
复制代码
一份耕耘,一份收获。

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

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