Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据导入与预处理-拓展-pandas时间数据处理03

数据导入与预处理-拓展-pandas时间数据处理03

作者头像
IT从业者张某某
发布于 2022-11-12 09:19:18
发布于 2022-11-12 09:19:18
1.3K00
代码可运行
举报
文章被收录于专栏:IT从业者张某某IT从业者张某某
运行总次数:0
代码可运行

数据导入与预处理-拓展-pandas时间数据处理

Pandas时序数据系列博客

数据导入与预处理-拓展-pandas时间数据处理01

数据导入与预处理-拓展-pandas时间数据处理02

数据导入与预处理-拓展-pandas时间数据处理03

备注:如果有帮助,欢迎点赞收藏评论一键三联哈~~

参考博客:

知乎作者:景略集智

微信公众号:优达学城

1. 时间序列数据

1. 1 时间序列概述

百科中关于时间序列的描述为:

时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。时间序列分析的主要目的是根据已有的历史数据对未来进行预测。经济数据中大多数以时间序列的形式给出。根据观察时间的不同,时间序列中的时间可以是年份、季度、月份或其他任何时间形式

时间序列的构成要素:

构成要素:长期趋势,季节变动,循环变动,不规则变动。 1)长期趋势(T)现象在较长时期内受某种根本性因素作用而形成的总的变动趋势。 2)季节变动(S)现象在一年内随着季节的变化而发生的有规律的周期性变动。 3)循环变动(C)现象以若干年为周期所呈现出的波浪起伏形态的有规律的变动。 4)不规则变动(I)是一种无规律可循的变动,包括严格的随机变动和不规则的突发性影响很大的变动两种类型。

金融市场中,时序数据十分常见,我们购买股票,虚拟货币,一定会获得收益吗?实际上我们没法保证一定会有很好的收益,但可以根据之前的股票/虚拟货币价格估算出近似价值。时序模型就是预测这些值的一种方式。

除此之外在很多重要的领域,比如预测太阳活动和海洋潮汐、预测某公司接下来一年的销售额,工业领域预测下个月的能源消耗等,都是根据之前每年、每月和每天的数据,预测接下来的值,这些都是可以用时间序列的应用。

2. 时序数据分析

本文使用案例为高铁服务商 JetRail 旗下高铁的乘客数量。数据下载地址

训练集为2012 年 8 月至 2014 年 8月的数据,需要用这些数据预测接下来 7 个月的乘客数量。

实现内容如下:

安装程序库(statsmodels) 方法1——先以朴素法开始 方法2——简单平均数 方法3——移动平均数 方法4——指数平滑法 方法5——霍尔特线性趋势预测 方法6——Holt-Winters季节性预测模型 方法7——自回归移动平均模型

1.2 数据集导入与处理

1. 查看数据

读取训练集数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
#Importing data
df = pd.read_csv('train.csv')
df

输出为:

如上面的输出语句所示,我们获得了 2012-2014 年两年每个小时的乘客数量,然后需要预测未来的乘客数量。

读取测试集数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df_test = pd.read_csv('Test.csv')
df_test

输出为:

查看训练集类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.info()

输出为:

可以看到空缺值,类型信息,

2. 数据处理

把Datetime一列转变为时间戳类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df['Timestamp'] = pd.to_datetime(df['Datetime'],format='%d-%m-%Y %H:%M') 
df

输出为:

3. 切分数据集

取部分数据作为数据集,前 14 个月( 2012 年 8 月- 2013 年 10 月)用作训练数据,后两个月(2013 年 11 月 - 2013 年 12 月)用作测试数据。

为了解释每种方法的不同之处,我以每天为单位构造和聚合了一个数据集。

从 2012 年 8 月- 2013 年 12 月的数据中构造一个数据集。

确定( 2012 年 8 月- 2013 年 10 月)范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df[df['Timestamp'] < "2013-10-31 23:59:59 "]

输出为:

一共0-10391共10392条数据,10392/24 = 433天

