位置: IT常识 - 正文

【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose(时序21-21-21-47)

编辑:rootadmin
【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose 【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 理解python sm.tsa.seasonal_decompose

推荐整理分享【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose(时序21-21-21-47),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:时序17,时序还是时序,时序gan,时序gan,时序 序时,时序17,时序 序时,时序 序时,内容如对您有帮助,希望把文章链接给更多的朋友!

在做时序列分析的时候,好多教程都告诉你要把时序列分解成趋势,季节性,残差,然后画图看一下有没有趋势变化,有没有季节性。像这样:

import statsmodels.api as smdecomposition = sm.tsa.seasonal_decompose(train['Count'] ,model='addictive', period=7)decomposition.plot()

相信大家都很熟悉python的这个包和命令,但是具体是如何分解的却不是特别清楚。今天就来详细理解一下一个时序列是如何一步一步被分解的。

举个例子理解概念

首先我们默认每个时序列在某个时间点i的数值,都可以分解成三部分,分别是趋势,季节性和残差,以此来解释时序列的变化。

比如,某列车2021年2月的总乘客人数1000人,这1000人如何理解,为什么是1000人? 2018年2月还是100人,2021年1月还是300人,为啥到2021年2月就1000人了?

首先,可能因为列车开通后乘车人数有逐年上升的趋势,每年增加100人,2018年到2021年的3年之间增加了300人,只考虑趋势原因的话2021年2月应该是:100+300=400人

然后,和2021年1月分相比,2021年2月是春节,每年的2月乘客都1月多200人,只考虑春节这个季节性原因的话2021年2月应该是:300+200=500人

把季节性和趋势原因都考虑进去应该是:400+500=900人,但2021年2月是1000人,剩下的100人如何解释呢?暂时解释不了, 我们就把它作为残差(误差)

理解了例子公式就简单了

就是下面这个公式: y_i = t_i + s_i + n_i

【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose(时序21-21-21-47)

y_i :在i时间点的数值(乘客人数,销量等等) t_i :在i时间点的趋势 s_i :在i时间点的季节性 n_i:在i时间点的残差

当然在上面这个例子里,我们假设这个y(乘客人数),是线性增长的,所以我们用加法把每个要素加起来,来解释y的变化。 如果y不是线性增长,而是比如指数增长的,那就不能用加法,需要用乘法,即: y_i = t_i * s_i * n_i

decomposition = sm.tsa.seasonal_decompose(train[‘Count’], model=‘addictive’, period=7)

那么,上面这句代码里的model就应该从‘addictive’, 改成‘multiplicative’

一步步分解趋势,季节性,残差

所以趋势,季节性,残差都是咋分出来的呢。计算方法貌似有很多,我们理解一个最基本的。 五步走: 1: 确定季节性变化的期间 2: 分离 趋势 3: 分离 季节性+残差 4: 分离 季节性 5: 分离 残差

1: 确定季节变化的期间

这个期间就是decompose命令里面的period。看一下你的数据图。我手头的数据是日次的,看起来以周为单位有一个先升高再下降的循环。所以我把period定为7(7天的意思)

2: 分离 趋势

7这个期间定好之后,我们用移动平均的方法分离趋势。为了方便解释,我都用excel做示例。

计算的时候,以7的中心为开始计算移动平均。所以时序列最开始的3个三个数和最后的3个数是没有值的。 个人理解,如果季节性以周次出现,那么以7为单位计算的时候,比如每周六日数值都很高,这个因素就每个cycle(周)里面都有,平均下来的数值,就可以看作是摒弃了季节性的趋势的影响。 可以看到计算结果和python的decompose是一样的

3: 分离 季节性+残差

分离好趋势之后,如果你选的是model=‘addictive’,根据公式y_i = t_i + s_i + n_i, 我们只要用数值减去趋势那部分,就能得到季节性+残差的部分了。如果是multiplicative,那就是除以趋势。 结果如下,季节性+残差

4,5: 分离 季节性 残差

接下来就从季节性+残差里面把季节性分出来。比如,如果时序列是周次季节性,那么周一的数值,就减去所有周一的数值的平均,周二的数值就减去所有周二的平均,以此类推,剩下的就是残差了。当然这只举了一个分离季节性的超简单逻辑。python里面decompose貌似用了更复杂的计算方法来计算季节性,由于篇幅过大暂且省略。

