from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.stattools import adfuller
import pandas as pd
import numpy as np
import os
import statsmodels
import statsmodels.formula.api as sm
### 省略很多数据处理
# 对near和far进行协整检验
simple = sm.ols(formula = 'near ~ far',data = near_far_df).fit()
print(simple.summary())
plt.figure()
#ols.fit().model is a method to access to the residual.
simple.resid.plot.density()
plt.show()
print('Residual mean:', np.mean(simple.resid))
print('Residual variance:', np.var(simple.resid))
print("adf's P value :", adfuller(simple.resid)[1])
from statsmodels.graphics.gofplots import ProbPlot
qq_plot =ProbPlot(simple.resid)
qq_plot.qqplot(line="q")
plt.title("Q-Q 图")
plt.show()
从分析结果来看,这次准备使用的用于跨期套利的近月合约和远月合约,严格意义上并不算协整,因为残差并不是正太分布的,也没有通过单位根检验。