确定( 2013 年 11 月- 2013 年 12 月)范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df[(df['Timestamp'] > "2013-10-31 23:59:59 ") & (df['Timestamp'] < "2013-12-31 23:59:59 ")]

输出为:

一共10392-11855共1462条数据,1464/24 = 61天

切分训练集和测试集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
train = df[df['Timestamp'] < "2013-10-31 23:59:59 "]
print(train.iloc[10391,:])
test = df[(df['Timestamp'] > "2013-10-31 23:59:59 ") & (df['Timestamp'] < "2013-12-31 23:59:59 ")]
test

输出为:

训练集降采样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 把时间戳列 设置为索引 并按照天为单位进行降采样
train.index = train.Timestamp 
train = train.resample('D').mean() 
train

输出为:

测试集降采样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 把时间戳列 设置为索引 并按照天为单位进行降采样
test.index = test.Timestamp 
test = test.resample('D').mean() 
test

输出为:

4. 数据分析

数据可视化(训练数据和测试数据一起),从而得知在一段时间内数据是如何变化的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 可视化数据
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates
 
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
plt.rcParams["axes.unicode_minus"]=False # 显示负号

train['Count'].plot(figsize=(15,8), title= 'Daily Ridership', fontsize=14)
test['Count'].plot(figsize=(15,8), title= 'Daily Ridership', fontsize=14)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y')) # 设置坐标轴格式
plt.gca().xaxis.set_major_locator(mdates.MonthLocator())  # 设置坐标轴间隔
plt.gcf().autofmt_xdate()  # 自动旋转日期标记

plt.show()

输出为:

1.3 时间序列分析

1. 安装程序库(statsmodels)

安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 pip install statsmodels -i https://pypi.tuna.tsinghua.edu.cn/simple

测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 from statsmodels.tsa.api import ExponentialSmoothing 

不报错,即为安装正常

2. 方法1:先以朴素法开始

一般来说,短时间内的数据往往是平稳的,我们往往可以根据昨天的数据去预测预测第二天的值,即把明天的数据当成与今天是相同的。这种假设第一个预测点和上一个观察点相等的预测方法就叫朴素法。

Henceˆyt+1=yt

用朴素法预测:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dd= np.asarray(train.Count)
y_hat = test.copy()
y_hat['naive'] = dd[len(dd)-1]
plt.figure(figsize=(12,8))
plt.plot(train.index, train['Count'], label='Train')
plt.plot(test.index,test['Count'], label='Test')
plt.plot(y_hat.index,y_hat['naive'], label='Naive Forecast')
plt.legend(loc='best')
plt.title("Naive Forecast")
plt.show()
y_hat

输出为:

我们下面计算均方根误差,检查模型在测试数据集上的准确率。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.metrics import mean_squared_error
from math import sqrt
rms = sqrt(mean_squared_error(test.Count, y_hat.naive))
rms

输出为:

从均方根误差值以及上面的图表可以看出,朴素法并不适合变化很大的数据集,最适合稳定性很高的数据集。我们还可以用不同的方法优化结果。下面我们试试其它方法。

3. 方法2:简单平均法

将预期值等同于之前所有观测点的平均值的预测方法就叫简单平均法.

Henceˆyx+1=1xxi=1yi
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
y_hat_avg = test.copy()
y_hat_avg['avg_forecast'] = train['Count'].mean()
plt.figure(figsize=(12,8))
plt.plot(train['Count'], label='Train')
plt.plot(test['Count'], label='Test')
plt.plot(y_hat_avg['avg_forecast'], label='Average Forecast')
plt.legend(loc='best')
plt.show()
y_hat_avg

输出为:

计算均方根误差值,检查模型的准确率。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rms = sqrt(mean_squared_error(test['Count'], y_hat_avg['avg_forecast']))
rms

输出为:

4. 方法3——移动平均法

之前的简单平均法,使用所有先前数据的平均值,这有些不合理,如果基于某窗口期的平均值预测下一段的值,这就是移动平均法。

假设"滑动窗口"的大小值p,使用简单的移动平均模型,我们可以根据之前数值的固定有限数p的平均值预测某个时序中的下一个值。这样,对于所有的 i > p

