python实现时间序列分解

对时间序列进行分解,包括趋势项、周期项和残差项。

(1)引入包

# import statsmodels.api as sm

from statsmodels.tsa.seasonal import seasonal_decompose
from dateutil.parser import parse
import pandas as pd
import torch
import matplotlib.pyplot as plt
import numpy as np
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'#防止导入pyplot时服务挂掉
torch.manual_seed(1)        # 为CPU设置随机种子

(2)分解实现

df = pd.read_excel(r'C:\Users\20882\Desktop\111.xlsx',parse_dates=['date'], index_col='date')#日期标签名
result_add = seasonal_decompose(df['y'], #数值列名
             model='additive', #加 multiplicative乘(不允许有负值或0)
             period = 11,#事先不指定周期    None                
             extrapolate_trend='freq')#有日期项

trend = result_add.trend#趋势项
seasonal = result_add.seasonal#季节项/周期项
residual = result_add.resid#残差

plt.rcParams.update({'figure.figsize': (12, 8)})
result_add.plot()#.suptitle('Additive Decompose')


plt.show()

(3)实现效果

python实现时间序列分解_第1张图片

 

你可能感兴趣的:(时间序列数据预测,python,深度学习,机器学习)