原始数据形式(部分)
DATE | CLOSE/LAST |
---|---|
2012/1/23 | 14.61 |
2012/1/24 | 14.94 |
2012/1/25 | 14.85 |
2012/1/26 | 14.71 |
2012/1/27 | 14.91 |
Pandas
数据导入与设置
import matplotlib
matplotlib.use('Qt5Agg')
import pandas as pd
import datetime
import matplotlib.pylab as plt
import seaborn as sns
from matplotlib.pylab import style
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
style.use('ggplot')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
stockFile = 'nvidia.csv'
#将索引index设置为时间,parse_dates对日期格式处理为标准格式。
stock = pd.read_csv(stockFile, index_col=0, parse_dates=[0])
原始数据时序图生成
#以周一为索引,按周取平均值进行重采样
stock_week = stock['Close'].resample('W-MON').mean()
stock_train = stock_week['2012':'2021']
stock_train.plot(figsize=(15,9))
plt.title("Stock Close")
sns.despine()
自相关系数图
acf = plot_acf(stock_train, lags=47)
plt.title("ACF")
acf.show()
偏相关系数图
pacf = plot_pacf(stock_train, lags=47)
plt.title("PACF")
pacf.show()
一阶差分图
stock_diff = stock_train.diff()
stock_diff = stock_diff.dropna()
plt.figure()
plt.plot(stock_diff)
plt.title('First Order Difference')
plt.show()
Fin.