时间序列模型_时间序列算法模型-程序员宅基地

技术标签: R  数据  

kings<-scan("http://robjhyndman.com/tsdldata/misc/kings.dat",skip=3)
#读入时间序列数据,忽略前三行
kings
kingstimeseries<-ts(kings)#将数据存储到一个时间序列对象中去

births<-scan("http://robjhyndman.com/tsdldata/data/nybirths.dat")
births
birthstimeseries<-ts(births,frequency=12,start=c(1946,1))
birthstimeseries

souvenir<-scan("http://robjhyndman.com/tsdldata/data/fancy.dat")
souvenirtimeseries<-ts(souvenir,frequency=12,start=c(1987,1))
souvenirtimeseries

plot.ts(kingstimeseries)#可用相加模型来描述,
plot.ts(birthstimeseries)#
plot.ts(souvenirtimeseries)#相加模型不适合描述,季节性波动和随机变动的大小随时间序列逐步上升
logsouvenirtimeseries<-log(souvenirtimeseries)#自然对数转换
plot.ts(logsouvenirtimeseries)

library("TTR")
kingstimeseriesSMA3<-SMA(kingstimeseries,n=3)#跨度为3的简单移动平均平滑
plot.ts(kingstimeseriesSMA3)
kingstimeseriesSMA8<-SMA(kingstimeseries,n=8)#跨度为3的简单移动平均平滑
plot.ts(kingstimeseriesSMA8)

birthstimeseriescomponents<-decompose(birthstimeseries)
birthstimeseriescomponents$seasonal#季节
birthstimeseriescomponents$trend#趋势
birthstimeseriescomponents$random#随机
plot(birthstimeseriescomponents)

birthstimeseriesseasonallyadjusted<-birthstimeseries-birthstimeseriescomponents$seasonal
plot(birthstimeseriesseasonallyadjusted)
#使用指数平滑法进行预测
#简单指数平滑法
rain<-scan("http://robjhyndman.com/tsdldata/hurst/precip1.dat",skip=1)
rainseries<-ts(rain,start=c(1813))
plot.ts(rainseries)

rainseriesforecasts<-HoltWinters(rainseries,beta=FALSE,gamma=FALSE)
rainseriesforecasts

rainseriesforecasts$fitted#预测值
plot(rainseriesforecasts)
rainseriesforecasts$SSE

library("forecast")
rainseriesforecasts2<-forecast.HoltWinters(rainseriesforecasts,h=8)
plot.forecast(rainseriesforecasts2)
rainseriesforecasts2$residuals

acf(rainseriesforecasts2$residuals,lag.max=20)

plotForecastErrors<-function(forecasterrors)#检验预测误差是均值为零的正态分布
{
  #forecasterrors<-rainseriesforecasts2$residuals
  mybinsize<-IQR(forecasterrors)/4
  mysd<-sd(forecasterrors)
  mymin<-min(forecasterrors)-mysd*3
  mymax<-max(forecasterrors)+mysd*3
  mybins<-seq(mymin,mymax,mybinsize)
  hist(forecasterrors,col="red",freq=FALSE,breaks=mybins)
  mynorm<-rnorm(10000,mean=0,sd=mysd)
  myhist<-hist(mynorm,plot=FALSE,breaks=mybins)
  points(myhist$mids,myhist$density,type="l",col="blue",lwd=2)
}

plotForecastErrors(rainseriesforecasts2$residuals)
#####################################################################
###霍尔特指数平滑法                                               ###
#####################################################################
skirts<-scan("http://robjhyndman.com/tsdldata/roberts/skirts.dat",skip=5)
skirtsseries<-ts(skirts,start=c(1866))
plot.ts(skirtsseries)
skirtsseriesforecasts<-HoltWinters(skirtsseries,gamma=FALSE)
skirtsseriesforecasts
skirtsseriesforecasts$SSE
plot(skirtsseriesforecasts)

skirtsseriesforecasts2<-forecast.HoltWinters(skirtsseriesforecasts,h=19)
plot.forecast(skirtsseriesforecasts2)
acf(skirtsseriesforecasts2$residuals,lag.max=20)
Box.test(skirtsseriesforecasts2$residuals,lag=20,type="Ljung-Box")

plot.ts(skirtsseriesforecasts2$residuals)
plotForecastErrors(skirtsseriesforecasts2$residuals)

#####################################################################
###Holt-Winters指数平滑法                                         ###
#####################################################################
souvenir<-scan("http://robjhyndman.com/tsdldata/data/fancy.dat")
souvenirtimeseries<-ts(souvenir,frequency=12,start=c(1987,1))
souvenirtimeseries
logsouvenirtimeseries<-log(souvenirtimeseries)

souvenirtimeseriesforecasts<-HoltWinters(logsouvenirtimeseries)
souvenirtimeseriesforecasts
souvenirtimeseriesforecasts$SSE
plot(souvenirtimeseriesforecasts)

souvenirtimeseriesforecasts2<-forecast.HoltWinters(souvenirtimeseriesforecasts,h=48)
plot.forecast(souvenirtimeseriesforecasts2)

