楼主: lzhpanda
5698 10

[编程问题求助] bootstrap 显示 insufficient memory [推广有奖]

  • 0关注
  • 0粉丝

本科生

41%

还不是VIP/贵宾

-

威望
0
论坛币
924 个
通用积分
7.3295
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
679 点
帖子
26
精华
0
在线时间
128 小时
注册时间
2013-10-29
最后登录
2025-11-9

楼主
lzhpanda 发表于 2016-11-7 23:34:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
最近跑一个自己写的bootstrap 包的时候出现了以下问题




Bootstrap replications (110) ----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5

.xxxx..........
unable to restore data due to insufficient memory; try discard first
unable to restore data due to insufficient memory; try discard first
file C:\Users\hsun\AppData\Local\Temp\ST_00000001.tmp not found
unable to restore data due to insufficient memory; try discard first r(601);



唯一可以确定的是,我的C盘以及内存空间很大,stata14也是正版的8 cores的。
不过由于这个程序运行起来很长,我偶尔也会用stata跑别的任务。但我的确搞不清楚问题出在哪里……
二维码

扫码加我 拉你入群

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

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

关键词:Insufficient sufficient Bootstrap Bootstra memory memory

沙发
夏目贵志 发表于 2016-11-8 05:28:29
程序发出来看看咯

