时间序列分解-STL分解法

Ljt

作为一个初学者,水平有限,欢迎交流指正。

STL(’Seasonal and Trend decomposition using Loess‘ )是以鲁棒局部加权回归作为平滑方法的时间序列分解方法。

其中Loess(locally weighted scatterplot smoothing,LOWESS or LOESS)为局部多项式回归拟合,是对两维散点图

进行平滑的常用方法,它结合了传统线性回归的简洁性和非线性回归的灵活性。当要估计某个响应变量值时,先从其预

测变量附近取一个数据子集,然后对该子集进行线性回归或二次回归,回归时采用加权最小二乘法,即越靠近估计点的

值其权重越大,最后利用得到的局部回归模型来估计响应变量的值。用这种方法进行逐点运算得到整条拟合曲线。

Robust Loess 为鲁棒局部加权回归,具体算法可以参看之前的博文 鲁棒局部加权回归 。

STL对异常点具有健壮性,仅能处理加法模式的分解,对于乘法模式需要先转换为加法模式处理最后在逆变换回去。

鲁棒局部加权回归法方法的LOESS 过程和鲁棒性过程分别在STL 的内部环 和外部环中嵌套实现.

用R做时间序列的STL分解:

stl(x, s.window, s.degree = 0,

t.window = NULL, t.degree = 1,

robust = FALSE,

na.action = na.fail)

s.window----提取季节性时的loess算法时间窗口宽度,须为奇数

s.degree -----提取季节性时局部拟合多项式的阶数,须为0或1

t.window----提取趋势性时的loess算法时间窗口宽度,须为奇数

t.degree-----提取趋势性时局部拟合多项式的阶数,须为0或1

robust -----在loess过程中是否使用鲁棒拟合

library(quantmod)

###时间序列STL分解法######

##STL是’Seasonal and Trend decomposition using Loess‘ 的以鲁棒局部加权回归作为平滑方

#法的时间序列分解方法。其中Loess(locally weighted scatterplot smoothing,

#LOWESS or LOESS)为局部多项式回归拟合。

getSymbols('^IXIC',src='yahoo',from='2008-1-1',to='2015-10-1')

sdata.month=to.monthly(IXIC)

sdata.close=sdata.month$IXIC.Close

head(sdata.close)

sdata=ts(as.double(sdata.close),frequency=12,start=c(2008,1))

#as.double(sdata.close)为避免出现‘只允许单变量序列’的报错

fit=stl(sdata,t.window=13,s.window='periodic',robust=T)

#时间序列的STL分解是以鲁棒局部加权回归作为平滑方法的时间序列分解方法

#故应使robust=T,s.window='periodic'指使用均值平滑季节性子序列

plot(fit)

(上图4个板块的最右侧的高度不等的灰色柱条对应各板块数值大小的一个可视化度量,它们对应的数值大小是一样的)

