print('a.朴素法')
        #如果数据集在一段时间内都很稳定,我们想预测第二天的价格,可以取前面一天的价格,预测第二天的值。
        # 这种假设第一个预测点和上一个观察点相等的预测方法就叫朴素法。即 ^yt+1=yt
        dd = np.asarray(train['value'])
        y_hat = test.copy()
        y_hat['naive'] = dd[len(dd) - 1]
        plt.figure(figsize=(12, 8))
        plt.plot(train.index, train['value'], label='Train')
        plt.plot(test.index, test['value'], label='Test')
        plt.plot(y_hat.index, y_hat['naive'], label='Naive Forecast')
        plt.legend(loc='best')
        plt.title("Naive Forecast")
        plt.show()

print('b.简单平均法')
        #我们经常会遇到一些数据集,虽然在一定时期内出现小幅变动,但每个时间段的平均值确实保持不变。
        # 这种情况下,我们可以预测出第二天的价格大致和过去天数的价格平均值一致。
        # 这种将预期值等同于之前所有观测点的平均值的预测方法就叫简单平均法。
        y_hat_avg = test.copy()
        y_hat_avg['avg_forecast'] = train['value'].mean()
        plt.figure(figsize=(12, 8))
        plt.plot(train['value'], label='Train')
        plt.plot(test['value'], label='Test')
        plt.plot(y_hat_avg['avg_forecast'], label='Average Forecast')
        plt.legend(loc='best')
        plt.title("Avg Forecast")
        plt.show()

print('c.移动平均')
        # rol_mean = df.rolling(3).mean()
        # df.plot(color='blue', label='Original')
        # rol_mean.plot(color='red', label='Rolling Mean')
        # plt.show()

y_hat_avg = test.copy()
        y_hat_avg['moving_avg_forecast'] = train['value'].rolling(6).mean().iloc[-1]
        plt.figure(figsize=(16, 8))
        plt.plot(train['value'], label='Train')
        plt.plot(test['value'], label='Test')
        plt.plot(y_hat_avg['moving_avg_forecast'], label='Moving Average Forecast')
        plt.legend(loc='best')
        plt.show()

print('d.指数平滑法')
        from statsmodels.tsa.api import SimpleExpSmoothing

y_hat_avg = test.copy()
        fit = SimpleExpSmoothing(np.asarray(train['value'])).fit(smoothing_level=0.6, optimized=False)
        y_hat_avg['SES'] = fit.forecast(len(test))
        plt.figure(figsize=(16, 8))
        plt.plot(train['value'], label='Train')
        plt.plot(test['value'], label='Test')
        plt.plot(y_hat_avg['SES'], label='SES')
        plt.legend(loc='best')
        plt.show()

Python数据分析-时间序列预测法相关推荐

  1. 怎么用MATLAB做周期性预测,时间序列预测时,数据具有周期性怎么办(用MATLAB做) , 什么是时间序列预测法?...

    3.3时间序列分析 3.3.1时间序列概述 1. 基本概念 1一般概念:系统中某一变量的观测值按时间顺序时间间隔相同排列成一个数值序列,展示研究对象在一定时期内的变动过程,从中寻找和分析事物的变化特征 ...

  2. python多元线性回归预测法,Python-Tensorflow2.3.0-多元线性回归预测(学习笔记)

    Python-Tensorflow2.3.0-多元线性回归预测(学习笔记) Python-Tensorflow2.3.0-多元线性回归预测(学习笔记) 编译器环境:win10-Anaconda3-py ...

  3. python时间序列分析航空旅人_用python做时间序列预测一:初识概念

    利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况.比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的. 什么是时间序列? 时间序列,是指同一个变量在连续且固定的时 ...

  4. 用python做时间序列预测一:初识概念

    用python做时间序列预测一:初识概念 利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况.比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的. 什么是时间序列? ...

  5. 时间序列的数据分析(六):指数平滑预测法

    之前已经完成了五篇关于时间序列的博客,还没有阅读过的读者请先阅读: 时间序列的数据分析(一):主要成分 时间序列的数据分析(二):数据趋势的计算 时间序列的数据分析(三):经典时间序列分解 时间序列的 ...

  6. python构建指数平滑预测模型_指数平滑预测法python实现

    说明:基于python的指数平滑预测平滑系数确定.计算.误差分析.结果输出与可视化. 指数平滑法 指数平滑法是生产预测中常用的一种方法.也用于中短期经济发展趋势预测,所有预测方法中,指数平滑是用得最多 ...

  7. Python数据分析案例11——灰色预测法预测时间序列数据

    本次案例来自2022华为杯第E题,第2小问.给定了2012.01-2022.03的土壤湿度的月度数据,需要预测2022.04-2023.12的土壤湿度的月度数据.典型的时间序列预测. 传统的时间序列预 ...

  8. python时间序列数据分析,Python数据分析之时间序列

    Python数据分析之时间序列 发布时间:2020-07-10 06:56:27 来源:51CTO 阅读:808 作者:up4ever 1. 时间序列类型 时间戳(timestramp) 即特定的时刻 ...

  9. Python 数据分析三剑客之 Pandas(九):时间序列

    CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...

最新文章

  1. 李飞飞谈AI医疗:为什么我要从监督医生洗手开始做起?
  2. 使用流程引擎整体解决方案
  3. 双机热备软件,Legato AAM,双机容错,集群软件,磁盘阵列
  4. Linux上安装dotnetcore2.0
  5. JSP和Servlet的六种中文乱码处理方法
  6. java循坏_Java的坏功能是什么
  7. 理解ConstraintLayout 对性能的好处
  8. HDU 2089 不要62(数位DP)
  9. 红黑树模拟软件_【程序员面试必备】红黑树详细图解
  10. springboot update数据_SpringBoot整合Mybatis+Druid+数据库(注解版)
  11. Linux学习私人笔记-Vim
  12. 2021年机修钳工(中级)及机修钳工(中级)复审模拟考试
  13. 6096. 咒语和药水的成功对数
  14. 实现一个简单的记事本APP
  15. python实现微信机器人 + 淘宝客自动领券(二)
  16. TTS数据制作过程分享
  17. This computer doesn’t have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory“!
  18. 刷题——Python篇(2)类型转换
  19. pandas将dataframe的所有数据列的名称转化为大写形式(all column labels in dataframe to uppercase)
  20. 全行业聚合支付平台接口_各类API聚合支付平台

热门文章

  1. 重装系统后mysql不用重新安装
  2. Xcode13 新建项目 Products 目录显示方法
  3. mysql order by 原理及优化详解
  4. 使用 spark sql extensions 实现 skew join
  5. 互信息(Mutual Information)介绍
  6. Eclipse 开发Hadoop2.7.1可能会遇到的问题
  7. Ivor Horton's Beginning Visual C++ 2008
  8. 这4个兼职平台实测靠谱,想做兼职的赶紧收藏起来看看吧
  9. ajax hack,Ajax Hacks-hack9 深入了解HTTP Respon_jquery
  10. 卡尔曼滤波最完整公式推导