0 SARIMAX模型时间序列分析步骤
1. 用pandas处理时序数据
2. 检验时序数据的平稳性
3. 将时序数据平稳化
4. 确定order 的 p.d.q值
5. 确定season_order的四个值
6. 应用SARIMAX模型对时序数据进行预测
其实SARIMAX比ARIMA模型就多了个season_order参数的确定,但也是这里最费时间的一个步骤
1 将数据转化成为时序数据
先一股脑导入一下工具包
import pandas as pd
import datetime
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
import seaborn as sns
import statsmodels.tsa.stattools as ts
import statsmodels.api as sm
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.stats.diagnostic import unitroot_adf
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
import itertools
import warnings
import numpy as np
from statsmodels.tsa.seasonal import seasonal_decompose
#读取数据
data = pd.read_csv('factor.csv')
data.index = pd.to_datetime(data['date'])
data.drop(['date'], axis=1, inplace=True)
data = data.result
data.head()
#数据大致情况展示
data.plot(figsize=(12,8))
plt.legend(bbox_to_anchor=(1.25, 0.5))
plt.title('result')
sns.despine()
plt.show()
2 序列平稳性检测
#数据平稳性检测 因为只有平稳数据才能做时间序列分析
def judge_stationarity(data_sanya_one):
dftest = ts.adfuller(data_sanya_one)
print(dftest)
dfoutput = pd.Series(dftest[0:4], index=['

本文介绍了如何使用Python中的SARIMAX模型进行季节性时间序列分析,包括数据预处理、平稳性检测、季节性分解、参数定阶以及模型拟合。关键步骤在于确定season_order参数的m值,例如月度数据m通常设为12,而周度数据可能设为52。通过对预测值和真实值的对比,评估模型效果。
最低0.47元/天 解锁文章
2669

被折叠的 条评论
为什么被折叠?



