楼主: gushiydw
55718 79

[一般统计问题] 如何在stata中用bootstrap方法比较组间差异?请教高手!   [推广有奖]

21
gushiydw 发表于 2011-10-10 08:15:41
我把20楼例子中的数据附上,由于论坛不支持stata扩展名格式的附件,我压缩了一下!

panel.rar
下载链接: https://bbs.pinggu.org/a-975683.html

1.54 KB

20楼问题的平衡面板数据

本附件包括:

  • panel.dta

22
gushiydw 发表于 2011-10-10 08:39:37
我自己根据我在21楼传的数据,来尝试用bdiff命令进行bootstrap组间差异检验,结果在最后一步(bdiff, tvar(edu) truediff(diff0) n1(54) bs(100) )被卡住,系统提示“varlist required”,我尝试着把命令中bdiff后的逗号去掉,结果系统提示:“factor variables and time-series operators not allowed”   

自己尝试使用的命令如下,重复100次:
xtset id year
xtreg  roe rd  lnasset if indus==1,fe
local b1=_b[rd]
xtreg  roe rd  lnasset if indus==0,fe
local b2=_b[rd]
scalar diff0 = `b1' - `b2'   
dis  scalar(diff0)
bdiff, tvar(rd) truediff(diff0) n1(54) bs(100)

不知哪里出了问题,请连帮主指教!我stata编程能力差,很想用命令解决!

23
arlionn 在职认证  发表于 2011-10-10 09:28:45
今天有课,尽量晚上抽空解决各位提出的疑问。我想可能是 bdiff 程序中存在一些 bug,需要花点时间排查一下。多谢诸位的建议。

24
gushiydw 发表于 2011-10-10 19:04:17
谢谢连帮主!

25
gushiydw 发表于 2011-10-12 22:46:07
继续关注这个问题!

26
gushiydw 发表于 2011-10-13 17:59:42
帮主最近很忙,继续关注此贴,因为这个问题重要!

27
arlionn 在职认证  发表于 2011-10-13 22:41:09
前两天太忙,今天才抽空弄好,请查看附件中的程序和测试程序。
bdiff.ado 和 bdiff.hlp 放置于 stata11\ado\base\b 文件夹中即可。

*-注意:新版的 bdiff.ado 命令语法有所改动,请输入 help bdiff 查看新的帮助文件。
  
