一、模型介绍
ARIMA模型(自回归移动平均模型),是统计模型中最常见的一种用来进行时 间序列预测的模型。
算法步骤
Step1:根据时间序列的散点图、自相关函数和偏自相关函数图以ADF单位根 检验其方差、趋势及其季节性变化规律,对序列的平稳性进行识别。
Step2:对非平稳序列进行平稳化处理。
Step3:根据时间序列模型的识别规则,建立相应的模型。
Step4:进行参数估计,检验是否具有统计意义。进行假设检验,诊断残差 序列是否为白噪声。
Step5:利用已通过检验的模型进行预测分析。
模型优点
1) 模型十分简单,只需要内生变量而不需要借助其他外生变量。 2) 在证券、股票市场的上证指数、开盘价、收益率方面的定性分析方面得 到大量的应用。
模型缺点
1)要求时序数据是稳定的,或者是通过差分化后是稳定的。
2)本质上只能捕捉线性关系,而不能捕捉非线性关系。
二、数据来源
本文的数据来源于某股市的交易数据,其中包含字段分别为股票日期、开盘价、最高价、最低价、收盘价。
读入数据
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
import scipy as stats
import statsmodels.api as sm
from scipy import stats
from statsmodels.tsa.arima_model import ARIMA
df = pd.read_csv('C:\\Users\\asus\\Desktop\\zqb\\data2.csv', parse_dates=['时间'], index_col='时间',encoding='gbk') #读取数据
df.index = pd.to_datetime(df.index) #进行索引
ts=df['收盘'] #时间序列的变量为"open",并赋值给"ts"
df.head() #读出open的前5个数据
前五行数据:
三、平稳性检验
#平稳性检验
plt.rcParams['font.sans-serif'] = ['simhei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
ts.plot()<