学习的过程也是敲代码的过程,方向搞错了,搞数据分析,还得是notebook靠谱,我是上手直接在pycharm上撸的,越搞越发现得回头重新检测,重新调参,悔不当初。。。(不过好的一点是可以更加直观,及更加清晰的把思路捋出来)
学习参考一些书籍,结合网上各种乱七八糟的资料,B站各种七上八下的视频(绝大部分都是转的一个“奶声”博主的视频,但也发现里面很多有错误的地方,讲的不明不白和漏了的地方,博主可能也没完全整明白)。
ARIMA看似就简单pdq,主要是pq,d是属于比较简单的,pq的选择有很多的方法(AIC、BIC、遍历),选出来最优结果不一定适合你的模型,因为模型建好后还要对其进行评判,包括白噪声检测,残差检验。。。。不合格就得又回去找pq了。
下面直接上代码,过程还是比较清晰的(有需要的地方基本都有注释,有些阶段是需要反复使用的),欢迎课下交流!!!!
import math
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa import stattools
from statsmodels.graphics.tsaplots import *
from statsmodels.tsa.stattools import adfuller #平稳性ADF检测函数
from statsmodels.tsa.arima.model import ARIMA
import warnings #忽略警告,设置周期的话影响模型
warnings.filterwarnings("ignore", message="A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.")
# 1.数据读取
df = pd.read_csv('D:\\history_A_000001_k_2010-01-01_2023-06-01_data.csv', index_col='date')
# 2.查看数据基本情况
def base(df):
print(df.head())
print(df.tail())
print(df.info())
print(df.describe())
print(df.columns)
print(df.index)
# base(df)
df.index = pd.to_datetime(df.index) # 将索引type='object转化为datetime格式dtype='datetime64[ns]'
# 3.数据筛选
""""