掌握时间序列分析,从零基础到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)模型,用于处理季节性数据
- 深度学习方法在时间序列预测中的应用
- 组合模型,将多种方法结合以提高预测精度
希望本文能为读者在时间序列分析领域提供一个良好的开端,激发进一步学习的兴趣。
热门推荐
父母强迫孩子讲礼貌可能产生反效果,培养感恩心态需掌握这关键
《钝感力》:智慧生活的哲学指南
肠息肉莫担忧,贵医附院专家有招
中国GDP及其影响因素的多元线性回归分析
婚后房贷如何扣除?离婚后楼房如何要回?一文详解婚姻中的房产法律问题
许世友是怎么从一个普通农民变为一个战功赫赫的开国上将的?
杭州科技职业技术学院马克思主义学院开展长三角地区乡村优秀传统文化调研
2024年成都都市圈GDP发布
八字十神详解:七杀(偏官)的含义与影响
不同五行对应的七杀有什么区别?
睡觉时脚部不自觉交叉?可能是这些原因导致的
隐适美跟时代天使的区别是什么?哪个更好?
中北大学就业情况分析:张雪峰点评与数据解读
数据分析中的MTD:本月到目前为止的数据分析
短视频策划如何利用特效增强效果?
唐朝宦官制度的发展与危害
孩子发烧是否需要立即就医?支原体肺炎何时需要做纤维支气管镜检查?| 科普时间
起名外格怎么算:数理起名外格计算方法详解
如何在熊市中进行有效的股票筛选?这种筛选方法存在哪些挑战?
芯片制造的新纪元:纳米技术的应用
2024,直播界已经卷到认不出了
晨起不注意?6个小习惯正悄悄“毁掉”你的肝脏
一招永不晕车的方法是真的吗
请行政诉讼律师需要多少钱
中文大模型基准评测2024年8月报告分析
磷酸铁锂价格反弹:市场需求增长与成本压力共推行业复苏
途观L后备箱门两侧的胶头有何作用?
文淇:天才少女的茧,正被生活化去
武人干政、陆海军路线之争,分析二战前夕日本制度内伤的成因
《照明商店》:穿梭生死的悬疑与温情之作