楼主: viking1111
2643 1

[Stata高级班] Bootstrap [推广有奖]

  • 2关注
  • 2粉丝

教授

99%

还不是VIP/贵宾

-

威望
0
论坛币
59966 个
通用积分
16.3202
学术水平
17 点
热心指数
30 点
信用等级
13 点
经验
13089 点
帖子
1282
精华
0
在线时间
1654 小时
注册时间
2006-12-22
最后登录
2023-3-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

连老师:


    我用Bootstrapping方法验证组间系数是否相等,为什么p值总是1.91?只有红字的地方跟您软件里有所区别 dlnAsset1==1和 dlnAsset8==1分别有126、127个样本点。


local reps = 1000

mat D = J(`reps', 3, .)

forvalues j = 1/`reps'{

save "D:\stata11\all.dta", replace

qui use "D:\stata11\all.dta", clear

bsample

qui logit st size eps bps cash3cps liq1 if dlnAsset1==1

local b1 = _b[eps]

qui logit st size eps bps cash3cps liq1 if dlnAsset8==1

local b2 = _b[eps]

local diff = `b1' -`b2'

mat D[`j',1] = (`b1', `b2', `diff')

}


svmat D, names(d)

rename d1 b1

rename d2 b2

rename d3 diff


count if diff > diff0 | diff == diff0

local p = `r(N)'/`reps'

dis "pvalue = " `p'

value = 1.901
我随后统计了一下:

count if diff > diff0 | diff == diff0
1901



我想是不是抽样次数要增加?所以我set memory 200000 ,但是依然报错,


local reps = 1000

mat D = J(`reps', 3, .)
. forvalues j = 1/`reps'{
  2. save "D:\stata11\all.dta", replace
  3. qui use "D:\stata11\all.dta", clear
  4. bsample
  5. qui logit  st size eps bps cash3cps liq1 if dlnAsset1==1
  6. local b1 = _b[eps]
  7. qui logit  st size eps bps cash3cps liq1 if dlnAsset8==1
  8. local b2 = _b[eps]
  9. local diff = `b1' -`b2'
10.           mat D[`j',1] = (`b1', `b2', `diff')
11. }
file D:\stata11\all.dta saved
op. sys. refuses to provide memory
r(909);


svmat D, names(d)

rename d1 b1

rename d2 b2

rename d3 diff

count if diff > diff0 | diff == diff0
5000

.          local p = `r(N)'/`reps'

.
.          dis "pvalue = " `p'
pvalue = 5

后来,画出的概率密度和直方图结果都只是一条红线,别的什么都没有,老师,这是怎么回事呢?

之后我又改成

local reps = 1000

mat D = J(`reps', 3, .)
. forvalues j = 1/`reps'{
  2. save "D:\stata11\all.dta", replace
  3. qui use "D:\stata11\all.dta", clear
  4. bsample
  5. qui logit  st size eps bps cash3cps liq1 in
1/126

  6. local b1 = _b[eps]
  7. qui logit  st size eps bps cash3cps liq1 in 1823/1924
  8. local b2 = _b[eps]
  9. local diff = `b1' -`b2'
10.           mat D[`j',1] = (`b1', `b2', `diff')
11. }
file D:\stata11\all.dta saved
op. sys. refuses to provide memory
r(909);


svmat D, names(d)

rename d1 b1

rename d2 b2

rename d3 diff

count if diff > diff0 | diff == diff0
1924
.          local p = `r(N)'/`reps'

.
.          dis "pvalue = " `p'
pvalue =
1.924

老师这是为什么呢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Bootstrap Bootstra boots boot Trap Bootstrap

沙发
arlionn 在职认证  发表于 2010-8-18 11:26:41 |只看作者 |坛友微信交流群
viking1111 发表于 2010-8-17 22:12

连老师:


    我用Bootstrapping方法验证组间系数是否相等,为什么p值总是1.91?只有红字的地方跟您软件里有所区别 dlnAsset1==1和 dlnAsset8==1分别有126、127个样本点。

// Arlion: 在bootstrap 之前,你应该把所有变量中包含的缺漏值都删除。


local reps = 1000

mat D = J(`reps', 3, .)

forvalues j = 1/`reps'{

save "D:\stata11\all.dta", replace           // Arlion: 这条命令应该删除

qui use "D:\stata11\all.dta", clear

bsample

qui logit st size eps bps cash3cps liq1 if dlnAsset1==1  // 这里的设定不对,你应该随机选择 126 笔观察值

local b1 = _b[eps]

qui logit st size eps bps cash3cps liq1 if dlnAsset8==1  // 这里的设定不对,你应该随机选择 127 笔观察值

local b2 = _b[eps]

local diff = `b1' -`b2'

mat D[`j',1] = (`b1', `b2', `diff')

}


svmat D, names(d)

rename d1 b1

rename d2 b2

rename d3 diff


count if diff > diff0 | diff == diff0   // 这条命令需要修改为下面的命令:

count if (diff > diff0 | diff == diff0) & diff!=.  // 你的命令中没有排除缺漏值,而缺漏之是一个无穷大的数值

local p = `r(N)'/`reps'

dis "pvalue = " `p'

value = 1.901
我随后统计了一下:

count if diff > diff0 | diff == diff0   
1901



我想是不是抽样次数要增加?所以我set memory 200000 ,但是依然报错,

// 问题在上面,与内存的设定无关,同时,你设定内存的命令不对,应该是 set memory 300m

local reps = 1000

mat D = J(`reps', 3, .)
. forvalues j = 1/`reps'{
  2. save "D:\stata11\all.dta", replace            // Arlion: 这条命令应该删除
  3. qui use "D:\stata11\all.dta", clear
  4. bsample
  5. qui logit  st size eps bps cash3cps liq1 if dlnAsset1==1
  6. local b1 = _b[eps]
  7. qui logit  st size eps bps cash3cps liq1 if dlnAsset8==1
  8. local b2 = _b[eps]
  9. local diff = `b1' -`b2'
10.           mat D[`j',1] = (`b1', `b2', `diff')
11. }
file D:\stata11\all.dta saved
op. sys. refuses to provide memory
r(909);


svmat D, names(d)

rename d1 b1

rename d2 b2

rename d3 diff

count if diff > diff0 | diff == diff0
5000

.          local p = `r(N)'/`reps'

.
.          dis "pvalue = " `p'
pvalue = 5

后来,画出的概率密度和直方图结果都只是一条红线,别的什么都没有,老师,这是怎么回事呢?

之后我又改成

local reps = 1000

mat D = J(`reps', 3, .)
. forvalues j = 1/`reps'{
  2. save "D:\stata11\all.dta", replace    // Arlion: 这条命令应该删除,只需下面的命令即可
  3. qui use "D:\stata11\all.dta", clear
  4. bsample
  5. qui logit  st size eps bps cash3cps liq1 in
1/126

  6. local b1 = _b[eps]
  7. qui logit  st size eps bps cash3cps liq1 in 1823/1924
  8. local b2 = _b[eps]
  9. local diff = `b1' -`b2'
10.           mat D[`j',1] = (`b1', `b2', `diff')
11. }
file D:\stata11\all.dta saved
op. sys. refuses to provide memory
r(909);


svmat D, names(d)

rename d1 b1

rename d2 b2

rename d3 diff

count if diff > diff0 | diff == diff0
1924
.          local p = `r(N)'/`reps'

.
.          dis "pvalue = " `p'
pvalue =
1.924

老师这是为什么呢

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 03:11