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()
从分析结果来看,这次准备使用的用于跨期套利的近月合约和远月合约,严格意义上并不算协整,因为残差并不是正太分布的,也没有通过单位根检验。