.describe() python_Python实现ARMA模型
1.导入相关包,查看数据情况
import numpy as np import pandas as pd import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'%matplotlib inline
df = pd.read_csv('./RFM分析1.csv')df.info()
输出:
可以看出这里的数据比较完整,没有缺失值不用清洗缺失值。
2.请洗数据2.1将销售日期转换成datetime类型
df['销售日期'] = pd.to_datetime(df['销售日期'])# 查看是否修改成功df.info()
输出:
2.2 使用describe查看均值、最大、最小值情况
df.describe()输出:
支付金额有负数。查看负数的数据有多少条。
df[df['销售金额']
这里有6946条,相对于总数293751,数据比较小,直接当异常值来处理。这里直接获取销售金额大于0的数据来进行分析。
df = df[df['销售金额'] > 0]# 重新看销售金额的最小值df.describe()
2.3 设置销售日期为index
df.index = df['销售日期']df.head()
输出:
3.利用ARMA模型进行预测3.1 先查看现有的销售趋势
df_Month = df.resample('M').sum()plt.figure(figsize=(18, 7), dpi=128)df_Month['销售金额'].plot()
输出:
3.2 对数据进行训练
from statsmodels.tsa.arima_model import ARMAfrom datetime import datetimefrom itertools import product
# 设置p阶,q阶范围# product p,q的所有组合# 设置最好的aic为无穷大# 对范围内的p,q阶进行模型训练,得到最优模型ps = range(0, 6)qs = range(0, 6)parameters = product(ps, qs)parameters_list = list(parameters)
best_aic = float('inf')results = []for param in parameters_list: try: model = ARMA(df_Month['销售金额'], order=(param[0], param[1])).fit() except ValueError: print("参数错误:", param) continue aic = model.aic if aic best_model = model best_aic = model.aic best_param = param results.append([param, model.aic])results_table = pd.DataFrame(results)results_table.columns = ['parameters', 'aic']print("最优模型", best_model.summary())
输出:
3.3 预测
# 先增加后几个月的时间日期,进行合并date_list = [datetime(2014, 8, 31), datetime(2014, 9, 30), datetime(2014, 10, 31), datetime(2014, 11, 30), datetime(2014, 12, 31), datetime(2015, 1, 31)]df_Month = df_Month[['销售金额']]future = pd.DataFrame(index=date_list, columns= df_Month.columns)df_Month = pd.concat([df_Month, future])df_Month
输出:
进行预测,可视化
df_Month['forecast'] = best_model.predict(start=0, end=58)plt.figure(figsize=(20, 7))df_Month['销售金额'].plot(label='实际销售金额')df_Month['forecast'].plot(color='r', ls='--', label='预测销售金额')plt.legend()plt.show()
公众号推荐:数据思践
数据思践公众号记录和分享数据人思考和践行的内容与故事。
《数据科学与人工智能》公众号推荐朋友们学习和使用Python语言,需要加入Python语言群的,请扫码加我个人微信,备注【姓名-Python群】,我诚邀你入群,大家学习和分享。
关于Python语言,有任何问题或者想法,请留言或者加群讨论。
.describe() python_Python实现ARMA模型相关推荐
- Python实现ARMA模型
1.导入相关包,查看数据情况 import numpy as np import pandas as pd import matplotlib.pyplot as pltplt.rcParams['f ...
- AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
AR模型.MA(Moving Average)模型.ARMA模型.时间序列的定阶.ARIMA.SARIMAX 目录 AR模型.MA(Moving Average)模型.ARMA模型.时间序列的定阶.A ...
- arma模型平稳性和可逆性的条件_时间序列预测模型ARIMA实现
前段时间整理了一个预测的基本思考框架和常见的方法,其中提到了ARIMA模型,在<大数据预测>那本书里,ARIMA是单独开辟一章讲的,比较复杂和难理解的一个模型,自己最近找了点资料粗浅学习了 ...
- arma模型_R语言与计量经济学(七)ARMA模型
前面说了AR模型和MA模型,ARMA就是结合一下,既有自回归又有移动平均 就是这样形式哈!懒得打公式... 同样还是举个栗子 ! #ARMA自回归移动平均模型 mod<-arima.sim(mo ...
- arma模型谱估计matlab_基于机器学习的心律失常分类(四)——心电信号特征提取[MATLAB]...
目前比较常用的特征提取是提取心电信号的各波形间期长度.波峰高度等,本文是使用ARMA模型对心电信号进行处理,使用其系数来作为特征. 一.心拍划分 大多伴有异常波形的心律失常信号,通常都会具体表现在单个 ...
- arma模型_GARCH模型应用:以国泰君安为例
1.下载国泰君安股票数据,计算对数收益率 (1)首先安装包"quantmod",这个包可以从雅虎财经的下载股票数据,具体包的解释见"[量化基础]R语言获取金融数据之qua ...
- arma模型_Eviews经典案例 | 初学者必看!ARMA模型精讲
[本期分析师介绍]希音老师,<数据分析学堂>金牌分析师,对eviews的时间序列.ARMA.VAR.VECM.ARCH.GARCH等操作有深入的研究和实战经验,累计服务客户1000+.今天 ...
- ARMA模型的性质之ARMA模型
目录 一.ARMA模型的定义 二.平稳条件与可逆条件 三.传递形式与逆转形式 四.ARMA(p,q)模型的统计性质 1.均值 2.自协方差函数 3.自相关系数 4.ARMA(p,q)模型自相关系数拖尾 ...
- arma预测matlab讲解,MATLAB中ARMA模型预测差分问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是我MATLAB预测风速的程序,程序不是我自己写的,我也是拿来参考自己的毕业作业的.每条程序旁的中文是我自己的理解,我也不知道对不对. 程序1 X=lo ...
最新文章
- probit概率单位回归分析
- vue根据不同权限显示图片_vue如何实现路由权限控制
- 【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★
- 系统启动与内核管理 ;AWK部分 重要内容 (实验及awk的常见面试题)
- 微软KV Store Faster如何巧妙实现1.6亿ops
- modbus-crc16——c语言
- Access“INSERT INTO 语句的语法错误”解决办法
- 第一章,安装 composer
- 通俗易懂的MonteCarlo积分方法(五)
- Pascal数据结构与算法
- 1602显示字符串的C语言程序,LCD1602程序显示字符串
- Linux基础学习笔记整理——第二章 管理文件和目录
- 微信小游戏上线发布全流程详解
- between ..... and 用法
- 安卓开发学习——第四天
- 手机发出的邮件可以撤回吗?已发出的邮件撤回后对方能看到吗?
- Google搜索设置在新标签页打开的方法
- 苹果展开新显示器带动高阶需求:Mini LED背光技术
- Lucene.Net 实现搜索功能
- web图片裁切插件 cropper.js 详细介绍
热门文章
- demo.php url,return_url.php
- mybatis collection标签_MyBatis第二天(结果映射+动态sql+关联查询)
- atiken插值c++_c++插值代码
- 入门学习因果推断在智能营销/权益应用的通用框架
- python︱处理与使用json格式的数据(json/UltraJSON/Demjson)、pickle模块、yaml模块
- python import自定义模块方法
- PIE SDK矢量点生成等值线、面
- Linux编辑启动停止重启springboot jar包脚本
- 【web前端面试题整理03】来看一点CSS相关的吧
- 递归大总结之台阶问题