平稳性检验(描述性)
平稳性检验的方法分为描述性方法与计量性方法。前者主要指时序图检验、ACF 图检验,后者主要指 DF 检验、ADF 检验与PP检验。
如下两个模型:
原假设,备择假设
def ADF_p(start_date=None,end_date=None,stock=None,count=None,frequency=None):
if not isinstance(stock,str):
return
p = list()
if frequency == '1m':
trade_days = jd.get_trade_days(start_date=start_date,end_date=end_date)
trade_days = list(map(lambda x:x.strftime('%Y-%m-%d'),trade_days))
for days in trade_days:
data = jd.get_price(security=stock, start_date=days+' 09:30:00',
end_date=days+' 15:00:00', frequency='1m',
fields=['close'], skip_paused=False, fq='pre', count=None)['close']
data = np.log(data.reset_index(drop=True))
p.append((ADF(data)[1],days))
if frequency == '1d':
trade_days = pd.date_range(start=start_date,end=end_date,freq='A')
trade_days = list(map(lambda x:x.strftime('%Y-%m-%d'),trade_days))
for days in trade_days:
data = jd.get_price(security=stock,end_date=days, frequency='1d',
fields=['close'], skip_paused=False, fq='pre', count=250)['close']
data = np.log(data.reset_index(drop=True))
p.append((ADF(data)[1],days))
return p
p_min:上证指数,2020-01-01到2020-04-01,每日日内分钟收盘价的ADF检验的p值。大多数情况下p>0.05,日内每分钟收盘价是非平稳的即存在趋势性。
p_d:上证指数,2015-2019,每年每日收盘价的ADF检验的p值,大多数情况下p>0.05,日收盘价是非平稳的即存在趋势性。
随机性时间序列的定义与检验
LB_p_min:上证指数,2020-01-01到2020-04-01,每日日内分钟收盘价的LB检验的p值。p<0.05,日内每分钟收盘价不是随机的。
LB_p_d:上证指数,2015-2019,每年每日收盘价的LB检验的p值,p<0.05,日收盘价是非随机的。