验证以下python的结果

看一下用python的seasonal_decompose算完,季节性,趋势,残差,加起来是不是真的等于原来的数值。 代码如下

decomposition = sm.tsa.seasonal_decompose(train['Count'],model='addictive', period=7) #Additivetrend = decomposition.trendseasonal = decomposition.seasonal residual = decomposition.residtrain['trend']=trendtrain['seasonal']= seasonaltrain['residual']= residualtrain['add'] = train['trend']+train['seasonal'+*train['residual']

结果如下,Count果然和三个加起来的数值是一样的。 前三行的trend是没有值的。这是因为以7为中心算移动平均的时候,中心点位置是第四行,前3行没有值也就可以理解了。 就写到这里。欢迎大家指导讨论!

【参考文献】 https://timeseriesreasoning.com/contents/time-series-decomposition/

本文链接地址:https://www.jiuchutong.com/zhishi/295152.html 转载请保留说明!

上一篇:在暴风雪中畅游的鸬鹚,德国黑森州 (© Wilfried Martin/Getty Images)(在暴风雪中求生)

下一篇:元素点击报错:element click intercepted(元素鼠标失灵了怎么办)

  • 唯品会已下架和已抢光区别(唯品会下架是什么意思)

    唯品会已下架和已抢光区别(唯品会下架是什么意思)

  • 荣耀x10max有几个卡槽(荣耀x10max有几个扬声器)

    荣耀x10max有几个卡槽(荣耀x10max有几个扬声器)

  • 苹果xs无线充电功率(苹果xs无线充电充不进去)

    苹果xs无线充电功率(苹果xs无线充电充不进去)

  • 苹果11屏幕下滑一半怎么办(苹果11屏幕下滑一半作用)

    苹果11屏幕下滑一半怎么办(苹果11屏幕下滑一半作用)

  • 京东支付密码是什么(京东支付密码是什么时候设置的)

    京东支付密码是什么(京东支付密码是什么时候设置的)

  • qq改马甲什么意思(qq里面的改马甲是什么意思?)

    qq改马甲什么意思(qq里面的改马甲是什么意思?)

  • 苹果6电池不耐用了怎么修复(苹果6电池不耐电怎么办)

    苹果6电池不耐用了怎么修复(苹果6电池不耐电怎么办)

  • 微信申请的健康码可以取消吗(微信申请的健康码全国通用吗)

    微信申请的健康码可以取消吗(微信申请的健康码全国通用吗)

  • iphone响很久用户正忙(iphone响很久弹出用户正忙是不是关机了)

    iphone响很久用户正忙(iphone响很久弹出用户正忙是不是关机了)

  • 华为freebuds3上市时间(华为freebuds3刚上市多少钱)

    华为freebuds3上市时间(华为freebuds3刚上市多少钱)

  • iphone6s怎么没有live(iphone6s怎么没有siri)

    iphone6s怎么没有live(iphone6s怎么没有siri)

  • 如何在word中编辑图片(如何在word中编辑表格)

    如何在word中编辑图片(如何在word中编辑表格)

  • word文档怎么排版双面(word文档怎么排版整齐)

    word文档怎么排版双面(word文档怎么排版整齐)

  • qq打电话微信会忙线吗(qq打电话微信会显示什么)

    qq打电话微信会忙线吗(qq打电话微信会显示什么)

  • 华为手机怎么添加铃声(华为手机怎么添加时间和天气)

    华为手机怎么添加铃声(华为手机怎么添加时间和天气)

  • 京东取消订单钱会退吗(京东取消订单钱到账了东西送过来了)

    京东取消订单钱会退吗(京东取消订单钱到账了东西送过来了)

  • 小米6怎样升级miui11(小米6如何升级miui11)

    小米6怎样升级miui11(小米6如何升级miui11)

  • 专业拍照ev是啥意思(专业照相ev什么意思)

    专业拍照ev是啥意思(专业照相ev什么意思)

  • 淘宝集福怎么集(淘宝集福怎么弄)

    淘宝集福怎么集(淘宝集福怎么弄)

  • dubbo和cloud区别(dubbo和springcloud性能对比)

    dubbo和cloud区别(dubbo和springcloud性能对比)

  • 手机视频可以美颜吗(手机视频可以美颜的软件)

    手机视频可以美颜吗(手机视频可以美颜的软件)

  • 荣耀v20有没有耳机接口(荣耀v20pro有没有耳机孔)

    荣耀v20有没有耳机接口(荣耀v20pro有没有耳机孔)

  • 苹果xsmax可以无线充电吗(苹果xsmax可以无线磁吸充电吗)

    苹果xsmax可以无线充电吗(苹果xsmax可以无线磁吸充电吗)

  • 抖音蓝v怎么申请(抖音蓝V怎么申请员工号)

    抖音蓝v怎么申请(抖音蓝V怎么申请员工号)

  • 虹膜采集是什么(虹膜采集是什么意思)

    虹膜采集是什么(虹膜采集是什么意思)

  • DenseNet代码复现+超详细注释(PyTorch)(densenet详解)

    DenseNet代码复现+超详细注释(PyTorch)(densenet详解)

  • 前端的现状以及未来发展趋势,最简单的理解前端开发(现在前端的现状)

    前端的现状以及未来发展趋势,最简单的理解前端开发(现在前端的现状)

  • 湖南省增值税发票图片
  • 预付款发票能入账吗
  • 税收的作用是什么
  • 个体户免税金额现在是多少
  • 个人股权转让给公司
  • 质保金扣款要进项税转出吗
  • 增值税一般纳税人是什么意思
  • 支付退货款现金流怎么做
  • 外币购销业务的账务处理
  • 销售返利增值税按哪个税率
  • 机动车销售发票是否需要认证
  • 税务局返还的个税手续费税率
  • 商业保险税前扣除限额
  • 物业公司代收暖气费如何开票
  • 如何利用成套消费品进行纳税筹划
  • 计提工资和实际发放工资
  • 个人出租商铺要交城镇土地使用税吗
  • 不动产分期转出要交税吗
  • 税控设备抵减如何填写报表
  • 不交社保一告一个准罚多少钱
  • 个人部分公积金可以抵扣个税吗
  • 固定资产管理的论文
  • 预交土地增值税怎么计算的
  • 刷卡机怎么收费的吗
  • 细说php
  • k210中文手册
  • 运行安装程序时发生错误
  • 红字发票信息表填好后再怎么操作
  • 抵债资产的账务处理
  • 贸易型企业能开什么增值税票
  • 流动资产损失
  • 实际交印花税会计分录
  • php抽象类可以多继承吗
  • php获取指定日期的星期几的方法是
  • java幂等性是什么
  • php设置header参数
  • Blog2N如何计算
  • 冲掉应收账款
  • 商贸公司库存商品怎么做分录
  • 应收账款能想到什么
  • python方差齐性检验
  • 如何做固定资产的台账
  • 公司能经营烟草公司吗
  • 现金账怎么登记
  • 承典人是什么意思
  • 预付账款指的是哪些
  • 应交税费期末余额在借方怎样处理
  • 主播收钱违法吗
  • 固定资产计提完折旧报废的账务处理
  • 广告制作需要交文化事业建设税
  • 期末留抵税额可以冲减欠税吗
  • 代理记账公司能赚钱吗
  • Centos 7.3下SQL Server安装配置方法图文教程
  • mysql更改密码命令
  • microsoft office诊断
  • 双硬盘无法进入bios
  • windowsxp停止服务的时间
  • ubuntu鼠标不能移动
  • winctlad.exe - winctlad是什么进程
  • window 启动
  • 制作xp系统盘需要多大u盘
  • hpg是什么文件
  • win10的快速访问
  • win10内置杀毒
  • node.js gui
  • [置顶]公主大人接下来是拷问时间31
  • 菜鸟教程 安卓版
  • linux修改目录路径
  • Android 使用的字体
  • unity3d怎么编程
  • 浅析jQuery Ajax请求参数和返回数据的处理
  • unity ugui教程
  • jquery的实现原理
  • jquery中加载文档的方法
  • js table插件
  • 重庆国家电子税务总局怎样开电子税票
  • 低保大数据核查哪些数据
  • 新电子税务局使用方法
  • 沧州市养老保险局官网
  • 陕西省地方税务局公告2016年第1号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设