*==========================
*-测试程序 1:基于 20# 楼童鞋提供的数据
*==========================  

  cd D:\stata11\ado\personal\temp
  use panel_bdiff, clear
  
  global xx "rd lnasset"  // 解释变量
  xtset id year
  xtreg  roe $xx if indus==1,fe
    mat b1 = e(b)
    est store m1
        
  xtreg  roe $xx if indus==0,fe
    mat b2 = e(b)
    est store m2
        
  *-结果对比
    esttab m1 m2, mtitle(m1 m2) nogap
        
  *-记录真实差异        
    mat D = (b1 \ b2 \ b1-b2)
    local d1_0 = D[3,1]        // 第一个解释变量的系数差异
    local d2_0 = D[3,2]        // . 二....
    mat list D                 // 真实差异
   
  *-Bootstrap 系数差异
    bdiff roe $xx, truediff(`d1_0' `d2_0') n1(9) bs(100) seed(123)
  
  

  
*==========================
*-测试程序 2:基于模拟数据
*==========================  
  
  *-自行生成一份模拟数据
  
    *-Group 1
        * y[it] = a + b1*x[it] + e[it]    where, b1=0.3
        
    *-Group 2
        * y[it] = a + b2*x[it] + e[it]   where, b2=0.8
        
        *-Goal:Test Ho: b1=b2
        

    cap xtarsim
        if _rc{
          ssc install xtarsim, replace  // 下载并安装 xtarsim 命令
        }
        
        
  *------------------以下命令请选中后整体执行-----------------------        
  
        clear
        xtarsim y x eta, n(200) t(10) g(0) b(0.3) r(.2) sn(9) seed(1234)
        gen gg = 1           // 第一组数据
        save data01, replace
        xtarsim y x eta, n(300) t(10) g(0) b(0.8) r(.2) sn(9) seed(1235)
        replace ivar = 600000+ivar
        gen gg = 2           // 第二组数据
        append using data01
        
        xtreg y x if gg==1, fe
          local b1 = _b[x]
          est store g1
        xtreg y x if gg==2, fe
          local b2 = _b[x]
          est store g2
         
  *-记录真实差异                 
        local d0 = `b1' - `b2'
        
  *-结果对比        
        esttab g1 g2, mtitle(g1 g2) nogap
        
  *-Bootstrap 系数差异
    bdiff y x, truediff(`d0') n1(200) bs(100) seed(123)
         
  *----------------------------Over------------------------------  
  
  *-Note: 大家可以在数据生成过程中修改 b1 和 b2 的数值,比如:
  *       b1=0.7; b2=0.8,由此可以测试出 bdiff 命令的检定力(Power)
  
  *-使用中有任何问题,请与我联系,以便改进:arlionn@163.com


*===========测试结果===============
.   *-Bootstrap 系数差异
.     bdiff y x, truediff(`d0') n1(200) bs(100) seed(123)

Begin Time :13 Oct 2011 22:10:39

Bootstrap 组间系数差异检验
----------------------------------------------------------
  变量         真实差异      抽样差异       实证 P 值
----------------------------------------------------------
  x             -0.1069       -0.0012         0.0000
----------------------------------------------------------
                                       自抽样次数:  100

bdiff_test.rar

2.63 KB

本附件包括:

  • panel_bdiff.dta
  • bdiff_test.do

bdiff.rar

3.39 KB

本附件包括:

  • bdiff.ado
  • bdiff.hlp

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

28
gushiydw 发表于 2011-10-14 08:23:17
谢谢连帮主!帮主解决了一个大问题,相信很多人有此疑问,买了stata高级课程,认真听,好好学!向帮主致敬!

29
arlionn 在职认证  发表于 2011-10-14 09:04:31
利用 20# 的测试结果如下:

. *-Testing bdiff.ado
.
. *-https://bbs.pinggu.org/thread-1201007-3-1.html
.
.   
. *==========================
. *-测试程序 1:基于 20# 楼的数据
. *==========================  
.
.   cd D:\stata11\ado\personal\temp
    D:\stata11\ado\personal\temp

.   use panel_bdiff, clear

.   global xx "rd lnasset"  // 解释变量

.   xtset id year
       panel variable:  id (strongly balanced)
        time variable:  year, 2005 to 2010
                    delta:  1 unit

.   xtreg  roe $xx if indus==1,fe

Fixed-effects (within) regression               Number of obs      =        54
Group variable: id                                  Number of groups   =         9

R-sq:  within  = 0.0483                         Obs per group: min =         6
       between = 0.0227                                                 avg =       6.0
          overall = 0.0000                                                max =         6

                                                              F(2,43)            =      1.09
corr(u_i, Xb)  = -0.3827                        Prob > F           =    0.3453

------------------------------------------------------------------------------------------------
           roe |      Coef.          Std. Err.       t        P>|t|     [95% Conf. Interval]
-------------+---------------------------------------------------------------------------------
             rd |  -1.609766     1.6261      -0.99   0.328    -4.889109    1.669577
      lnasset |   .0769762     .054283     1.42   0.163    -.0324959    .1864482
       _cons |  -1.373778   1.108069    -1.24   0.222    -3.608413    .8608566
-------------+---------------------------------------------------------------------------------
   sigma_u |  .16055938
   sigma_e |  .15058293
          rho |  .53203101   (fraction of variance due to u_i)
------------------------------------------------------------------------------------------------
F test that all u_i=0:     F(8, 43) =     5.48               Prob > F = 0.0001

.     mat b1 = e(b)
.     est store m1

.   xtreg  roe $xx if indus==0,fe

Fixed-effects (within) regression               Number of obs      =        54
Group variable: id                                  Number of groups   =         9

R-sq:  within  = 0.1711                         Obs per group: min =         6
       between = 0.1586                                                 avg =       6.0
          overall = 0.0000                                                max =         6

                                                              F(2,43)            =      4.44
corr(u_i, Xb)  = -0.5042                        Prob > F           =    0.0177

----------------------------------------------------------------------------------------------------
           roe |      Coef.         Std. Err.         t       P>|t|       [95% Conf. Interval]
-------------+-------------------------------------------------------------------------------------
             rd |   -2.61159    1.06554      -2.45   0.018     -4.760455    -.462724
      lnasset |  -.0037579   .0207355    -0.18   0.857     -.0455751     .0380592
       _cons |   .2340589   .4225673      0.55   0.583    -.6181293     1.086247
-------------+--------------------------------------------------------------------------------------
   sigma_u |  .07414931
   sigma_e |  .05933944
          rho |  .60959567   (fraction of variance due to u_i)
----------------------------------------------------------------------------------------------------
F test that all u_i=0:     F(8, 43) =     5.22               Prob > F = 0.0001

.     mat b2 = e(b)
.     est store m2
      
.   *-结果对比
.     esttab m1 m2, mtitle(m1 m2) nogap
--------------------------------------------
                         (1)             (2)   
                         m1              m2   
--------------------------------------------
rd                 -1.610          -2.612*  
                    (-0.99)         (-2.45)   
lnasset          0.0770        -0.00376   
                     (1.42)          (-0.18)   
_cons           -1.374           0.234   
                     (-1.24)          (0.55)   
--------------------------------------------
N                      54              54   
--------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

.         
.   *-记录真实差异        
.     mat D = (b1 \ b2 \ b1-b2)

.     local d1_0 = D[3,1]        // 第一个解释变量的系数差异

.     local d2_0 = D[3,2]        // .   二....

.     mat list D                        // 真实差异

D[3,3]
            rd                 lnasset           _cons
y1  -1.6097659   .07697617    -1.3737783
y1  -2.6115897  -.00375792       .2340589
y1   1.0018238   .08073409     -1.6078372

.   
.   *-Bootstrap 系数差异
.     bdiff roe $xx, truediff(`d1_0' `d2_0') n1(9) bs(100) seed(123)

Begin Time :14 Oct 2011 09:01:49

Bootstrap 组间系数差异检验
--------------------------------------------------------------
  变量           真实差异      抽样差异       实证 P 值
--------------------------------------------------------------
  rd               1.0018          0.1777         0.3100
  lnasset        0.0807         -0.0015         0.0000
--------------------------------------------------------------
                                       自抽样次数:  100

Author: Lian Yu-jun http://toran.cn/arlion

Over Time :14 Oct 2011 09:01:52
Total seconds the procedures spent are 3


30
gushiydw 发表于 2011-10-14 09:58:17
最后一步显示:option seed() not allowed
我是把27楼的程序放到我的工作目录下。。。ado/base/b  下面的,是不是我的stata11 有问题  ,还是。。。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-27 07:24