def test_no_change_lags_trend(self): adf = ADF(self.inflation) lags = adf.lags with pytest.warns(FutureWarning, match="Mutating unit root"): adf.lags = lags trend = adf.trend with pytest.warns(FutureWarning, match="Mutating unit root"): adf.trend = trend ml = adf.max_lags with pytest.warns(FutureWarning, match="Mutating unit root"): adf.max_lags = ml
def ADF_test(self, df_ts, lags=None): if lags == 'None': try: adf = ADF(df_ts) except: adf = ADF(df_ts.dropna()) else: try: adf = ADF(df_ts) except: adf = ADF(df_ts.dropna()) adf.lags = lags print(adf.summary().as_text()) return adf
def ADF_test(df_ts, lags=None): """ ADF from arch formula: xt-xt-1 ~ b0 + (b1-1)*xt-1 + e test if b1-1 == 0 ~ DF statistics :param df_ts: :param lags: :return: """ if lags == 'None': try: adf = ADF(df_ts) except: adf = ADF(df_ts.dropna()) else: try: adf = ADF(df_ts) except: adf = ADF(df_ts.dropna()) adf.lags = lags print(adf.summary().as_text()) return adf
def test_negative_lag(self): adf = ADF(self.inflation) with pytest.raises(ValueError): adf.lags = -1
from statsmodels.tsa.arima_model import ARMA from sklearn.metrics import mean_squared_error as mse from sklearn.metrics import r2_score as r2 from arch.unitroot import ADF def parser(x): return datetime.strptime(x,'%d/%m/%Y') data = pd.read_csv('Bitcoin-Train.csv',index_col=0,parse_dates= [0],date_parser = parser) test_data = pd.read_csv('Bitcoin-Test.csv',index_col=0,parse_dates = [0],date_parser = parser) # Augmented Dickey Fuller Test for Stationarity adf_test = ADF(data,regression = 'c') adf_test.lags = 2 adf.trend = 'c' print(adf_test.summary().as_text()) plt.plot(data) # ACF and PACF of Raw data plot_acf(data) plot_pacf(data) ### Stationarity Conversion ### data_diff = data.diff(periods = 1) data_diff = data_diff[1:] ### ACF and PACF for differenced Time Series ###