import pandas as pd import matplotlib.pyplot as plt import numpy as np from statsmodels.tsa.stattools import adfuller, kpss # Пример временного ряда np.random.seed(42) n = 100 time = pd.date_range(start='2020-01-01', periods=n, freq='D') stationary_ts = np.random.normal(loc=0, scale=1, size=n) trend_ts = np.linspace(0, 10, n) + stationary_ts plt.figure(figsize=(12, 6)) plt.plot(time, stationary_ts, label='Стационарный ряд') plt.plot(time, trend_ts, label='Нестационарный ряд с трендом') plt.legend() plt.title('Визуальная проверка стационарности') plt.show() def adf_test(timeseries): print("Результаты теста Дики-Фуллера:") dftest = adfuller(timeseries, autolag='AIC') dfoutput = pd.Series(dftest[0:4], index=['Тестовая статистика', 'p-value', 'Количество лагов', 'Количество наблюдений']) for key, value in dftest[4].items(): dfoutput[f'Критическое значение ({key})'] = value print(dfoutput) if dftest[1] <= 0.05: print("Вывод: ряд стационарный (отвергаем H0)") else: print("Вывод: ряд нестационарный (не отвергаем H0)") adf_test(stationary_ts) print("\n") adf_test(trend_ts)