全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
2825 1
2010-08-17

连老师:


    我用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

老师这是为什么呢

二维码

扫码加我 拉你入群

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

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

全部回复
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

老师这是为什么呢

二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群