楼主: lsx19890717
2940 4

[问答] 根据变点理论寻找阈值? [推广有奖]

  • 4关注
  • 12粉丝

已卖:1077份资源

讲师

6%

还不是VIP/贵宾

-

威望
0
论坛币
3948 个
通用积分
25.1657
学术水平
4 点
热心指数
6 点
信用等级
1 点
经验
1229 点
帖子
225
精华
0
在线时间
431 小时
注册时间
2012-11-15
最后登录
2021-3-12

楼主
lsx19890717 在职认证  发表于 2014-4-29 22:57:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

请各位前辈给小辈指点一二:变点理论寻找阈值:若已知序列x,y。方程组由y(t)=a1+b1x(t),t=1,2,...k,(1)式和y(t)=a2+b2x(t),t=k,k+1,...n,(2)式组成。该理论的思想是:假设k从5开始,作方程组的一次回归,求得一组(b1,b2);再从k=6开始,再作方程组的一次回归,又求得一组(b1,b2),依次下去,当k=n-4时,即留最后5对序列x,y可用于方程(2)的回归。最后通过寻找参数组(b1,b2)最大的绝对差值来确定k值。详细可参考附件中文件。我的程序如下:
#若序列长度为1000,k=5开始,首尾各保留5组序列用于方程1的开始回归和方程2最后一次回归
beta1=c()
for(i in 1:990){
x1=x[1:(4+i)]
y1=y[1:(4+i)]
lm1=lm(y1~x1)
beta1=c(beta1,coef(lm1)[2])
}

beta2=c()
for(j in 1:990){
x2=x[(4+j):1000]
y2=y[(4+j):1000]
lm2=lm(y2~x2)
beta2=c(beta2,coef(lm2)[2])
}
e=abs(beta1-beta2)
which.max(e)
自己觉得没什么问题,请问前辈,这段程序有什么错误和改进的地方吗?


二维码

扫码加我 拉你入群

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

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

关键词:Which beta Bet ETA 方程组 方程组 最大的 程序

沙发
jmpamao 发表于 2014-4-29 23:29:06
感觉两个循环可以并到一起

藤椅
lsx19890717 在职认证  发表于 2014-4-30 08:52:33
谢谢您的回复,我做两次循环一是为了提高运算效率,二是对方程组的两个方程单独循环,易读。不知自己的程序和附件中的变点理论表达的意思一致?

板凳
lsx19890717 在职认证  发表于 2014-4-30 08:54:27
jmpamao 发表于 2014-4-29 23:29
感觉两个循环可以并到一起
谢谢您的回复,我做两次循环一是为了提高运算效率,二是对方程组的两个方程单独循环,易读。不知自己的程序和附件中的变点理论表达的意思一致?

报纸
7621745732 发表于 2020-12-20 11:48:01
lsx19890717 发表于 2014-4-30 08:54
谢谢您的回复,我做两次循环一是为了提高运算效率,二是对方程组的两个方程单独循环,易读。不知自己的 ...
同学,我论文现在也遇到这个问题,不知道基于变点理论怎么寻找阈值,你的问题解决了吗,代码是这么做的吗?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 08:35