acf(souvenirtimeseriesforecasts2$residuals,lag.max=20)
Box.test(souvenirtimeseriesforecasts2$residuals,lag=20,type="Ljung-Box")

plot.ts(souvenirtimeseriesforecasts2$residuals)
plotForecastErrors(souvenirtimeseriesforecasts2$residuals)
###################################################################
###ARMA        指数平滑法                                         ###
#####################################################################
skirtsseriesdiff1<-diff(skirtsseries,differences=1)
plot.ts(skirtsseriesdiff1)
skirtsseriesdiff2<-diff(skirtsseries,differences=2)
plot.ts(skirtsseriesdiff2)

kings<-scan("http://robjhyndman.com/tsdldata/misc/kings.dat",skip=3)#读入时间序列数据,忽略前三行
kings
kingstimeseries<-ts(kings)#将数据存储到一个时间序列对象中去
kingstimeseriesdiff1<-diff(kingstimeseries,differences=1)
plot.ts(kingstimeseriesdiff1)
acf(kingstimeseriesdiff1,lag.max=20)#画出相关图
acf(kingstimeseriesdiff1,lag.max=20,plot=FALSE)#取得相关系数
pacf(kingstimeseriesdiff1,lag.max=20)#画出相关图
pacf(kingstimeseriesdiff1,lag.max=20,plot=FALSE)#取得相关系数
auto.arima(kings)
kingstimeseriesarima<-arima(kingstimeseries,order=c(0,1,1))
kingstimeseriesarima
kingstimeseriesforecasts<-forecast.Arima(kingstimeseriesarima,h=5,level=c(99.5))
kingstimeseriesforecasts
plot.forecast(kingstimeseriesforecasts)
acf(kingstimeseriesforecasts$residuals,lag.max=20)
Box.test(kingstimeseriesforecasts$residuals,lag=20,type="Ljung-Box")
plot.ts(kingstimeseriesforecasts$residual)
plotForecastErrors(kingstimeseriesforecasts$residual)


volcanodust<-scan("http://robjhyndman.com/tsdldata/annual/dvi.dat",skip=1)
volcanodustseries<-ts(volcanodust,start=c(1500))
plot.ts(volcanodustseries)
acf(volcanodustseries,lag.max=20)#画出相关图
acf(volcanodustseries,lag.max=20,plot=FALSE)#取得相关系数
pacf(volcanodustseries,lag.max=20)#画出相关图
pacf(volcanodustseries,lag.max=20,plot=FALSE)#取得相关系数
auto.arima(volcanodustseries)

volcanodustseriesarima<-arima(volcanodustseries,order=c(2,0,0))
volcanodustseriesarima
volcanodustseriesforecasts<-forecast.Arima(volcanodustseriesarima,h=31)
volcanodustseriesforecasts
plot.forecast(volcanodustseriesforecasts)
acf(volcanodustseriesforecasts$residuals,lag.max=20)
Box.test(volcanodustseriesforecasts$residuals,lag=20,type="Ljung-Box")
plot.ts(volcanodustseriesforecasts$residual)
plotForecastErrors(volcanodustseriesforecasts$residual)
mean(volcanodustseriesforecasts$residuals)

#

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35606497/article/details/53189642

智能推荐

python字符串类型定义_python--字符串类型-程序员宅基地

文章浏览阅读1.2k次。*************** 字符串类型 ***************1.字符串的定义:第一种方式:str1 = 'our company is westos'第二种方式:str2 = "our company is westos"第三种方式:str3 = """our company is westos"""2.转义符号一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符\n:..._python字符串类型定义

计算机图形学和工程图学,计算机图形学与印刷工程我与工程图学及计算机图形学...-程序员宅基地

文章浏览阅读418次。一、我与浙大工程图学一同发展      我国工程图学课程量大面广,从新中国成立以来主要承袭于前苏联,经过50多年的建设、改革和发展,课程体系形成了较明显的中国特色,既不同于欧美,也不同于前苏联。可以分为如下四个发展阶段:第一阶段***1949-1962年***称为初期阶段,1957年教育部邀请苏联专家在清华大学举办了画法几何及机械制图教学研究进修班,在总结交流基础上,初步形成了中国模式的工程制图教..._印刷工程 计算机相关课程

(转)C语言家族扩展_c语言家族分支-程序员宅基地

