Công cụ khử tính phi dừng (non-stationary) trên chuỗi dữ liệu

Công Cụ Kiểm Định Tính Dừng (Chuẩn Khoa Học)

Công Cụ Kiểm Định Tính Phi Dừng

Powered by Python statsmodels (WebAssembly) & Chart.js

📋 Hướng dẫn chuẩn bị dữ liệu:
  • Hỗ trợ file .csv, .txt.xlsx.
  • Sau khi tính toán xong, ấn Xuất PDF ở góc phải trên cùng để tải báo cáo kết quả.
📂 Nhấp để tải file dữ liệu lên
Đang khởi tạo Engine Python học thuật... (Vui lòng đợi 5-10 giây ở lần chạy đầu)
Xem mã nguồn Python (Statsmodels) tương đương
# Mã nguồn chuẩn khoa học bằng Python cho bài báo (Có sử dụng AIC để tìm lag)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import adfuller, kpss, acf

# 1. Đọc dữ liệu
df = pd.read_csv("data.csv")
y = df["Value_Column"].dropna().values

# 2. Kiểm định ADF (H0: Có Unit root - Phi dừng)
# Tự động chọn số bậc trễ tối ưu thông qua tiêu chuẩn AIC (Rất quan trọng cho bài báo)
adf_stat, adf_pval, adf_lags, adf_nobs, adf_crit, _ = adfuller(y, regression='ct', autolag='AIC')
print(f"ADF Stat: {adf_stat:.4f}, p-value: {adf_pval:.4f}, Lags used: {adf_lags}")

# 3. Kiểm định KPSS (H0: Chuỗi là Dừng)
kpss_stat, kpss_pval, kpss_lags, kpss_crit = kpss(y, regression='ct', nlags="auto")
print(f"KPSS Stat: {kpss_stat:.4f}, p-value: {kpss_pval:.4f}, Lags used: {kpss_lags}")

# 4. Phán quyết
if adf_pval < 0.05 and kpss_pval >= 0.05:
    print("Kết luận: Chuỗi DỪNG (Stationary)")
elif adf_pval >= 0.05 and kpss_pval < 0.05:
    print("Kết luận: Chuỗi PHI DỪNG (Non-stationary)")
elif adf_pval < 0.05 and kpss_pval < 0.05:
    print("Kết luận: Trend-stationary hoặc có Gãy cấu trúc (Structural Break)")
else:
    print("Kết luận: Kết quả mâu thuẫn/chưa đủ mạnh")