藤椅
lzhpanda 发表于 2016-11-8 08:17:28
夏目贵志 发表于 2016-11-8 05:28
程序发出来看看咯
程序很长……我可以肯定的是,用20%的sample跑这个程序是没有问题的
  1. /*Bootstrap Core Begin*/
  2. capture program drop bootstrapsemipar
  3. program bootstrapsemipar, eclass
  4. version 11
  5. tempname b V
  6. tempvar yhat3
  7. capture drop yhat4 func avergfunc xbsample  durationsample2 movesample lastresidsample losssample  indexlistsample
  8. /*Hedonic*/
  9. quiet reg lsell $xlist if Close_year>=1993&t76~=1,robust
  10. predict `yhat3', xb

  11. /*index generate, including transder to listing time. zero observations use old indexlist*/
  12. gen indexlistsample=indexlist
  13. mat beta=e(b)
  14. forvalues i = 2/81 {

  15. quiet replace indexlistsample=exp(beta[1,`i'-1])*100 if tt`i'==1&beta[1,`i'-1]~=0
  16. }


  17. /*Adjustment yhat to listing time*/
  18. gen yhat4=0
  19. forvalues i=2/81 {
  20. quiet replace yhat4=_b[t`i']*tt`i'-_b[t`i']*t`i'+`yhat3' if _b[t`i']~=0
  21. }


  22. /*Loss*/
  23. sort houseid Closetime Closeday
  24. by houseid: gen lastresidsample=lastresid+yhat2[_n-1]-yhat4[_n-1] if lastresid~=.
  25. gen losssample=loss+yhat2-yhat4 if loss~=.


  26. /*hazard rate*/
  27. sort houseid Closetime Closeday
  28. by houseid: gen dup=_n
  29. by houseid: gen maxdup=_N
  30. by houseid: gen durationsample2=12*(Close_year[_n+1]-Close_year)+(Close_month[_n+1]-Close_month) /*this duration is only for hazard rate */
  31. by houseid: replace durationsample2=12*(2013-Close_year)+(1-Close_month) if dup==maxdup
  32. gen movesample=0 if dup==maxdup
  33. drop dup maxdup
  34. replace movesample=1 if movesample==.

  35. stset durationsample2,failure(movesample)

  36. stcox age_list vintage Baths_Full_ Baths_Half_ Bedrooms_ Fireplaces_Number_ Square_Feet_Approx_ Stories_Number_ Cool_CENT Cool_WIN Cool_OTHER Waterdummy ATTdummy SFHDummy PoolDummy SewerDummy Heater_EleDummy WaterCityDummy Parking2 Parking3 Parking4 View2 View3 View4 Floor2 Floor3 Floor4 Floor5 Floor6 Floor7 neib2-neib96

  37. predict xbsample




  38. /*semipar*/
  39. semipar lask  yhat4 xbsample lastresidsample indexlistsample vollist neib2-neib96 if duration>12&d_loss1>3&d_loss1<198&xb<300 , nograph nonpar(losssample) gen(func) /*winsorized 1.5% for each side with duration >1 year*/

  40. /*Move semipar func to e(b), d_loss1 is 200 xtile, d_loss4 is  400 xtile*/
  41. bys d_loss4: egen avergfunc=mean(func)
  42. sort avergfunc
  43. by avergfunc: gen dup=[_n]
  44. mkmat avergfunc if dup==1&avergfunc~=.
  45. drop dup
  46. matrix define F=avergfunc'
  47. matrix A=e(b)
  48. matrix `b'=A[1,1..5],F
  49. ereturn post `b'
  50. end

  51. /*Bootstrap core package END*/



  52. bootstrap , reps(110) seed(16345) cluster(houseid) :bootstrapsemipar
复制代码


板凳
夏目贵志 发表于 2016-11-8 13:29:01
程序本身好像没觉得有什么特别的地方。你有没有看过出错的之前实际内存占用多少?你用的64位的Stata吗?开着任务管理器。另外,如果出错的位置比较早的话可以看看trace。但是估计输出结果会太多了。先看看实际内存占用吧。

报纸
lzhpanda 发表于 2016-11-9 04:24:45
夏目贵志 发表于 2016-11-8 13:29
程序本身好像没觉得有什么特别的地方。你有没有看过出错的之前实际内存占用多少?你用的64位的Stata吗?开着 ...
程序本身没有错的,我用的是导师的workstation, E5的处理器,32g内存, win7 64位, stata也是最新的ME,8核心的。

windows 的stata有必要 set memorysize 吗??
另外,同时运行两个stata程序会造成这个 C:\Users\hsun\AppData\Local\Temp\ST_00000001.tmp not found 问题吗?

地板
夏目贵志 发表于 2016-11-9 05:39:07
lzhpanda 发表于 2016-11-9 04:24
程序本身没有错的,我用的是导师的workstation, E5的处理器,32g内存, win7 64位, stata也是最新的ME, ...
你的stata本身是不是64位的?这个和你的系统是不是64位的是两回事。
不用set的。默认值应该就够用了的。可以看help memory

我没遇到过你说的最后这个问题。我觉得应该不是这个问题。我经常一次跑4个stata,从没有过这个问题。

你要不还是先确认一下stata实际使用的内存大小,然后再看可能是哪里有问题吧。现在说别的其实都是猜。还是确认一个因素是一个因素的好。

或者你也可以把数据给我,我在我机器上跑跑试试。看看会不会有一样的问题。但是你要是不愿意就算了。

7
lzhpanda 发表于 2016-11-9 12:12:38
夏目贵志 发表于 2016-11-9 05:39
你的stata本身是不是64位的?这个和你的系统是不是64位的是两回事。
不用set的。默认值应该就够用了的。 ...
数据倒不是不可以给你……但是我的一次bootstrap大概需要4-5个小时…………因为里面有一个非常复杂的semipar

8
夏目贵志 发表于 2016-11-10 00:50:46
lzhpanda 发表于 2016-11-9 12:12
数据倒不是不可以给你……但是我的一次bootstrap大概需要4-5个小时…………因为里面有一个非常复杂的semi ...
这个完全看你吧。我其实也不可能给你完全跑完,就是跑上几分钟看看出不出错。我的电脑也是工作要用的。其实我的意思就是首先你得能保证每次都能重现问题,这样才能troubleshoot,然后就是既然错误信息是内存,那就首先确认内存占用(这也是最容易做到的)。

9
lzhpanda 发表于 2016-11-10 10:07:46
夏目贵志 发表于 2016-11-10 00:50
这个完全看你吧。我其实也不可能给你完全跑完,就是跑上几分钟看看出不出错。我的电脑也是工作要用的。其 ...
我倒是也希望是内存占用的问题……不过和内存占用不一样的地方在于,最后那个temp file 找不到和r(601) 都是文件找不到的错误

10
夏目贵志 发表于 2016-11-11 10:36:48
lzhpanda 发表于 2016-11-10 10:07
我倒是也希望是内存占用的问题……不过和内存占用不一样的地方在于,最后那个temp file 找不到和r(601) 都 ...
但是这可能是内存问题导致的下一步问题。并不一定是独立的另一个问题。

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

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