ˆyi=1p(yi1+yi2+...+yip)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
y_hat_avg = test.copy()
y_hat_avg['moving_avg_forecast'] = train['Count'].rolling(60).mean().iloc[-1] # 窗口为60 求均值 最后一个 131.761111
plt.figure(figsize=(16,8))
plt.plot(train['Count'], label='Train')
plt.plot(test['Count'], label='Test')
plt.plot(y_hat_avg['moving_avg_forecast'], label='Moving Average Forecast')
plt.legend(loc='best')
plt.show()

输出为:

只选择过去两个月的数据。现在计算均方根误差值,检查模型的准确度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rms = sqrt(mean_squared_error(test['Count'], y_hat_avg['moving_avg_forecast']))
rms

输出为:

在移动平均法中,各个时间的权重是一致的,如果考虑到不同时间的观察值有着不同的权重,就叫做加权移动平均法。

加权移动平均法其实还是一种移动平均法,只是“滑动窗口期”内的值被赋予不同的权重,通常来讲,最近时间点的值发挥的作用更大了。

5. 方法4——简单指数平滑法

简单指数平滑法与加权移动平均法类似,但权重随着观测值从早期到晚期的变化呈指数级下降,最小的权重和最早的观测值相关:

ˆyT+1|T=αyT+α(1α)yT1+α(1α)2yT2+...

其中

0<α<1

是平滑参数。对时间点T+1的单步预测值是时序

y1,...yT

所有观察值的加权平均值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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))
plt.figure(figsize=(16,8))
plt.plot(train['Count'], label='Train')
plt.plot(test['Count'], label='Test')
plt.plot(y_hat_avg['SES'], label='SES')
plt.legend(loc='best')
plt.show()
y_hat_avg

输出为:

计算均方根误差

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rms = sqrt(mean_squared_error(test.Count, y_hat_avg.SES))
rms

输出为:

6. 方法5——霍尔特线性趋势法

以上几种方法在波动性较大的数据集上表现不够友好,如果未来趋势是逐渐上涨的,我们需要考虑这种趋势。

每个时序数据集可以分解为相应的几个部分:趋势,季节性和残差。任何呈现某种趋势的数据集都可以用霍尔特线性趋势法用于预测。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import statsmodels.api as sm

sm.tsa.seasonal_decompose(train.Count).plot()
result = sm.tsa.stattools.adfuller(train.Count)
plt.show()
result

输出为:

我们从图中可以看出,该数据集呈上升趋势。因此我们可以用霍尔特线性趋势法预测未来价格。

该算法包含三个方程:一个水平方程,一个趋势方程,一个方程将二者相加以得到预测值 ŷ :

上述方程中,水平方程显示它是观测值和样本内单步预测值的加权平均数,趋势方程显示它是根据 e(t)−e(t−1) 和之前的预测趋势 b(t−1) 在时间t处的预测趋势的加权平均值。

我们将这两个方程相加,得出一个预测函数。我们也可以将两者相乘而不是相加得到一个乘法预测方程。当趋势呈线性增加和下降时,我们用相加得到的方程;当趋势呈指数级增加或下降时,我们用相乘得到的方程。实践操作显示,用相乘得到的方程,预测结果会更稳定,但用相加得到的方程,更容易理解。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
y_hat_avg = test.copy()
 
fit1 = Holt(np.asarray(train['Count'])).fit(smoothing_level = 0.3,smoothing_trend = 0.1)
y_hat_avg['Holt_linear'] = fit1.forecast(len(test))
 
plt.figure(figsize=(16,8))
plt.plot(train['Count'], label='Train')
plt.plot(test['Count'], label='Test')
plt.plot(y_hat_avg['Holt_linear'], label='Holt_linear')
plt.legend(loc='best')
plt.show()
y_hat_avg

输出为:

均方根误差,检查模型的准确率:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rms = sqrt(mean_squared_error(test.Count, y_hat_avg.Holt_linear))
rms

