楼主: 湛湛湛
4739 6

[学习分享] 大家帮我看看怎么修改这个自适应过滤法的R语言代码 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
49 点
帖子
4
精华
0
在线时间
5 小时
注册时间
2019-4-3
最后登录
2019-4-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

以前上课的时候老师讲过,现在写论文需要用, 为了预测下一时刻数据的数值


rm(list=ls())

filter.self <-function(x,p,q,iter.max=10){

n<-length(x); phi <- rep(1/p,p) ; # 权数初值

x.max <- sum(x[1:p]^2) # 计算学习常数

for(i in 2:(n-p+1)){

temp<- sum(x[i:(i+p-1)]^2)

if(x.max<temp) x.max <- temp

}

k<- 1/x.max; cat("\nLearning constant:",k,"\n")

x.hat <- e <- numeric(n); iter <- 0;cri <- 1; mse <- 0

while(cri>1e-4 &&iter<iter.max){

cat("\n-----------------",iter+1,"th","--------------------------\n")

for(t in p:(n-1)){

x.hat[t+1] <- sum(x[t:(t-p+1)]*phi) # 预测

e[t+1]<- x[t+1]-x.hat[t+1] # 误差

phi<- phi + 2*k*e[t+1]*x[t:(t-p+1)]; cat(“phi:”,phi,“\n”) #更新权数值

}

iter<- iter + 1

cri<- abs(mse - sum(e[-(1:p)]^2)/(n-p)) # 检验mse变化大小

mse<- sum(e[-(1:p)]^2)/(n-p); cat("MSE:",cri,"\n")

}

x<- c(x,rep(0,q))

for(t in n:(n+q-1)){

x[t+1] <- sum(x[t:(t-p+1)]*phi) #预测未来

}

return(x)

}


二维码

扫码加我 拉你入群

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

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

关键词:怎么修改 R语言 filter list Self

沙发
湛湛湛 发表于 2019-4-7 14:21:21 |只看作者 |坛友微信交流群
能用spss或者matlab做出来也行

使用道具

藤椅
jiangbeilu 学生认证  发表于 2019-4-7 15:02:01 |只看作者 |坛友微信交流群
帮你顶一下哈

使用道具

板凳
湛湛湛 发表于 2019-4-7 15:08:19 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2019-4-7 15:02
帮你顶一下哈
谢谢老哥

使用道具

报纸
湛湛湛 发表于 2019-4-7 15:48:57 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2019-4-7 15:02
帮你顶一下哈
谢谢老哥

使用道具

地板
jiangbeilu 学生认证  发表于 2019-4-7 22:07:12 |只看作者 |坛友微信交流群
湛湛湛 发表于 2019-4-7 15:48
谢谢老哥
你可以把问题补充更详细一点么?

1. 比如你贴出的代码,是干嘛的?

2. 你目前遇到的什么问题?

使用道具

7
a两个 发表于 2019-7-15 13:39:24 |只看作者 |坛友微信交流群
楼主改出来了吗?求一个完整的代码~~毕业论文急需,谢谢

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-23 19:55