好内容值得等待,马上呈现给你~
平稳性是指时间序列的统计特性不随时间变化。
所有阶的联合分布不随时间平移而改变。
1. E[X_t] = μ (均值恒定)
2. Var(X_t) = σ² (方差恒定)
3. Cov(X_t, X_{t+k}) = γ(k) (自协方差只依赖于滞后期k)
非平稳序列问题:
问题: 两个独立的非平稳序列可能显示高度相关
例: GDP和冰淇淋销量都上升
不意味着因果关系
只是都有时间趋势
ARMA模型要求:
from statsmodels.tsa.stattools import adfuller
result = adfuller(series)
print(f'ADF Statistic: {result[0]}')
print(f'p-value: {result[1]}')
# p-value < 0.05 → 拒绝存在单位根 → 平稳
假设检验:
假设检验:
与ADF互补使用
Y_t = X_t - X_{t-1} (一阶差分)
股票: 使用收益率而非价格
Y_t = log(X_t)
稳定方差
Y_t = X_t - Trend_t
移除确定性趋势
如果两个非平稳序列存在协整关系
它们的线性组合是平稳的
可以用于配对交易
import pandas as pd
from statsmodels.tsa.stattools import adfuller, kpss
def check_stationarity(series):
# ADF检验
adf_result = adfuller(series)
print(f'ADF p-value: {adf_result[1]:.4f}')
# KPSS检验
kpss_result = kpss(series)
print(f'KPSS p-value: {kpss_result[1]:.4f}')
# 判断
if adf_result[1] < 0.05 and kpss_result[1] > 0.05:
print('序列平稳')
else:
print('序列非平稳,需要处理')