输出为:

7. 方法6——Holt-Winters季节性预测模型

针对时间序列数据,如果数据实体具有季节性,那么该数据集就具有季节性。

前面讨论的5种模型在预测时并没有考虑到数据集的季节性,因此我们需要一种能考虑这种因素的方法。

应用到这种情况下的算法就叫做Holt-Winters季节性预测模型,它是一种三次指数平滑预测,其背后的理念就是除了水平和趋势外,还将指数平滑应用到季节分量上。

Holt-Winters季节性预测模型由预测函数和三次平滑函数——一个是水平函数ℓt,一个是趋势函数bt,一个是季节分量 st,以及平滑参数 α, β 和 γ。

水平函数为季节性调整的观测值和时间点t处非季节预测之间的加权平均值。趋势函数和霍尔特线性方法中的含义相同。季节函数为当前季节指数和去年同一季节的季节性指数之间的加权平均值。

在本算法,我们同样可以用相加和相乘的方法。当季节性变化大致相同时,优先选择相加方法,而当季节变化的幅度与各时间段的水平成正比时,优先选择相乘的方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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))
plt.figure(figsize=(16,8))
plt.plot( train['Count'], label='Train')
plt.plot(test['Count'], label='Test')
plt.plot(y_hat_avg['Holt_Winter'], label='Holt_Winter')
plt.legend(loc='best')
plt.show()
y_hat_avg

输出为:

均方根误差,看看模型的准确度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 我们现在计算一下均方根误差,看看模型的准确度。
rms = sqrt(mean_squared_error(test.Count, y_hat_avg.Holt_Winter))
rms

输出为:

看到趋势和季节性的预测准确度都很高。我们选择了 seasonal_period = 7作为每周重复的数据。也可以调整其它其它参数,我在搭建这个模型的时候用的是默认参数。你可以试着调整参数来优化模型。

8. 方法7——自回归移动平均模型

参考:石晓文

另一个场景的时序模型是自回归移动平均模型(ARIMA)。指数平滑模型都是基于数据中的趋势和季节性的描述,而自回归移动平均模型的目标是描述数据中彼此之间的关系。ARIMA的一个优化版就是季节性ARIMA。它像Holt-Winters季节性预测模型一样,也把数据集的季节性考虑在内。

ARIMA算法模型主体包括三大部分:AR,I以及MA模型。其中,每一个模型部分都拥有一个相关的模型参数—ARIMA(p,d,q)。算法的基本原理是将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。

差分法平稳数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
train['Count_diff_1'] = train['Count'].diff(1)
train['Count_diff_2'] = train['Count_diff_1'].diff(1)
fig = plt.figure(figsize=(6,12))
ax1 = fig.add_subplot(311)
ax1.plot(train['Count'])
ax2 = fig.add_subplot(312)
ax2.plot(train['Count_diff_1'])
ax3 = fig.add_subplot(313)
ax3.plot(train['Count_diff_2'])
ax1.set_title("原始")
ax2.set_title("1阶")
ax3.set_title("2阶")
plt.show()
train['Count_diff_2']

输出为:

在ARIMA(p,d,q)整体模型中,AR是自回归模型,对应的模型参数p为自回归项数;I为差分模型,对应的模型参数d为使之成为平稳时间序列所做的差分次数(阶数);MA为滑动平均模型,q为滑动平均项数。在实际进行算法模型的构建时,可以根据ACF自相关系数图决定q的取值,PACF偏自相关系数图决定p的取值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)
plt.figure(figsize=(16,8))
plt.plot( train['Count'], label='Train')
plt.plot(test['Count'], label='Test')
plt.plot(y_hat_avg['SARIMA'], label='SARIMA')
plt.legend(loc='best')
plt.show()
y_hat_avg

输出为:

均方根误差

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 计算一下均方根误差,看看模型的准确度。

rms = sqrt(mean_squared_error(test.Count, y_hat_avg.SARIMA))
rms

输出为:

