时间序列分析之auto_arima自动调参

news2024/9/24 19:16:56

背景

我们在进行ARIMA建模时,有一个非常重要的事情就是确定其中超参数p, d, q。
一般的流程需要先根据平稳性来确认差分的阶数d,然后根据平稳序列来观察ACF图和PACF图来确认p和q,当然中间还要根据网格训练查看AIC的值来确认,真个过程非常复杂,而且结果还不一定准确;
同时在涉及周期性参数时,工作量会加倍,所以auto_arima自动调参的出现就省去很多麻烦。

auto_arima

auto_arima可以自动尝试不同的阶数组合并挑选出可能的最优模型。可以帮助我们进行定阶,确认模型的参数。

auto_arima参数

class AutoARIMA(BaseARIMA):
    # Don't add the y, exog, etc. here since they are used in 'fit'
    __doc__ = _doc._AUTO_ARIMA_DOCSTR.format(
        y="",
        X="",
        fit_args="",
        return_valid_fits="",
        sarimax_kwargs=_doc._KWARGS_DOCSTR)

    # todo: someday store defaults somewhere else for single source of truth
   
    def __init__(
        self,
        start_p=2,
        d=None,
        start_q=2,
        max_p=5,
        max_d=2,
        max_q=5,
        start_P=1,
        D=None,
        start_Q=1,
        max_P=2,
        max_D=1,
        max_Q=2,
        max_order=5,
        m=1,
        seasonal=True,
        stationary=False,
        information_criterion='aic',
        alpha=0.05,
        test='kpss',
        seasonal_test='ocsb',
        stepwise=True,
        n_jobs=1,
        start_params=None,
        trend=None,
        method='lbfgs',
        maxiter=50,
        offset_test_args=None,
        seasonal_test_args=None,
        suppress_warnings=True,
        error_action='trace',
        trace=False,
        random=False,
        random_state=None,
        n_fits=10,
        out_of_sample_size=0,
        scoring='mse',
        scoring_args=None,
        with_intercept="auto",
        **kwargs,
    ):
参数含义备注
y要拟合的时间序列必要,array-like or iterable, shape=(n_samples,),⼀维的浮点型数组,不能包含空值和或者无穷’
X外置变量非必要,给定额外的特征来帮助预测,需要注意的是,对于预测未来的时序数据的时候,也要提供未来的特征数据
start_p参数p的下界int, 默认为2
d⾮周期的差分阶数int, 默认None,如果是None,则⾃动选择,此时,运⾏时间会显著增加。
start_q参数q时的下界int, 默认为2
max_p参数p的上界int, 默认为5,max_p>=start_p
max_d⾮周期的差分阶数d的上界int, 默认2,max_d>=d
max_q参数q时的上界int, 默认5,max_q>=start_q
start_P周期参数P的下界int,默认1
D周期差分的阶数int,默认None,如果是None,则⾃动选择
start_Q周期参数Q的下界int, 默认1
max_P周期参数P的上界int,默认2
max_D周期的差分阶数的上界int, 默认1, max_D>=D
max_Q周期参数Q的上界int,默认2
max_orderp+q+P+Q 组合最大值int, 默认5,如果p+q≥max_order,该组合对应的模型将不会被拟合,如果是None的话,对最大阶没有限制
m周期数int, 默认1,例如年数据 m=1,季度数据m=4,月度数据m=12,周数据52;如果m=1, 则seasonal会被设置为False
seasonal是否进⾏周期性ARIMA拟合bool, 默认True,如果seasonal=True同时m=1,seasonal会被设置为False
stationary标志该序列是否是平稳序列bool, 默认False
information_criterion模型评价指标str, 默认’aic’,可选‘aic’, ‘bic’, ‘hqic’,'oob’
alphatest的显著性⽔平float,默认0.05
test单位根检验的类型str, 默认’kpss’,当非平稳且d=None才会进⾏检验, 当出现奇异值分解错误可选adf
seasonal_test周期单位根检验⽅法的标志str, 默认‘ocsb’,可选’ch’
stepwise是否采用stepwise 算法bool, 默认True,可以更快速的找到最佳模型和防止过拟合,但存在不是最佳模型的风险,这样课可以设置成False,模型搜寻范围扩大,耗时也会增加
n_jobs并行拟合模型的数目int,默认1,如果为-1,则尽可能多的并行,提速用
start_paramsARMA(p,q)的起始参数array-like, 默认None
trend多项式趋势的多项式的系数str or iterable,‘n’, ‘c’, ‘t’ , ‘ct’ 选择 ,其中n表示没有,c表示常数,t:线性,ct:常数+线性
method似然函数的类型str, 默认lbfgs, 可选{‘css-mle’,‘mle’,‘css’}之⼀
maxiter求解最大迭代次数int, 默认50
transparams是否检验平稳性和可逆性bool,默认True,如果为True,则进⾏变换确保平稳性,如果为False,不检验平稳性和可逆性
suppress_warnings是否过滤掉警告bool, 默认True
error_action是否跟踪错误提示str, 默认 ‘trace’,如果由于某种原因无法匹配ARIMA,则可以控制错误处理行为。(warn,raise,ignore,trace)
trace是否跟踪拟合过程bool, 默认False
random是否随机搜索,而不是超参数空间全搜索或者stepwise搜索bool, 默认False
with_intercept是否需要截距 ,均值漂移str, 默认auto
disp收敛信息的打印控制int, 默认0,disp<0表⽰不打印任何信息

