时间序列的7种预测模型

article/2025/10/5 20:21:06

背景

时间序列问题比较常见,比如股市,工业生产指标等。

导入必要的Python包:

from statsmodels.tsa.api import ExponentialSmoothing, \
SimpleExpSmoothing, Holtimport statsmodels.api as sm

1. 朴素估计

y ^ t + 1 = y t \hat{y}_{\mathrm{t}+1}=\mathrm{y}_{\mathrm{t}} y^t+1=yt

使用最后一个时间点的值估测后面一段时间段的值。

dd= np.asarray(train.Count)
y_hat = test.copy()
y_hat['naive'] = dd[len(dd)-1]

在这里插入图片描述

2. 简单平均

把历史时刻变量所有值的平均值作为预测值:
在这里插入图片描述

y_hat_avg = test.copy()
y_hat_avg['avg_forecast'] = train['Count'].mean()

在这里插入图片描述

4. 滑动窗平均

使用之前一定大小时间段的平均值作为这个时间点的值。
在这里插入图片描述

或者使用加权的滑动窗平均:

加权的权重可以根据时间来设定,比如越是近的时刻的权重越大。

在这里插入图片描述

y_hat_avg = test.copy()
y_hat_avg['moving_avg_forecast'] = train['Count'].rolling(60).mean().iloc[-1]

在这里插入图片描述

5. 简单指数平滑

当前时刻的值由历史时刻的值确定,但是根据时刻进行了指数衰减。

在这里插入图片描述
where 0≤ α ≤1 是平滑参数.

如果时间序列很长,可以看作:
在这里插入图片描述

from statsmodels.tsa.api import ExponentialSmoothing, \
SimpleExpSmoothing, Holt
y_hat_avg = test.copy()
fit2 = SimpleExpSmoothing(np.asarray(train['Count'])).fit(
smoothing_level=0.6,optimized=False)
y_hat_avg['SES'] = fit2.forecast(len(test))

5 Holt’s线性趋势方法

在这里插入图片描述

主要考虑趋势。

import statsmodels.api as sm
sm.tsa.seasonal_decompose(train.Count).plot()
result = sm.tsa.stattools.adfuller(train.Count)

7 Holt-winters 方法

在这里插入图片描述

这种思想比较简单有效,假设数据服从两点,

1.数据是呈递增、递减趋势的;
2.数据服从一个周期变化。

然后,对残差,再进行其他方式的拟合,比如三次样条曲线。

y_hat_avg = test.copy()
fit1 = ExponentialSmoothing(np.asarray(train['Count']) ,
seasonal_periods=7 ,trend='add', seasonal='add',).fit()
y_hat_avg['Holt_Winter'] = fit1.forecast(len(test))

8 Arima方法

ARIMA模型(Autoregressive Integrated Moving Average model)整合移动平均自回归模型。

ARIMA(p,d,q)模型:

在这里插入图片描述

ARIMA(p, d, q) 由三个部分组成:

  • AR§:AR是autoregressive的缩写,表示自回归模型,含义是当前时间点的值等于过去若干个时间点的值的回归——因为不依赖于别的解释变量,只依赖于自己过去的历史值,故称为自回归;如果依赖过去最近的p个历史值,称阶数为p,记为AR(p)模型。
  • I(d):I是integrated的缩写,含义是模型对时间序列进行了差分;因为时间序列分析要求平稳性,不平稳的序列需要通过一定手段转化为平稳序列,一般采用的手段是差分;d表示差分的阶数,t时刻的值减去t-1时刻的值,得到新的时间序列称为1阶差分序列;1阶差分序列的1阶差分序列称为2阶差分序列,以此类推;另外,还有一种特殊的差分是季节性差分S,即一些时间序列反应出一定的周期T,让t时刻的值减去t-T时刻的值得到季节性差分序列。
  • MA(q):MA是moving average的缩写,表示移动平均模型,含义是当前时间点的值等于过去若干个时间点的预测误差的回归;预测误差=模型预测值-真实值;如果序列依赖过去最近的q个历史预测误差值,称阶数为q,记为MA(q)模型。
y_hat_avg = test.copy()
fit1 = sm.tsa.statespace.SARIMAX(train.Count, order=(2, 1, 
4),seasonal_order=(0,1,1,7)).fit()
y_hat_avg['SARIMA'] = fit1.predict(start="2013-11-1", 
end="2013-12-31", dynamic=True)

9. PROPHET 方法

Facebook提出的一种方法,与Holt-winters类似,主要想法是"
时间序列的分解(Decomposition of Time Series),它把时间序列 分成几个部分,分别是季节项 ,趋势项 ,剩余项,与Holt-winters方法类似 。

fbprophet的安装依赖Pystan.


最近开通了个公众号,主要分享python原理与应用,推荐系统,风控等算法相关的内容,感兴趣的伙伴可以关注下。
在这里插入图片描述
公众号相关的学习资料会上传到QQ群596506387,欢迎关注。


reference:

  1. analytics : Time-series forecast;
  2. 知乎 arima详解;
  3. Forecasting at Scale Facebook;
  4. Wiki Arima;
  5. ARIMA模型详解;
  6. Fbprophet 使用官网;

http://chatgpt.dhexx.cn/article/u36CqfuZ.shtml

相关文章

算法模型---时间序列模型

文章来源 时间序列 时间序列是时间间隔不变的情况下收集的不同时间点数据集合,这些集合被分析用来了解长期发展趋势及为了预测未来。 时间序列与常见的回归问题的不同点在于: 1、时间序列是跟时间有关的;而线性回归模型的假设:观察结果是独立的在这种情…

ADF单位根检验三种形式_[STATA] 时间序列模型 ARIMA检验

