import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import adfuller
# Создаем dataset с данными о продажах
data = {'Дата': ['2023-01-01', '2023-02-01', '2023-03-01', '2023-04-01', '2023-05-01'],
'Продажи': [1000, 1200, 1300, 1100, 1400]}
df = pd.DataFrame(data)
# Преобразуем столбец 'Дата' в формат даты
df['Дата'] = pd.to_datetime(df['Дата'])
# Построим график продаж
plt.plot(df['Дата'], df['Продажи'])
plt.title('Продажи в магазине МВидео')
plt.xlabel('Дата')
plt.ylabel('Продажи')
plt.show()
# Проведем тест Дики-Фуллера на стационарность
result = adfuller(df['Продажи'])
print('ADF Statistic: %f' % result[0])
print('p-value: %f' % result[1])
print('Critical Values:')
for key, value in result[4].items():
print('\t%s: %.3f' % (key, value))
Chiqish Dikki-Fuller testi statistikasi va p-qiymati bo'ladi. Agar p-qiymati ahamiyatlilik darajasidan past bo'lsa (odatda 0,05 ), unda biz ketma-ketlik statsionar emasligi haqidagi nol gipotezani rad etishimiz va uni statsionar deb hisoblashimiz mumkin.
2. Statsionarlikka erishish uchun qatorni o'zgartirish:
Agar boshlang'ich qator statsionar bo'lmasa, uni o'zgartirish mumkin. Masalan, statsionar qoldiqni olish uchun trend va mavsumiy komponentlarni ayirish mumkin.
# Преобразование для удаления тренда
df['Продажи_без_тренда'] = df['Продажи'] - df['Продажи'].rolling(window=2).mean()
# Преобразование для удаления сезонности (в данном случае просто разница между текущим и предыдущим значением)
df['Продажи_стационарные'] = df['Продажи_без_тренда'].diff()
# Удалим первые строки с пропущенными значениями
df.dropna(inplace=True)
# Построим графики
plt.plot(df['Дата'], df['Продажи_без_тренда'], label='Без тренда')
plt.plot(df['Дата'], df['Продажи_стационарные'], label='Стационарные')
plt.legend()
plt.title('Преобразованные продажи')
plt.xlabel('Дата')
plt.ylabel('Продажи')
plt.show()
Endi bizda tahlil qilish va modellashtirish mumkin bo'lgan statsionar seriya mavjud Продажи_стационарные.
Vaqt seriyasining komponentlari
Vaqt seriyalari odatda uchta asosiy komponentdan iborat: trend, mavsumiylik va shovqin (qoldiq). Ushbu komponentlarni tushunish bizga seriyaning tuzilishini yaxshiroq tushunishga va tegishli tahlil usullarini tanlashga yordam beradi.
|