我们可以看到使用季节性 ARIMA 的效果个 Holt-Winters 一样好。我们根据 ACF 和 PACF 图选择参数。如果你为 ARIMA 模型选择参数时遇到了困难,可以用 R 语言中的 auto.arima。

最后,我们将这几种模型的准确度比较一下:

Model

RMSE

朴素法

43.9

简单平均法

109.9

移动平均法

46.72

简单指数

43.35

霍尔特线性趋势

43.05

Holt-Winters季节预测

25.26

自回归移动平均ARIMA

26.05

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Holt-Winters季节性预测模型
算法:Holt-Winters季节性预测模型是一种三次指数平滑预测,除了水平和趋势外,还将指数平滑应用到季节分量上。
裴来凡
2022/05/29
1.9K0
Holt-Winters季节性预测模型
手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)
对于任何业务而言,基于时间进行分析都是至关重要的。库存量应该保持在多少?你希望商店的客流量是多少?多少人会乘坐飞机旅游?类似这样待解决的问题都是重要的时间序列问题。
数据派THU
2018/07/30
4.7K0
手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)
最全总结【时间序列】时间序列的预处理和特征工程
时间序列(Time Series)是按时间顺序排列的一组数据点,通常用于描述和分析随时间变化的现象。时间序列数据在许多领域中都有广泛应用,如金融市场、气象学、经济学、医学等。
机器学习司猫白
2025/01/21
1.4K0
最全总结【时间序列】时间序列的预处理和特征工程
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测|附代码数据
根据频率,时间序列可以是每年(例如:年度预算),每季度(例如:支出),每周(例如:销售数量),每天(例如天气),每小时(例如:股票价格),分钟(例如:来电提示中的呼入电话),甚至是几秒钟(例如:网络流量)。
拓端
2023/07/17
1.1K0
用R语言做时间序列分析(附数据集和源码)
时间序列(time series)是一系列有序的数据。通常是等时间间隔的采样数据。如果不是等间隔,则一般会标注每个数据点的时间刻度。 下面以time series 普遍使用的数据 airline p
机器学习AI算法工程
2018/03/12
3.7K0
用R语言做时间序列分析(附数据集和源码)
时间序列预测全攻略(附带Python代码)
原文作者:AARSHAY JAIN 36大数据翻译,http://www.36dsj.com/archives/43811 时间序列(简称TS)被认为是分析领域比较少人知道的技能。(我也是几天前才知道它)。但是你一定知道最近的小型编程马拉松就是基于时间序列发展起来的,我参加了这项活动去学习了解决时间序列问题的基本步骤,在这儿我要分享给大家。这绝对能帮助你在编程马拉松中获得一个合适的模型。 文章之前,我极力推荐大家阅读《基于R语言的时间序列建模完整教程》A Complete Tutorial on Ti
机器学习AI算法工程
2018/03/13
15.1K0
时间序列预测全攻略(附带Python代码)
基于趋势和季节性的时间序列预测
时间序列预测是基于时间数据进行预测的任务。它包括建立模型来进行观测,并在诸如天气、工程、经济、金融或商业预测等应用中推动未来的决策。
deephub
2022/11/11
1.3K0
基于趋势和季节性的时间序列预测
通过 Python 代码实现时间序列数据的统计学预测模型
Autoregressive Integrated Moving Average model (ARIMA),差分整合移动平均自回归模型。ARIMA(p,d,q)主要包含三项:
deephub
2020/05/09
2.2K0
通过 Python 代码实现时间序列数据的统计学预测模型
用python做时间序列预测十:时间序列实践-航司乘客数预测
陆陆续续写了10篇时间序列相关的文章了,本系列主要是应用为主,包括初识概念、时间序列数据可视化、时间序列分解、平稳/非平稳时间序列、时间序列缺失值处理、相关函数图/偏相关函数图/滞后图、时间序列复杂度量化、Granger causality test(格兰杰因果检验)、ARIMA模型简介、时间序列实践-航司乘客数预测。 暂时先记录到这里,后续应该还会补充一些,比如基于深度学习的时间序列预测等。
AI粉嫩特工队
2020/06/16
4.1K0
数学建模--时间序列分析方法
在数学建模中,时间序列分析是一种重要的方法,用于研究和预测随时间变化的数据序列。这些数据可以是股票价格、气象观测、销售数据、人口统计等。时间序列分析的基本步骤包括处理缺失值、生成时间变量并绘制时间序列图,观察是否存在季节性波动,并根据图形大致判断数据的趋势。
用户11315985
2024/10/16
4470
数学建模--时间序列分析方法
4大类11种常见的时间序列预测方法总结和代码示例
本篇文章将总结时间序列预测方法,并将所有方法分类介绍并提供相应的python代码示例,以下是本文将要介绍的方法列表:
deephub
2022/03/12
4K0
4大类11种常见的时间序列预测方法总结和代码示例
使用R语言进行时间序列(arima,指数平滑)分析
您要分析时间序列数据的第一件事就是将其读入R,并绘制时间序列。您可以使用scan()函数将数据读入R,该函数假定连续时间点的数据位于包含一列的简单文本文件中。
拓端
2020/08/04
5.4K0
使用R语言进行时间序列(arima,指数平滑)分析
Tushare test
查看版本 import tushare print(tushare.__version__) 1.2.12 初步的调用方法为: import tushare as ts ts.get_hist_da
hankleo
2020/09/16
6690
Tushare test
霍尔特-温特斯的时间序列预测
我们讨论一组非常知名的预测模型,指数平滑。指数平滑的基本原则是将更多的权重放在最近的观测值上,而在历史观测值上放置更少的权重,以用来预测时间序列。
磐创AI
2024/04/03
7950
霍尔特-温特斯的时间序列预测
用python做时间序列预测九:ARIMA模型简介
c是常数项,εt是随机误差项。 对于一个AR(1)模型而言: 当 ϕ1=0 时,yt 相当于白噪声; 当 ϕ1=1 并且 c=0 时,yt 相当于随机游走模型; 当 ϕ1=1 并且 c≠0 时,yt 相当于带漂移的随机游走模型; 当 ϕ1<0 时,yt 倾向于在正负值之间上下浮动。
AI粉嫩特工队
2020/06/17
32.4K1
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测|附代码数据
根据频率,时间序列可以是每年(例如:年度预算),每季度(例如:支出),每周(例如:销售数量),每天(例如天气),每小时(例如:股票价格),分钟(例如:来电提示中的呼入电话),甚至是几秒钟(例如:网络流量)。
拓端
2023/02/20
2K0
数据清洗与可视化:使用Pandas和Matplotlib的完整实战指南
在数据科学领域,数据清洗和可视化是构建数据驱动解决方案的重要步骤。本文将详细介绍如何使用Pandas进行数据清洗,并结合Matplotlib进行可视化。通过实际代码示例,我们将处理一个包含缺失值、不一致格式和噪声数据的示例数据集,最终将其转换为可视化友好的形式。
一键难忘
2024/10/15
5870
GPT4做数据分析时间序列预测之八相当棒2023.6.1
1、用了多种方法预测未来6个月的销售额,并计算了算法的标准差、平均值、与1绝对值求和等验证指标。
用户7138673
2023/08/16
4750
GPT4做数据分析时间序列预测之八相当棒2023.6.1
打开我的收藏夹 -- Python时间序列分析篇
这两天,又接收到了不少新的讯息。我是越来越佩服“梦想橡皮檫”,檫哥了(打开周榜/总榜很好找,前排),他居然能用几年的时间来打磨一个系列。别说收39块,就是原价99我也买了,不为啥,就凭人家打磨了三年的毅力,我服!!!
看、未来
2021/09/18
8380
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
使用ARIMA模型,您可以使用序列过去的值预测时间序列。在本文中,我们从头开始构建了一个最佳ARIMA模型,并将其扩展到Seasonal ARIMA(SARIMA)和SARIMAX模型。
拓端
2020/08/07
9.4K0
推荐阅读
相关推荐
Holt-Winters季节性预测模型
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档