##MATLAB 时间序列预测算法(有代码)
#最近在学习时间序列,找了很多资料,都需要会员,充值,本着共同进步的原则,给大家分享一下我找到的学习资料,里面大部分代码能实现,只有ARMA部分不能,因为现在的库中没有garchset了,所以还在找替代的方法,有大佬知道了解,也希望伸出援助之手帮助我这个渣渣,谢谢。

我是为了方便学习,就写在一个文档里了,你们实现的时候只要把你想用的算法前面的%去掉就好了。

%平均移动法
%clc;
%clear all;
%y=[0.35 0.33 0.29 0.19 0.23 0.24 0.39 0.37 0.21 0.21 0.21];
%m=length(y);
%n=[1,2]; % 自定义
%for i=1:length(n)%   for j=1:m-n(i)+1%       yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i);% end%y31(i)=yhat{i}(end);%s(i)=sqrt(mean((y(n(i)+1:m)-yhat{i}(1:end-1)).^2));
%end
%y31,s%加权平均
%clc;
%clear all;
%y=[215 197 203 234 194 108 191 241 232 221 196 226 201 219 217 213 203 225 237 188 212 198 219 177 231 199 203];
%w=[1/7;3/7;3/7];
%m=length(y);n=3;
%for i=1:m-n+1%   yhat(i)=y(i:i+n-1)*w;%end
%yhat;
%err=abs(y(n+1:m)-yhat(1:end-1))./y(n+1:m);
%T_err=1-sum(yhat(1:end-1))/sum(y(n+1:m));
%y1989=yhat(i)/(1-T_err);%趋势移动平均法
%clc;
%clear all;
%y=[216 199 222 218 217 259 206 230 255 221 214 212 219 224 210 205 186 249 214 228 211 226 219 238 217 205 206];
%y=[676 825 774 716 940 1159 1384 1524 1668 1688 1958 2031 2234 2566 2820 3006 3093 3277 3514 3770 4107];
%m1=length(y);
%n=6;
%for i=1:m1-n+1%   yhat1(i)=sum(y(i:i+n-1))/n;
%end
%yhat1;
%m2=length(yhat1);
%for i=1:m2-n+1%   yhat2(i)=sum(yhat1(i:i+n-1))/n;
%end
%yhat2;
%plot(1:27,y,'*');
%a21=2*yhat1(end)-yhat2(end);
%b21=2*(yhat1(end)-yhat2(end))/(n-1);
%y1986=a21+b21
%y1987=a21+2*b21%指数平滑法
%clc,clear all;
%yt=[216 199 222 218 217 259 206 230 255 221 214 212 219 224 210 205 186 249 214 228 211 226 219 238 217 205 206];
%yt=[50 52 47 51 49 48 51 40 48 52 51 59];
%n=length(yt);
%alpha=[0.2 0.5 0.8];m=length(alpha);
%yhat(1,1:m)=(yt(1)+yt(2))/2;
%for i=2:n %yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);
%end
%yhat;
%y1=yt';
%err=sqrt(mean((repmat(y1,1,m)-yhat).^2))
%xlswrite('yt',yhat) ;
%yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:)%三次指数平滑法
%clc,clear;
%yt=[20.04 20.06 25.72 34.61 51.77 55.92 80.65 131.11 148.58 162.67 232.26];
%n=length(yt);
%alpha=0.3; st1_0=mean(yt(1:3)); st2_0=st1_0;st3_0=st1_0;
%st1(1)=alpha*yt(1)+(1-alpha)*st1_0;
%st2(1)=alpha*st1(1)+(1-alpha)*st2_0;
%st3(1)=alpha*st2(1)+(1-alpha)*st3_0;
%for i=2:n
% st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);
% st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1);
% st3(i)=alpha*st2(i)+(1-alpha)*st3(i-1);
%end
%xlswrite('touzi.xls',[st1',st2',st3'])
%st1=[st1_0,st1];st2=[st2_0,st2];st3=[st3_0,st3];
%a=3*st1-3*st2+st3;
%b=0.5*alpha/(1-alpha)^2*((6-5*alpha)*st1-2*(5-4*alpha)*st2+(4-3*alpha)*st3);
%c=0.5*alpha^2/(1-alpha)^2*(st1-2*st2+st3);
%yhat=a+b+c;
%xlswrite('touzi.xls',yhat','Sheet1','D1')
%plot(1:n,yt,'*',1:n,yhat(1:n),'O')
%legend('实际值','预测值')
%xishu=[c(n+1),b(n+1),a(n+1)];
%yhat1990=polyval(xishu,2)%自适应滤波法
%clc,clear;
%yt=[217 207.5 215 223 222 221.5 209 213 217 213 217 215];
%m=length(yt);k=0.083;
%N=12;Terr=10000;
%w=ones(1,N)/N;
%while abs(Terr)>0.00001%   Terr=[];%  for j=N+1;m-1%    yhat(j)=w*yt(j-1:-1:j-N)';%   err=yt(j)-yhat(j);% Terr=[Terr,abs(err)];% w=w+2*k*err*yt(j-1:-1:j-N);% end%  Terr=max(Terr);%end%w,yhat%趋势外推预测法——修正指数曲线法(以下三种类似,选S标准误差小的模型)
%function chanliang
%clc,clear;
%global a b k
%%yt=[217 207.5 215 223 222 221.5 209 213 217 213 217];
%yt=[42.1 47.5 52.7 57.7 62.5 67.1 71.5 75.7 79.8 83.7 87.5 91.1 94.6 97.9 101.1];
%n=length(yt);m=n/3;
%%值得注意的是,并不是任何一组数据都可以用修正指数曲线拟合。采用前应对数据进行检验,检验方法是看给定数据的逐期增长量的比率是否接近某一常数b
%cf=diff(yt);
%for i=1:n-2%   bzh(i)=cf(i+1)/cf(i)
%end
%range=minmax(bzh)     %b的范围
%s1=sum(yt(1:m)),s2=sum(yt(m+1:2*m)),s3=sum(yt(2*m+1:end))
%b=((s3-s2)/(s2-s1))^(1/m)
%a=(s2-s1)*(b-1)/(b*(b^m-1)^2)
%k=(s1-a*b*(b^m-1)/(b-1))/m
%y=yuce(1:18)
%定义预测函数
%function y=yuce(t)
%global a b k
%y=k+a*b.^t;%Compertz 曲线:  初期增长缓慢,以后逐渐加快。当达到一定程度后,增长率又逐渐下降。
%clc,clear
%yuce=@(t,a,b,k)k*a.^(b.^t);
%y=[42.1 47.5 52.7 57.7 62.5 67.1 71.5 75.7 79.8 83.7 87.5 91.1 94.6 97.9 101.1];
%yt=log(y);n=length(yt);m=n/3;
%s1=sum(yt(1:m)),s2=sum(yt(m+1:2*m)),s3=sum(yt(2*m+1:end))
%b=((s3-s2)/(s2-s1))^(1/m)
%a=(s2-s1)*(b-1)/(b*(b^m-1)^2)
%k=(s1-a*b*(b^m-1)/(b-1))/m
%a=exp(a)
%k=exp(k)
%y=yuce(1:18,a,b,k)%Logistic 曲线(生长曲线)
%clc,clear
%yuce=@(t,a,b,k) 1./(k+a*b.^t);
%y=[42.1 47.5 52.7 57.7 62.5 67.1 71.5 75.7 79.8 83.7 87.5 91.1 94.6 97.9 101.1];
%yt=1./y;n=length(yt);m=n/3;
%s1=sum(yt(1:m)),s2=sum(yt(m+1:2*m)),s3=sum(yt(2*m+1:end))
%b=((s3-s2)/(s2-s1))^(1/m)
%a=(s2-s1)*(b-1)/(b*(b^m-1)^2)
%k=(s1-a*b*(b^m-1)/(b-1))/m
%y1=yuce(1:18,a,b,k)

[原文档在百度网盘里链接:https://pan.baidu.com/s/1rKEWW4ynqH-rM_Gt15aCUw
提取码:tdby
]

##欢迎批评指正!

MATLAB 时间序列预测算法(有代码)相关推荐

  1. 解读:一种来自Facebook团队的大规模时间序列预测算法(附github链接)

    写在前面 下面这篇文章的内容主要是来自Facebook团队的论文<Forecast at Scale>,这篇论文介绍了一种时间序列预测算法Prophet,该算法结合了时间序列分解以及机器学 ...

  2. Facebook时间序列预测算法模型-prophet

    Facebook时间序列预测算法模型-prophet prophet(先知)是Facebook开源的一个时间序列预测算法.其是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了pySt ...

  3. 【时间序列预测算法】——ARIMA 算法介绍及代码实现

    基本概念 一阶差分:时间序列在t 与t-1 时刻函数值的差值,提升时序数据的平稳性(ARIMA算法对数据平稳性有要求) 二阶差分:在一阶差分的基础上再做一次(一般时序数据最多做两阶,再多则预测意义不大 ...

  4. porphet论文_Facebook 时间序列预测算法 Prophet 的研究

    Prophet 简介 Facebook 去年开源了一个时间序列预测的算法,叫做 fbprophet,它的官方网址与基本介绍来自于以下几个网站: 从官网的介绍来看,Facebook 所提供的 proph ...

  5. 大数据毕业设计 LSTM时间序列预测算法 - 股票预测 天气预测 房价预测

    文章目录 0 简介 1 基于 Keras 用 LSTM 网络做时间序列预测 2 长短记忆网络 3 LSTM 网络结构和原理 3.1 LSTM核心思想 3.2 遗忘门 3.3 输入门 3.4 输出门 4 ...

  6. 独家 | 教你使用简单神经网络和LSTM进行时间序列预测(附代码)

    翻译:张玲 校对:丁楠雅 本文约1500字,建议阅读5分钟. 作者基于波动性标准普尔500数据集和Keras深度学习网络框架,利用python代码演示RNN和LSTM RNN的构建过程,便于你快速搭建 ...

  7. 时间序列-预测(Forcasting):时间序列预测算法总结

    一.背景介绍 绝大部分行业场景,尤其是互联网.量化行业,每天都会产生大量的数据.金融领域股票价格随时间的走势:电商行业每日的销售额:旅游行业随着节假日周期变化的机票酒店价格等: 我们称这种不同时间收到 ...

  8. 实例 :教你使用简单神经网络和LSTM进行时间序列预测(附代码)

    翻译:张玲  校对:丁楠雅 本文约1500字,建议阅读5分钟. 作者基于波动性标准普尔500数据集和Keras深度学习网络框架,利用python代码演示RNN和LSTM RNN的构建过程,便于你快速搭 ...

  9. 【时间序列预测算法】——Holt-Winters算法介绍及代码实现

    背景 一阶二阶三阶指数平滑方法拟合效果均较好,通过结合数据自然属性,数据自身.趋势变化.季节性,提出了这三个角度的衡量量,可以说,理解起来更自然.更亲切.其中三阶的指数平滑方法也被称为"Ho ...

  10. topsis法matlab程序,TOPSIS算法(示例代码)

    title: TOPSIS算法 date: 2020-02-24 11:18:06 categories: 数学建模 tags: [评价模型, MATLAB] mathjax: true 定义 ? C ...

最新文章

  1. csdn修改博客皮肤
  2. 如何使用VirtualBox与GNS3搭建思科设备实验环境
  3. Selenium2+python自动化46-js解决click失效问题
  4. STL,ATL,WTL之间的联系和区别
  5. leetcode 497, 528. Random Point in Non-overlapping Rectangles | 497. 非重叠矩形中的随机点(Java)
  6. [原]好玩的Linux,关于时间cal命令
  7. Nature封面引发持续热议,死亡猪脑恢复部分功能可实现永生?官方答疑来了
  8. [转]解决2003不支持FLV的方法
  9. [NIO]dawn之Task具体解释
  10. 构建自己的不可替代性
  11. 荷兰国旗问题与快速排序
  12. 解决关闭xftp,总是跳出无法访问网络位置,请输入xftp 6.msi
  13. 除了“造车再创业”,小米还能拼什么?
  14. 【养生】观舌头知健康
  15. 清新漂亮简约好看的个人博客网站模板
  16. 在拉勾网对职位的数据爬取与分析
  17. 学习笔记——FPGA芯片主要资源介绍
  18. 创建OpenGL Context(WGL)
  19. 3分钟tips:高斯分布和高斯积分的关系
  20. 多线程经典问题1——主线程子线程交替问题

热门文章

  1. java并发编程实践——王宝令(极客时间)学习笔记
  2. Amber分子动力学模拟
  3. 使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码
  4. 用python 类方法写好友管理系统
  5. 软件方法(下)分析和设计第8章分析 之 分析类图——知识篇(20211227更新)
  6. 介绍一个产品的思维导图_思维导图介绍(1)
  7. http://cerc.tcs.uj.edu.pl/links/
  8. win10 桌面图标变宽
  9. 基于OptiSystem的WDM环形网的设计
  10. 研究学习时用到的软件