一、平稳性与差异化
时间序列如果不是平稳的,则表明数列的平均值依赖于时间,无法根据过去的数据集对未来进行预测,此时就需要对不平稳的时间序列进行差异化处理。
差异化是一种计算从一个时间步骤到另一个时间步骤的变化的变换,这种转换有助于稳定平均值。对差异进行一次处理就是应用一阶差分法,通常不需要差分超过两次就可以得到一个平稳的序列。
二、不平稳时序数据
1、数据生成
通过控制表达式yt = α1yt –1 + ϵt中的α1,使其不在-1与1之间,来生成不平稳时间序列,下方将α1设置为1;
def simulate_process(is_stationary:bool)->np.array:
np.random.seed(42)
process=np.empty(400)
if is_stationary:
alpha=0.5
process[0]=0
else:
alpha=1
process[0]=10
for i in range(400):
if i+1<400:
process[i+1]=alpha*process[i]+np.random.standard_normal()
else:
break
return process
non_stationary=simulate_process(False)
2、查看序列的ADF与p-value
ADF如果是一个负数,负值越大,意味着时间序列越平稳,实验数据ADF