python 时间序列分解 stl_时间序列分解-STL分解法相关推荐

  1. 矩阵分析之 实矩阵分解(5)矩阵分解法总结

    矩阵分析之 实矩阵分解(5)总结 前言 特征分解(谱分解) SVD分解 LU和PLU分解 Cholesky分解(LLT,LDLT分解) 满秩分解 QR分解 使用场景推荐 前言 之前的四篇内容分别介绍了 ...

  2. 时间序列规则和时间序列模型

    1. 时间序列规则 1.1 什么是时间序列规则 对于赛题/业务的规则之前已经描述了它的重要性和应用,在此不再赘述.这章主要了解时间序列及其规则,和周期的应用. 1.1.1 时间序列 时间序列(或称动态 ...

  3. 【Python】Python时间序列预测 | 经典季节性分解

    今天给大家分享一种方法,,时间序列预测之seasonal_decompose使用移动平均线对时间序列数据进行季节性分解,Python实现和原理介绍.这是我在学习时间序列异常检测时遇到的一个问题,通过收 ...

  4. python 时间序列分解案例——加法分解seasonal_decompose

    文章目录 一.模型简介 1.1 加法分解模型 1.2 乘法分解模型 1.3 分析步骤 二.案例 2.1 背景 & 数据 & python包 2.2 分析过程 一.模型简介 1.1 加法 ...

  5. EMD经验模态分解——分析时间序列

    EMD,(Empirical Mode Decomposition),经验模态分解,美国工程院士黄锷博士于1998年提出的一种信号分析方法. 是一种自适应的数据处理或挖掘方法,非常适合非线性,非平稳时 ...

  6. R-时间序列-分解季节性时间序列

    1.季节性时间序列 包含:长期趋势Trend,季节趋势Seasonal,周期循环Circle,随机项Random 这里分解为相加模型X=T+S+C+R 在对时间序列进行分解之前,应该对序列进行检验:( ...

  7. C语言decompose函数,R语言使用decompose函数进行时间序列的波动趋势分解

    使用decompose函数进行时间序列的波动趋势分解 实际上很多时间序列数据的波动趋势都可以分为长期趋势,周期性趋势和随机变化这三个叠加或相乘来表示的.在R中可以使用decompose(数据,type ...

  8. 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)

    时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络) 目录 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM ...

  9. python用电预测_Python时间序列预测实战(电力负荷预测)

    这是我之前工作做的一个项目 import os import pandas as pd import numpy path = "E:/工作/负荷预测/历史负荷数据-每天" #文件 ...

  10. ​【Python】Python中的经典时间序列预测模型总结

    时间序列预测是机器学习中一个经常被忽视的重要领域.时间序列在观察之间添加了显式的顺序依赖性:时间维度.这个额外的维度既是一个约束,也是一个提供额外信息来源的结构. 时间序列 时间序列分析 使用经典统计 ...

最新文章

  1. 使用Github进行多人协作,项目管理
  2. 反编译插件jadclips
  3. split函数python 未定义_Python字符串方法split()中的一道坑
  4. Python基础day07 作业解析【文件操作(文件读写、文件夹操作)】
  5. 小学计算机房简单介绍,介绍计算机教室的小学作文我们学校的机房
  6. C语言基础教程读书笔记5.2.(第五章函数和存储类2)
  7. “XEIM”国内开源即时通讯XEIM
  8. asp.net 在线 mp3,wma, avi
  9. (转)JDK 1.5中的ENUM用法
  10. SAP License:SAP系统界面相关调整和设置
  11. php mysql表单验证登录_使用PHP和MySql简单身份验证 1
  12. Scrapy:学习笔记(2)——Scrapy项目
  13. ElasticSearch入门系列(一)是什么以及安装和运行
  14. QT的信号与槽机制介绍
  15. 绕过TrustedInstaller权限
  16. Object Classification Using CNN-Based Fusion of Vision and LIDAR in Autonomous Vehicle Environment
  17. python爬虫数据寻找过程(解决爬虫异步导致AttributeError: 'NoneType' object has no attribute 'find_all'错误)
  18. linux酒吧消费,Handpick x HK I 深夜霓虹燈下的迷幻酒吧
  19. in语句作用C语言,C语言中IN(ch,OP)是什么意思
  20. 免费IDM注册机下载

热门文章

  1. csp是什么比赛_有关CSPJ/S比赛问题
  2. 小米网卡驱动linux,小米笔记本 Air 13.3 在 Linux Mint 下安装 nvidia 驱动
  3. python day2
  4. MATLAB求解矩阵特征值的六种方法
  5. ubuntu本地安装中文
  6. 转:超越一切的熵增定律
  7. 老视频修复完整教程:Topaz Video Enhance AI 提升分辨率+RIFE算法补帧
  8. 如何搭建Flash P2P网络直播点播平台
  9. Word怎么在方框里打勾
  10. python国际象棋小游戏代码_用Python编写一个国际象棋AI程序