Skip to main content

Xem xét tính chu kỳ mùa vụ của biến mục tiêu 'close'

· 2 min read

Trong phân tích chuỗi thời gian, việc kiểm tra thành phần xu hướng, chu kỳ và phần dư giúp hiểu rõ hơn về biến động của dữ liệu theo thời gian. Bài viết này hướng dẫn cách sử dụng phương pháp phân rã chuỗi thời gian (Seasonal Decomposition) để kiểm tra tính chu kỳ của biến 'close'.

1. Nhập các thư viện cần thiết

import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose

2. Đọc và xử lý dữ liệu

# Load dữ liệu
data = pd.read_excel('ibm_data.xlsx')

# Chuyển đổi cột datetime về đúng định dạng
data['datetime'] = pd.to_datetime(data['datetime'])
data.set_index('datetime', inplace=True)

# Lấy biến mục tiêu
y = data['close']

3. Thực hiện phân rã chuỗi thời gian

# Phân rã chuỗi thời gian với mô hình cộng (Additive Model)
result = seasonal_decompose(y, model='additive', period=12)

4. Vẽ biểu đồ các thành phần của chuỗi thời gian

plt.figure(figsize=(14, 10))

plt.subplot(411)
plt.plot(result.observed, label='Observed')
plt.legend(loc='upper left')

plt.subplot(412)
plt.plot(result.trend, label='Trend')
plt.legend(loc='upper left')

plt.subplot(413)
plt.plot(result.seasonal, label='Seasonal')
plt.legend(loc='upper left')

plt.subplot(414)
plt.plot(result.resid, label='Residual')
plt.legend(loc='upper left')

# Lưu biểu đồ
plt.savefig("seasonal_decompose.png")
plt.show()

5. Kết luận

  • Thành phần trend cho thấy xu hướng dài hạn của biến 'close'.
  • Thành phần seasonal giúp phát hiện các mẫu lặp lại theo chu kỳ.
  • Thành phần residual phản ánh các biến động không giải thích được bởi xu hướng và mùa vụ.
  • Kết quả này giúp nhà phân tích có thể xây dựng mô hình dự báo chính xác hơn dựa trên các thành phần của dữ liệu chuỗi thời gian.

Sau khi chạy đoạn mã trên, bạn sẽ có biểu đồ phân rã chuỗi thời gian và có thể hiển thị hình ảnh seasonal_decompose.png trên Docusaurus bằng cách:

Phân rã chuỗi thời gian