楼主: arkpm
1426 8

[其他] 紧急求助!!关于程序返回错误的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:32份资源

大专生

46%

还不是VIP/贵宾

-

威望
0
论坛币
929 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
475 点
帖子
43
精华
0
在线时间
28 小时
注册时间
2009-1-29
最后登录
2015-3-15

楼主
arkpm 发表于 2012-5-25 21:56:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有10000个股票,要对每个股票和市场收益等等变量做回归 (例子中以字母代替),并把得出的相关估计值存到变量a里,大概程序的例子如下

xtset id date
gen a = .
forvalues i=1/10000 {
      reg y x w z if id==`i'
     replace a=_b[x] if id=`i'&n==1
     replace a=_b[w] if id=`i'&n==2
     replace a=_b[z] if id=`i'&n==3
    }

问题是在有几只股票的时候返回了错误信息,说matrix is not positive defined, 然后程序就停了。 有没有什么方法不让程序停下来,如果这支股票不行就去做下一只。我查了一下貌似是capture命令,但是具体怎么用呢,加在程序哪一行?麻烦各位大侠了。另外这个程序不知为什么特别慢,一万个股票要算大概2-3个小时,请问正常吗?
二维码

扫码加我 拉你入群

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

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

关键词:紧急求助 急求助 forvalues forvalue positive positive replace matrix 程序 收益

沙发
sungmoo 发表于 2012-5-25 22:37:51
replace a=_b[x] if id=`i'&n==1
replace a=_b[w] if id=`i'&n==2
replace a=_b[z] if id=`i'&n==3
至少这里的等号有问题

藤椅
arkpm 发表于 2012-5-25 22:48:03
sungmoo 发表于 2012-5-25 22:37
至少这里的等号有问题
等号没问题,我之前设置过 bysort id: gen n=_n

板凳
309 在职认证  发表于 2012-5-25 23:22:08
那个等号没问题?

报纸
arkpm 发表于 2012-5-26 03:55:22
309 发表于 2012-5-25 23:22
那个等号没问题?
哎呀,楼上2位不好意思,我少打了一个等号,原来程序里是对的,我抄的时候疏忽了

地板
sungmoo 发表于 2012-5-26 06:36:17
g a = .
forv i=1/10000{
cap {
reg y x w z if id==`i'
replace a=_b[x] if e(sample)&n==1
replace a=_b[w] if e(sample)&n==2
replace a=_b[z] if e(sample)&n==3
}
}

7
sungmoo 发表于 2012-5-26 06:40:06
*楼主可以试一下:
statsby _b,clear by(id): reg y x w z

8
arkpm 发表于 2012-5-27 07:46:12
sungmoo 发表于 2012-5-26 06:36
g a = .
forv i=1/10000{
cap {
这位高人,这个 e(sample)和我原程序里的 id==1有区别吗,我股票的id就是1到10000

9
arkpm 发表于 2012-5-28 21:32:30
sungmoo 发表于 2012-5-26 06:36
g a = .
forv i=1/10000{
cap {
高人,这个cap加了以后怎么程序一直不往下走啊,右下角的小圈一直在转

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

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