文章浏览阅读3.1k次。(转)C语言家族扩展 翻译:5.1--5.6林峰5.7--5.20董溥5.21--5.26王聪5.27--5.34刘洋5.35--5.43贾孟树致谢:感谢陈老师指出其中的一些错误,已修订。 修订记录: 修订一些用词和标点符号。(董溥)2007年1月12号修订一些用词和错别字。(王聪)2006年12月14号修正一些错误的标签。(王聪,董溥)2006年12月13号GNU C提供了多种在ISO标准C中没有的特性。(‘-pedantic’选项会使GC_c语言家族分支

elementui css,elementUI——主题及自定义-程序员宅基地

文章浏览阅读1.3k次。说明:本文基于[email protected],源码详见element。一、主题相关代码结构:可以看出两点:a. 每个element ui组件基本都对应有单独的scss文件;b. 单独的组件scss文件,支持了组件按需引入时,样式部分也能按需引入的诉求;c.theme-chalk/src/common和theme-chalk/src/mixins目录下,主要是一些公共样式的设置,全局sass变量..._elementui css

H5 如何实现唤起 APP_如何实现拼多多h5直接跳转淘宝或者拼多多-程序员宅基地

文章浏览阅读1.5k次。写过hybrid的同学,想必都会遇到这样的需求,如果用户安装了自己的APP,就打开APP或跳转到APP内某个页面,如果没安装则引导用户到对应页面或应用商店下载。这里就涉及到了H5与Native之间的交互,为什么H5能够唤起APP并且跳转到对应的页面?就算你没写过想必也体验过,最常见的就是一些广告了,如果你点击了广告,他判断你手机装了对应APP,那他就会去打开那个APP,如果没安装,他会帮你跳转到应用商店去下载,这个还算人性化一点的,有些直接后台给你去下载,你完全无感知。_如何实现拼多多h5直接跳转淘宝或者拼多多

《计算机网络技术》教材分析,《计算机网络技术基础》教学计划-程序员宅基地

文章浏览阅读324次。《《计算机网络技术基础》教学计划》由会员分享,可在线阅读,更多相关《《计算机网络技术基础》教学计划(4页珍藏版)》请在人人文库网上搜索。1、临 湘 市 职 业 中 专教师工作计划及实施情况表姓 名 周 小 敏 任教科目 计算机网络技术基础 任教年级 高 二 班 次 14级计算机、苹果班 教研组长 李 岳 军 教务主任 冯 云 主管校长 李 晓 红 时 间 2016 年 上 学期本期教学的主要任务和..._计算机网络教材分析

随便推点

php mysql安装图解_MySQL安装教程图解-程序员宅基地

文章浏览阅读245次。下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行setup.exe,出现如下界面 mysql安装图文教程1 mysql安装向导启动,按Next继续 mysql图文安装教程2 选择安装类型,有Typica下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql..._php-mysql安装

python支持oracle的驱动_python 支持oracle数据库-程序员宅基地

文章浏览阅读339次。大年初一mark一下新的一年将会下线个人ORACLE外文blog,精力有限,会全力在阿里云云栖社区分享,主要内容还是数据库相关,包括但不限于以下内容:ORACLE数据库性能分析PostgreSQL数据库全栈支持PPAS数据库全栈支持专注ORACLE数据库和应用迁移至阿里云PPAS、PostgreSQL等数据...文章唐修2019-02-051169浏览量PostgreSQL修炼之道:从小工到专家...._python官方镜像里面没有oracle驱动

mysql导入报错1071_导入sql文件报错:1071 Specified key was too long; max key length is 767 bytes...-程序员宅基地

文章浏览阅读644次。一、背景今天把服务器的数据库导出了一份sql文件,准备导入到本地,但是在导入的时候,报了个错:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes这就很奇怪了,明明服务器上都可以,凭什么我这边就报错呢。二、错误分析1、错误部分的sql文件CREATE TABLE ..._mysql导入报错[err] cannot create table [商品成本]: 1071 - specified key was

小米路由r2d论坛_小米路由器R2D固件 V2.24.10 官方稳定版-程序员宅基地

文章浏览阅读3k次。小米路由器R2D固件是小米官方为其推出的路由器刷机更新固件,优化了Wifi能力,同时修复了系统中的一些小问题,提升了系统的稳定性和安全性,如果你的路由器出现了一些小问题,可以通过这个固件来更新下系统。【更新说明】1.优化了共享WiFi功能,提升了使用体验2.修复了一些小问题,提高了系统安全性及稳定性【刷机教程】1、准备一个系统格式为FAT或FAT32的U盘;重要的事情再说三遍:U盘刷机会清空硬盘上..._小米路由r2d论坛

OpenWRT使用SNMP监测网络状态_openwrt snmp-程序员宅基地

文章浏览阅读1.9w次。最近在写毕业论文,需要监测路由器的网络状态,路由器是TP-Link TL1043ND v2,操作系统版本是OpenWRT 15.05,本来打算在路由器和监测机上使用Socket通信来交互信息的,写着写着发现太麻烦了,因为路由器有许多个,就需要在监测机上要实现多线程之类的东西,后来发现OpenWRT上已经有编译好的SNMP包了,于是就直接用它了,然后通过配置snmpd.config文件来扩展,调用iw_openwrt snmp

python中concat的用法_pandas中concat()的用法-程序员宅基地

文章浏览阅读5.4k次。pandas.concat()通常用来连接DataFrame对象。默认情况下是对两个DataFrame对象进行纵向连接, 当然通过设置参数,也可以通过它实现DataFrame对象的横向连接。让我们通过几个例子来看看concat()的用法。1. 纵向连接DataFrame对象(1)两个DataFrame对象的列完全相同# 初始化两个DataFrame对象df1 = pd.DataFrame([['a..._python中concat函数

推荐文章

热门文章

相关标签