重要参数解读:
在这里插入图片描述
一般情况下差分阶数是需要我们根据平稳性来判定的,所以d和D我们可以自主设置,
如:d = 1 D = 1

start_p、max_p、start_q、max_q,这几个参数可以参照ACF和PACF图给定一个上限值,一般
start_p = 1,start_q = 1,
max_p、max_q根据观察图给定一个上限,模型自行Fit,如果自己不去查看ACF和PACF图,随意写一个比较大的值,也是可以的,但是时间成本比较高;
m 是周期数,这个一般需要配合decompose来查看,不过一般我们可以根据数据的频次来定,比如是月数据那么m=12,周数据m=52等等,m=1则认为没有周期性

start_P、max_P、start_Q、max_Q,只能手动赋值了,如果有知道这个周期性P和Q的定阶方法的大佬请说一下

其他参数:
n_jobs = -1 这样会快一点(其他的函数,只要有这个参数,也建议设置成-1)
stepwise = True,可以更快速的找到最佳模型和防止过拟合

其他参数暂时没有发现特别需要说明的,大家有需要了解的也可以评论区留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计模式-行为型模式

行为型模式 行为型模式是对在不同的对象之间划分责任和算法的抽象化通过行为型模式&#xff0c;可以更加清晰地划分类与对象的职责&#xff0c;并研究系统在运行时实例对象之间的交互。在系统运行时&#xff0c;对象并不是孤立的&#xff0c;他们可以通过相互通信与协作完成某…

数据赋能的未来,看向嵌入式BI

数据分析能力越来越成为消费者和企业的必备品应用程序&#xff0c;复杂程度各不相同&#xff0c;从简单地一个网页或门户上托管一个可视化或仪表板&#xff0c;到在一个云服务上实现数据探索、建模、报告和可视化创建的应用程序。BI的实现方式越来越多&#xff0c;无论规模大小…

南京晓庄操作系统期末复习【大题】

操作系统期末复习大题第六章磁盘调度寻道时间与移动次数转换I/O中断请求第五章地址转换页面置换第四章动态分区地址转换第三章银行家算法处理机调度算法第二章进程同步第一章多道运行时间第六章 磁盘调度 前提小知识&#xff1a; 1.先来先服务&#xff08;FCFS&#xff09;:…

ros版本apollo7.0.0规划控制算法

apollo.ros-7.0.0 上次给大家带来了之前学习apollo时开发的内容apollo.ros-1.0.0和apollo.ros-3.0.0&#xff0c;主要是针对apollo 1.0.0和3.0.0版本进行了ros1下的移植和规划控制算法的学习。本次在之前工作的基础上&#xff0c;针对apollo 7.0.0版本&#xff0c;进行了ros1下…

第二章:Linux常见指令以及权限理解

系列文章目录 文章目录系列文章目录前言一、Linux下基本概念指令操作操作系统的概念命令选项文件的概念Linux文件结构文件路径Linux下一切借文件二、Linux下基本指令ls&#xff1a; 显示当前目录下的文件名mkdir/rmdir&#xff1a;在当前路径下创建或删除目录pwd&#xff1a; 显…

国产智能2/4DIN+2/4 继电器输入输出MODBUS RTU数据采集IO模块

MODBUS RTU数据采集IO模块简介 DAMx 系列模块为 2/4 路开关量输入监测、2/4 路继电器输出控制模块。通讯接口为 1 路 RS-485 口&#xff0c;MODBUS-RTU 通讯协议。DC9&#xff5e;36V 电源供电。 DAM 系列模块可应用于各种工业自动化测量与控制系统中。开关量输出可控制中间继电…

educoder头歌数据结构 查找 第2关:实现散列查找(答案无错AC版)

本文已收录于专栏 &#x1f332;《educoder数据结构与算法_大耳朵宋宋的博客-CSDN博客》&#x1f332; 任务描述 本关要求通过补全函数ILH_InsKey和ILH_DelKey来分别实现插入和删除操作。 相关知识 本关讨论散列存储&#xff0c;散列函数使用除留余数法&#xff0c;冲突解决…

shell第六天作业——正则表达式与grepsed

题目 一、正则表达式与grep 1、显示/etc/rc.d/init.d/README文件中以不区分大小的h开头的行&#xff1b; 2、显示/etc/passwd中以sh结尾的行; 3、显示/etc/fstab中以#开头&#xff0c;且后面跟一个或多个空白字符&#xff0c;而后又跟了任意非空白字符的行&#xff1b; 4、…

