楼主: 薄言往诉
902 0

[回归分析求助] STATA中如何进行有约束条件的滚动回归? [推广有奖]

  • 0关注
  • 1粉丝

已卖:54份资源

博士生

23%

还不是VIP/贵宾

-

威望
0
论坛币
106 个
通用积分
48.7543
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
1431 点
帖子
72
精华
0
在线时间
386 小时
注册时间
2014-5-6
最后登录
2025-6-29

楼主
薄言往诉 发表于 2023-2-14 17:55:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,
模型为:
y=b0+b1*x1+b2*x2+b3*x3+b4*x4+b5*x5+b6*x6
数据结构为:
stkcd    date    y    x1     x2    x3   x4   x5   x6   
1           1
1           2
……
1           100
2           1
2           2
……
2           100
希望能够进行窗口期为20天的滚动回归(在每一个stkcd内部分组回归),同时施加约束条件:b1+b2+b3+b4+b5+b6=1并且b1-b6均大于0(也就是说,b1-b6代表x1-x6在一个组合中的权重)。

我目前尝试了几种办法:
第一,
constraint def 1 b1+b2+b3+b4+b5+b6=1
rolling _b _se, window(20) stepsize(1): cnsreg y x1 x2 x3 x4 x5 x6, constraints(1 )
但是,不知道怎么约束b1-b6都为正值,而且这个回归的运行速度非常慢。


第二,

*设置约束条件
local ma6 (exp({t5})/(1+exp({t2})+exp({t3})+exp({t4})+exp({t5})+exp({t6})))
local ma5 (exp({t5})/(1+exp({t2})+exp({t3})+exp({t4})+exp({t5})+exp({t6})))
local ma4 (exp({t4})/(1+exp({t2})+exp({t3})+exp({t4})+exp({t5})+exp({t6})))
local ma3 (exp({t3})/(1+exp({t2})+exp({t3})+exp({t4})+exp({t5})+exp({t6})))
local ma2 (exp({t2})/(1+exp({t2})+exp({t3})+exp({t4})+exp({t5})+exp({t6})))
local ma1 (1/(1+exp({t2})+exp({t3})+exp({t4})+exp({t5})+exp({t6})))


nl (y= `ma1'*x1+ `ma2'*x2+ `ma3'*x3+ `ma4'*x4+ `ma5'*x5+ `ma6'*x6+ {a7}) if  !missing, delta(1e-7)  ///
initial( `ma1' 1/6 `ma2' 1/6 `ma3' 1/6 `ma4' 1/6 `ma5' 1/6 `ma6' 1/6  )

但是程序报错了:"invalid parameter 1/6 in initial()" ,尝试了多个初始值都不对,不知道应该如何修改。

而且在将系数还原的时候,
local na6 exp(_b[t6:_cons])/(1+exp(_b[t2:_cons])+exp(_b[t3:_cons])+exp(_b[t4:_cons])+exp(_b[t5:_cons])+exp(_b[t6:_cons]))
local na5 exp(_b[t5:_cons])/(1+exp(_b[t2:_cons])+exp(_b[t3:_cons])+exp(_b[t4:_cons])+exp(_b[t5:_cons])+exp(_b[t6:_cons]))
local na4 exp(_b[t4:_cons])/(1+exp(_b[t2:_cons])+exp(_b[t3:_cons])+exp(_b[t4:_cons])+exp(_b[t5:_cons])+exp(_b[t6:_cons]))
local na3 exp(_b[t3:_cons])/(1+exp(_b[t2:_cons])+exp(_b[t3:_cons])+exp(_b[t4:_cons])+exp(_b[t5:_cons])+exp(_b[t6:_cons]))
local na2 exp(_b[t2:_cons])/(1+exp(_b[t2:_cons])+exp(_b[t3:_cons])+exp(_b[t4:_cons])+exp(_b[t5:_cons])+exp(_b[t6:_cons]))
local na1 1/(1+exp(_b[t2:_cons])+exp(_b[t3:_cons])+exp(_b[t4:_cons])+exp(_b[t5:_cons])+exp(_b[t6:_cons]))


nlcom (a1: `na1') (a2: `na2') (a3: `na3')(a4: `na4')(a5: `na5')(a6: `na6')
系统会提示迭代次数超过限制,也无法继续。

第三,用asreg和rangestat进行滚动回归,但是不知道怎么施加约束条件。

向各位群友们求助 ! 如果解决,可赠送论坛币,谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:Stata 约束条件 滚动回归 tata Constraints

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

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