___ ____ ____ ____ ____ (R) /__ / ____/ / ____/___/ / /___/ / /___/ 13.1 Statistics/Data Analysis 此次系列文章的主题是通过Stata软件来分析时间序列的平稳和非平稳关系,以及如何通过Stata软件来进行不同时间序列模型的预测性分析。…

机器学习——时间序列模型

文章目录 1. 基本概念1.1 自相关函数ACF(autocorrelation function)1.2 偏自相关函数PACF(partial autocorrelation function) 2. 常见模型2.1 自回归模型(AR)2.2 移动平均模型(MA)2…

时间序列模型算法 - ARIMA (一)

时间序列模型 1.时间序列模型概述1.1 时间序列的不同分类1.2 确定性时间序列分析方法概述1.3 三种时间序列模型 2.指标平滑ES2.1 一次指数平滑法 3.ACF与PACF4.AR5.MA6.ARMA7.ARIMA7.1 差分 8. ARIMA实践8.1 读取数据8.2 画图,观察数据是否非平稳8.3 差分&#xff0…

Office 2016 定制安装工具 v1.0 | Office 2016 自定义安装组件

软件简介 以往Office的安装包都采用的是MSI安装器,允许用户在安装时选择安装的组件,但是微软发布的Office2016安装包只提供了C2R(ClickToRun)方式,因此默认情况下用户无法选择安装组件,默认会安装所有。大…

office2016激活后还显示激活页面的解决办法

win10系统的office16通过Office激活工具激活之后,但是打开之后还会出现提示“让我们开始吧”的激活的页面, 1.office2016激活后还显示激活页面的解决办法 以后激活之后,每次试用Word或者Excel的时候,都会出现上图的激活提示页面…

运维 office2016自定义安装

office2016自定义安装组件简明教程 引言 以往Office的安装包都采用的是MSI安装器,允许用户在安装时选择安装的组件, 但是微软发布的Office 2016安装包只提供了C2R(ClickToRun)方式,因此默认情况下用户无法选择安装组…

安装Office的一些工具

1.可以下载各个版本的office:https://msdn.itellyou.cn/ 这个站点经常装系统的朋友应该都知道,一个老站了。 2.部署工具Office Tool Plus:https://otp.landian.vip/zh-cn/ 这个工具挺强大的,可以下载,可以部署&…

office2016 使用KMS破解无法连接服务器

最后发现是wmi服务异常。 修复完成后就正常 注册了

使用office tool plus清除office激活状态

如何清除office激活状态 大多数问题直接更改许可证就行,只有更改许可证无反应才需要使用,本文只是使软件变成未激活,但是激活仍需你已购买许可证 1下载office tool plus 2解压下载好的压缩包 3运行office too lplus.exe 4关闭所有office软件…

OFFICE激活报错0X80080005

点击工具箱->修复Office无法正常激活->修复,看到修复成功,再用Office Tool Plus激活就可以了

Office2016软件安装教程

关注公众号,免费获取资料 ​ 解压压缩文件 点击office 2013 专业增强版 64位文件夹(根据自身系统选择位数),右击setup - >以管理员的身份运行 3.勾选接收,继续 4.选择自定义安装, 5.点击浏览,选在office 安装位置&…

office2016专业增强版

链接: https://pan.baidu.com/s/1XBEwwkdwhfSDVpIrBm0cFg 密码: nkv2 Microsoft office 2016官方版是针对Windows 10环境从零全新开发的通用应用(Universal App)。office2016正式版中的Word将会增加“Insights for Office”、“Read Mode”等新功能,powerpoint增加了“Prese…

office2016 + visio2016

在电脑已经安装好了office20016增强版后,如果安装visio2016软件来画图,会弹出了如下提示框: cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso和cn_visio_professional_2016_x86_x64_dvd_6970929.iso虽然镜像名称不同,但…

安装office2016专业增强版

安利2个工具 1.Office 2013-2019 C2R Install Main Window Install Office 为安装,这里无需提前下好镜像文件或安装包但要保持有网的状态,如果显示有别的版本则使用强力卸载,卸载干净之后再安装。右边界面为自定义安装选项,选择版…

激活office2016遇:The Software Licensing Service reported that the product SKU is not found.

今天把办公电脑系统重装了,之前的已经用了3年多了,win10还是不错了!!哈哈 打开巨硬的下载地址:https://www.microsoft.com/zh-cn/software-download/windows10 上面的立即更新,可以更新当前win10系统到最…

windows安装office2016

注意 多个不同版本的Microsoft Office不能共存在一个Windows系统中。 电脑上安装的可能有买电脑时候安装的office,是正版的office。 有可能安装的就是office2016 如果安装office时候提示 需要先卸载电脑上其他版本的office, 微软卸载教程&工具 …

office 2016下载安装

office 2016 下载安装 好几天啦我的office2010一直提示我激活(可能是之前网上找的激活码不管用啦),对于强迫症的我来说实在受不了,所以就索性卸载2010. 下面是获取office2016以及安装步骤 1. 步骤1 : 百度:mdsn 点击第一个:在应用程序中获取你需要的…

office2016显示已经激活,但每次打开都跳出激活页面

问题描述: Office反复提示在新PC上激活 问题原因: 这种情况是因为在新PC上安装Office Standard或Office Professional Plus的批量许可版本时,在安装Office的批量许可版本之前未在新PC上卸载预装版本的Office。 解决方法: 要停止…

KMS工具激活office2016报错0x80080005的解决记录

参考博客记录 | KMS工具激活Office报错 Error Code: 0x80080005的方法,亲测有效。不过为了不出错我把要删除的注册表在删除前备份了一下。