Lemon LemonLime 中 SPJ Special Judge 使用 实践 入门 a

入门&#xff1a;题目&#xff0c;以整数形式给定圆的半径&#xff0c;输出该圆的周长&#xff0c;该圆的面积。比赛目录如下&#xff1a;标准输入输出数据如下&#xff1a;circle1.in1circle1.ans6.283185 3.141593circle2.in2circle2.ans12.566370 12.566370circle3.in3circl…

【IIC/I2C--温湿度传感器——GPIO模拟IIC协议】

IIC/I2C--温湿度传感器——GPIO模拟IIC协议IIC总线时序起始信号停止信号数据传输信号应答和非应答信号寻址IIC协议1.开始传输&#xff1a;2.发送您的数据&#xff1a;3.结束传输&#xff1a;4.注意&#xff1a;编写代码实验结果IIC总线时序 起始信号 1&#xff09;起始信号和停…

装饰器模式

装饰器模式 1.装饰器模式介绍 初看上图感觉装饰器模式有点像俄罗斯套娃、某众汽车&#x1f695;&#xff0c;而装饰器的核心就是再不改原有类的基础上给类新增功能。不改变原有类&#xff0c;可能有的小伙伴会想到继承、AOP切面&#xff0c;当然这些方式都可以实现&#xff0c…

Java 并发编程知识总结【四】

5. 线程通信 5.1 Lock 接口 是什么&#xff1a;Lock 实现提供比使用 synchronized 方法和语句可以获得的更广泛的锁定操作。 它们允许更灵活的结构化&#xff0c;可能具有完全不同的属性&#xff0c;并且可以支持多个相关联的对象 Condition Lock 接口的实现 ReentrantLock …

论文的未来走向及创新(1)

论文题目 Zero-Shot Learning across Heterogeneous Overlapping Domains 基准方法 Nave Bayes (Unigram) P(utterance∣domain)P(utterance | domain)P(utterance∣domain) is modeled with Nave Bayes model with features being word unigrams in the utterance. Nave Ba…

centos7修改默认yum源为国内源

centos7修改默认yum源为国内源 文章目录centos7修改默认yum源为国内源操作系统环境信息修改yum源步骤修改后效果yum下载的默认镜像地址速度很慢&#xff0c;一般会更改镜像源为国内的镜像地址&#xff0c;比如163&#xff0c;阿里云等&#xff0c;本文介绍下修改yum源的步骤。操…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的图像分割模型!

给我推荐20个比较流行的图像分割模型 U-Net Mask R-CNN FCN DeepLab PSPNet LinkNet UNet SegNet Tiramisu DenseASPP ICNet ENet DANet DenseSeg Fast-SCNN BiSeNet DUNet MaskLab Dense UNet Attention U-Net给我推荐20个比较流行的图像分割模型源码 好的&#xff0c;下面是…

JMeter自定义函数

JMeter二次开发需求一般集中在2个方向&#xff1a;针对请求类&#xff0c;即需要和服务器进行通信的&#xff0c;我们一般是做java请求的二次开发针对数据处理类型&#xff0c;是不需要和服务器进行通信&#xff0c;是在客户端完成的&#xff0c;一般是做JMeter的自定义函数除了…

【谷粒商城基础篇】商品服务开发:属性分组、平台属性

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念&#xff08;第一、二章&#xff09;基础环境搭建&#xff08;第三章&#xff09;整合SpringCloud整合SpringCloud、SpringCloud alibaba&#xff08;第四、五章&#xff09;前端知…

若依RuoYi整合短信验证码登录

背景&#xff1a;若依默认使用账号密码进行登录&#xff0c;但是咱们客户需要增加一个短信登录功能&#xff0c;即在不更改原有账号密码登录的基础上&#xff0c;整合短信验证码登录。 一、自定义短信登录 token 验证 仿照 UsernamePasswordAuthenticationToken 类&#xff0c…

使没有sudo权限的普通用户可以使用容器

一、基本思路将普通用户加入docker组二、ubuntu组管理命令1、配置文件&#xff08;1&#xff09;文件&#xff1a;/etc/group&#xff08;2&#xff09;权限&#xff1a;①超级用户可读可写②普通用户只读2、查看组&#xff08;1&#xff09;命令cat /etc/group&#xff08;2&a…

【从零开始学习深度学习】34. Pytorch-RNN项目实战:RNN创作歌词案例--使用周杰伦专辑歌词训练模型并创作歌曲【含数据集与源码】

目录RNN项目实战使用周杰伦专辑歌词训练模型并创作歌曲1.语言模型数据集预处理1.1 读取数据集1.2 建立字符索引1.3 时序数据的2种采样方式1.3.1 随机采样1.3.2 相邻采样小结2. 从零实现循环神经网络并进行训练预测2.1 one-hot向量表示2.2 初始化模型参数2.3 定义模型2.4 定义预…