精华内容
下载资源
问答
  • ARIMA介绍ARIMA是种非常流行的时间序列预测统计方法。ARIMA全称是自回归积分滑动平均模型。ARIMA模型基于以下假设:1、数据序列是平稳的,这意味着均值和方差不应该随时间变化。利用对数变换或级数求导,可以使...

    ARIMA介绍

    ARIMA是一种非常流行的时间序列预测统计方法。ARIMA全称是自回归积分滑动平均模型。ARIMA模型基于以下假设:

    1、数据序列是平稳的,这意味着均值和方差不应该随时间变化。利用对数变换或对级数求导,可以使级数保持平稳。

    2、作为输入提供的数据必须是单变量序列,因为ARIMA使用过去的值来预测未来的值。

    ARIMA有三个组成部分——AR(自回归项)、I(差分项)和MA(移动平均项)。其中:

    AR项:用来预测下一个值的过去值。AR项由arima中的参数“p”定义。p的值是通过PACF图确定的。

    MA项:用于预测未来值的过去预测错误的数量。arima中的参数q表示MA项。ACF图用于识别正确的“q”值。

    差分次数:对级数执行差分运算使其平稳的次数。ADF和KPSS等测试可以用来确定序列是否平稳,有助于识别d值。

    Auto ARIMA介绍

    虽然ARIMA是预测时间序列数据的一个非常强大的模型,但是数据准备和参数调整过程最终非常耗时。在实现ARIMA之前,您需要使级数保持平稳,并使用上面讨论的ACF和PACF图确定p和q的值。Auto ARIMA则对我们来说非常简单,因为它可以帮我们自动调参获得较好模型性能。以下是实现auto ARIMA的步骤:

    加载数据:这一步是相同的。把数据载入你的机器

    预处理数据:输入应该是单变量的,因此删除其他列

    创建Auto ARIMA:适合单变量系列的ARIMA模型

    预测:对验证集进行预测

    计算RMSE:用预测值与实际值对比检验模型的性能

    如您所见,我们完全绕过了传统ARIMA算法的p和q特性的选择。我松了一口气!下面我们将使用toy数据集实现Auto ARIMA。

    Auto ARIMA模型实战(python)

    我们将使用国际航空旅客数据集。该数据集包含每月乘客总数(以千计)。它有两栏数据—月和旅客人数。在进行操作前,你需要安装pyramid.arima库。

    1、下载数据并预处理

    #load the data

    data = pd.read_csv('international-airline-passengers.csv')

    #divide into train and validation set

    train = data[:int(0.7*(len(data)))]

    valid = data[int(0.7*(len(data))):]

    #preprocessing (since arima takes univariate series as input)

    train.drop('Month',axis=1,inplace=True)

    valid.drop('Month',axis=1,inplace=True)

    #plotting the data

    train['International airline passengers'].plot()

    valid['International airline passengers'].plot()

    2、创建模型并训练

    #building the model

    from pyramid.arima import auto_arima

    model = auto_arima(train, trace=True, error_action='ignore', suppress_warnings=True)

    model.fit(train)

    forecast = model.predict(n_periods=len(valid))

    forecast = pd.DataFrame(forecast,index = valid.index,columns=['Prediction'])

    #plot the predictions for validation set

    plt.plot(train, label='Train')

    plt.plot(valid, label='Valid')

    plt.plot(forecast, label='Prediction')

    plt.show()

    3、模型评价

    #calculate rmse

    from math import sqrt

    from sklearn.metrics import mean_squared_error

    rms = sqrt(mean_squared_error(valid,forecast))

    print(rms)

    output -

    76.51355764316357

    到此,我们在国际航空旅客数据集上简单实现了Auto ARIMA模型,在上面的代码中,我们简单地使用.fit()命令来拟合模型,而不需要选择p、q、d的组合。但是模型是如何计算出这些参数的最佳组合的呢?Auto ARIMA会考虑生成的AIC和BIC值(正如您在代码中看到的那样),以确定参数的最佳组合。AIC和BIC值是比较模型的估计量。这些值越低,模型越好。总的来说,Auto ARIMA比较简单,对于初学时间序列建模的同学来说比较容易入手。

    结语:

    更多机器学习算法的学习欢迎关注我们。对机器学习感兴趣的同学欢迎大家转发&转载本公众号文章,让更多学习机器学习的伙伴加入公众号《python练手项目实战》,在实战中成长。

    展开全文
  • 面试题22:栈的压入、弹出序列:建立一个辅助栈,把push序列的数字依次压入辅助栈,每次压入后,比较辅助栈的栈顶元素和pop序列的首元素是否相等,相等的话就推出pop序列的首元素和辅助栈的栈顶元素,若最后辅助栈为...
  • 对一列中的文字统一去掉最后一个字 讨如何去掉单元格中的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一列已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号...
  • R语言经典实例(中+英)

    热门讨论 2014-12-03 18:46:15
     14.16 两个时间序列间的滞后相关性 391  14.17 剔除时间序列的趋势 393  14.18 拟合ARIMA模型 394  14.19 剔除ARIMA模型中不显著的系数 397  14.20 ARIMA模型进行诊断 399  14.21 用ARIMA模型进行预测 400 ...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    对一列中的文字统一去掉最后一个字 讨如何去掉单元格中的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一列已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    c. 该程序要有顾客购票,查询班机起飞降落时间,班机订票情况等3个功能,并实现菜单选项 5、 用C++编写一个简单的行编辑器,每个结点保存一行文本,程序以E file开始,然后显示行数和提示符,如果输入I,后面...
  • 数据结构题

    2012-12-27 16:58:40
    2.在长度为100的顺序表的第10个位置上插入一个元素,元素的移动次数为( ) A.90 B.91 C.89 D.92 3.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( ) A.顺序表 B.用头指针表示的单循环链表C.用尾...
  • 085 去掉一个最高分和最低分参赛选手平均得分 169 ◎最值函数 171 086 突出显示销量最高的数据 171 087 月销售量低于平均销量的最大销量的商品名称 173 088 分别1~4月排前3的销售量 175 089 制作...
  • 支持中英文显示与繁简体操作系统,支持Wista/Win7系统及XP界面、拥有20多款华丽的皮肤界面,支持Excel2007全面隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010...
  • java范例开发大全(pdf&源码)

    热门讨论 2013-07-04 13:04:40
    实例21 任意一个正数的阶乘 35 实例22 n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的...
  • Java范例开发大全 (源程序)

    热门讨论 2011-04-27 07:47:22
     实例21 任意一个正数的阶乘 35  实例22 n的n次方 35  实例23 利用for循环输出几何图形 36  实例24 杨辉三角 38  3.3 while语句 39  实例25 1到100之间的和 39  实例26 存上100元需要多少天 40 ...
  • 隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ===================================================================================...
  • java范例开发大全源代码

    热门讨论 2011-10-30 23:31:51
     实例21 任意一个正数的阶乘 35  实例22 n的n次方 35  实例23 利用for循环输出几何图形 36  实例24 杨辉三角 38  3.3 while语句 39  实例25 1到100之间的和 39  实例26 存上100元需要多少...
  • java范例开发大全

    2013-03-08 20:06:54
    实例21 任意一个正数的阶乘 35 实例22 n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的...
  • 计算参数区域中去除最大值与最小值之再求平均,参数数有255(Excel2003中是1到30) hesum左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1/2则按1.5计算 NOWW不改变的当前...
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    (3)所谓时间复杂度是指最坏情况下,估算算法执行时间一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为(C )两大类。【武汉...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ===================================================================================...
  • 隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ============================================================================== ...
  • 隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ===================================================================================...
  • Java范例开发大全(全书源程序)

    热门讨论 2013-04-05 11:50:26
    实例21 任意一个正数的阶乘 35 实例22 n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出...
  • 哈佛管理技能培训教程:第二单元 哈佛经理知识修养 第一章 哈佛经理的经济知识 ...这就是说,在一个星期时间段内与在一个时间段内需求进行考察,其结果有所差别。 在表2.1.4中,尽管我们只...
  • (15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D) 注:即第一个阶段 A. 概要设计 B. 详细设计 C. 可行性分析 D. 需求分析 (16) 数据流图用于抽象描述一个软件的逻辑模型,数据...
  • 实例225 使用内连接选择一个表与另一个表中 行相关的所有行 6.18 外连接查询 实例226 left outer join查询 实例227 right outer join查询 实例228 使用外连接进行多表联合查询 6.19 利用in进行查询 实例229 用in查询...
  • 实例225 使用内连接选择一个表与另一个表中 行相关的所有行 6.18 外连接查询 实例226 left outer join查询 实例227 right outer join查询 实例228 使用外连接进行多表联合查询 6.19 利用in进行查询 实例229 用in查询...
  • 实例225 使用内连接选择一个表与另一个表中 行相关的所有行 6.18 外连接查询 实例226 left outer join查询 实例227 right outer join查询 实例228 使用外连接进行多表联合查询 6.19 利用in进行查询 实例229 用in查询...
  • 6.4.2 移动恢复目录到另一个数据库 241 6.4.3 虚拟专用目录 242 6.5 增强的RMAN与Data Guard的集成 246 6.5.1 不用数据库连接配置RMAN 246 6.5.2 复原备份控制文件为备用控制文件 247 6.5.3 重新同步恢复目录 ...
  • 实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 实例015 安装界面设计器 22 实例016 设计Windows系统的运行对话框 界面 23 实例017 设计计算器程序界面 26 实例018 设计关于进销存管理系统的界面 27 第2章 ...
  • 实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 实例015 安装界面设计器 22 实例016 设计Windows系统的运行对话框 界面 23 实例017 设计计算器程序界面 26 实例018 设计关于进销存管理系统的界面 27 第2章 ...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

对一个时间序列求移动平均