掌握时间序列分析,从零基础到ARIMA高手
创作时间:
作者:
@小白创作中心
掌握时间序列分析,从零基础到ARIMA高手
引用
CSDN
等
9
来源
1.
https://blog.csdn.net/fenglingguitar/article/details/141927949
2.
https://blog.csdn.net/windowshht/article/details/137715108
3.
https://blog.csdn.net/qq_33375598/article/details/137740852
4.
https://cloud.baidu.com/article/3328834
5.
https://cloud.baidu.com/article/3328665
6.
https://blog.csdn.net/Morse_Chen/article/details/144793235
7.
https://blog.csdn.net/weixin_39753819/article/details/135863541
8.
https://cloud.baidu.com/article/3064036
9.
https://www.feishu.cn/content/timeseries-database-use-cases
时间序列分析是数据分析领域的重要工具,广泛应用于金融、经济、物联网等多个领域。其中,ARIMA模型作为经典的时间序列预测方法,因其强大的预测能力和广泛的适用性而备受青睐。本文将从零基础开始,逐步讲解时间序列分析的基本概念和ARIMA模型的具体应用,帮助读者快速掌握这一重要工具。
01
时间序列分析基础
什么是时间序列分析?
时间序列分析是一种统计方法,通过观察和预测数据随时间的变化趋势来揭示潜在规律。其核心思想是寻找系统的当前值与其过去的运行记录(观察数据)的关系,建立能够比较精确地反映时间序列中动态依存关系的数学模型,并借此对系统的未来行为进行预报。
应用场景
时间序列分析在多个领域都有广泛应用:
- 金融市场:股票价格预测、汇率预测
- 经济预测:GDP预测、失业率预测
- 物联网数据:传感器数据预测
- 库存管理:销售预测、库存优化
数据预处理
在进行时间序列分析之前,需要对数据进行预处理,主要包括:
- 平稳性检验:检查数据是否具有稳定的均值、方差等特性。常用的方法有ADF检验(Augmented Dickey-Fuller Test)。
- 白噪声检验:判断数据是否存在显著变化。白噪声序列无预测价值,需停止分析。
- 差分处理:对非平稳数据进行差分,使其达到平稳状态。
02
ARIMA模型详解
ARIMA模型(Autoregressive Integrated Moving Average model)是时间序列预测分析的重要工具,特别适用于具有趋势但无明显季节性的数据。其模型形式为ARIMA(p,d,q),其中:
- p:自回归阶数
- d:差分次数
- q:滑动平均阶数
模型建立步骤
- 数据预处理:确保数据平稳,必要时进行差分处理。
- 参数选择:
- 通过自相关函数(ACF)和偏自相关函数(PACF)图确定p和q的值
- 使用AIC(赤池信息量准则)或BIC(贝叶斯信息准则)帮助选择最优参数组合
- 模型训练:使用选定的参数建立ARIMA模型,并通过残差检验评估模型拟合效果。
- 模型预测:对未来数据进行预测,并计算预测区间。
03
实际案例分析
以某公司年度销售额数据为例,演示ARIMA模型的建立和预测过程。
数据准备
假设我们有一组年度销售额数据:
年份 | 销售额(万元) |
|---|---|
2010 | 120 |
2011 | 130 |
2012 | 145 |
2013 | 150 |
2014 | 160 |
2015 | 175 |
2016 | 180 |
2017 | 195 |
2018 | 205 |
2019 | 220 |
2020 | 230 |
2021 | 245 |
Python代码实现
import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.stattools import acf, pacf
from statsmodels.tsa.arima.model import ARIMA
import matplotlib.pyplot as plt
# 数据准备
data = {'Year': [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021],
'Sales': [120, 130, 145, 150, 160, 175, 180, 195, 205, 220, 230, 245]}
df = pd.DataFrame(data)
df.set_index('Year', inplace=True)
# 平稳性检验
result = adfuller(df['Sales'])
print('ADF Statistic: %f' % result[0])
print('p-value: %f' % result[1])
print('Critical Values:')
for key, value in result[4].items():
print('\t%s: %.3f' % (key, value))
# 差分处理
df['Sales_diff'] = df['Sales'].diff().dropna()
result_diff = adfuller(df['Sales_diff'].dropna())
print('ADF Statistic (after differencing): %f' % result_diff[0])
print('p-value (after differencing): %f' % result_diff[1])
# ACF和PACF图
lag_acf = acf(df['Sales_diff'].dropna(), nlags=10)
lag_pacf = pacf(df['Sales_diff'].dropna(), nlags=10, method='ols')
plt.subplot(121)
plt.plot(lag_acf)
plt.axhline(y=0, linestyle='--', color='gray')
plt.axhline(y=-1.96/np.sqrt(len(df['Sales_diff'].dropna())), linestyle='--', color='gray')
plt.axhline(y=1.96/np.sqrt(len(df['Sales_diff'].dropna())), linestyle='--', color='gray')
plt.title('Autocorrelation Function')
plt.subplot(122)
plt.plot(lag_pacf)
plt.axhline(y=0, linestyle='--', color='gray')
plt.axhline(y=-1.96/np.sqrt(len(df['Sales_diff'].dropna())), linestyle='--', color='gray')
plt.axhline(y=1.96/np.sqrt(len(df['Sales_diff'].dropna())), linestyle='--', color='gray')
plt.title('Partial Autocorrelation Function')
plt.tight_layout()
# 模型训练
model = ARIMA(df['Sales'], order=(1, 1, 1))
model_fit = model.fit()
# 模型预测
forecast = model_fit.forecast(steps=5)
print('Forecast for next 5 years:')
print(forecast)
结果分析
通过ADF检验发现原始数据非平稳,差分后数据达到平稳状态。根据ACF和PACF图选择合适的p和q值,最终建立ARIMA(1,1,1)模型。预测结果显示未来5年销售额将持续增长,具体数值如下:
年份 | 预测销售额(万元) |
|---|---|
2022 | 260.5 |
2023 | 276.3 |
2024 | 292.4 |
2025 | 308.8 |
2026 | 325.5 |
04
总结与展望
通过本文的学习,读者应该掌握了时间序列分析的基本概念和ARIMA模型的具体应用。ARIMA模型虽然强大,但也有其局限性:
- 要求数据具有稳定性,或通过差分达到稳定
- 本质上只能捕捉线性关系
- 参数选择较为复杂
未来可以进一步学习:
- 季节性ARIMA(SARIMA)模型,用于处理季节性数据
- 深度学习方法在时间序列预测中的应用
- 组合模型,将多种方法结合以提高预测精度
希望本文能为读者在时间序列分析领域提供一个良好的开端,激发进一步学习的兴趣。
热门推荐
2点15分!中国男足PK沙特男足,伊万拒绝2连败,天平最终倾向谁?
开学了,老师在课堂中如何更好的管理ADHD儿童
《伤寒论》祛风寒,清内热:桂枝二越婢一汤方 | 思维导图版
贷款买车全流程详解:从谈判到提车
李白《登金陵凤凰台》,总为浮云能蔽日,长安不见使人愁。
如何评估股票风险:掌握风险评估工具,制定风险管理计划
白居易《忆江南》原文及赏析
PI3K/AKT抑制剂闪耀ESMO-BC,一文解析全新进展
冬天怎么避免小鹅死亡,放在保温箱中可提供适宜的生活环境
寒冬养鹅降低风险需注意四点
华为Watch GT系列手表屏幕黑屏怎么办?三种实用解决方案
一口一个世界:啤酒文化的多彩魅力
啤酒小白的进阶之路
食品级ABS:特性、物性参数与注塑工艺详解
镜面材料主要有哪些种类?它们通常由什么材料制成?镜面的材质主要是哪些?
提升律师群众基础与社会形象:路径与策略
法律与社会:相互依存的复杂关系
猫爪草的特点与分类(探秘猫爪草的形态)
汽车门锁损坏的识别、检查、修复与预防维护方法指南
雄王节,越南重要的节日
5G发展进入"下半场":四大方向布局,这些公司值得关注
法院审判与执行的区別及各自职能
600多元预算,如何挑选性价比高的真玉石?
春日限定!中国13处绝美花海,总有一处让你心动
板绘绘画入门需要掌握的基本技能
肩颈疼痛不是小事!忽视它可能带来大问题
合欢花的最佳种植时间
全光谱灯有必要吗?从健康到环保的全方位解析
“从不同角度看问题”的本质及其认知意义
就业率100%!2025年十大超级就业风口,出现了