Open1

時系列分析

antyuntyunantyuntyun

複数系列の残差相関

import statsmodels.api as sm
import pandas as pd

# dfに系列データが用意できている前提
# 結果格納用のデータフレームの用意
resid_mat = pd.DataFrame()
for column_name, item in df.iteritems():
    # 対象外の系列はスキップ
    if column_name == 'yyyymmdd':
        continue
    # 残差算出
    res = sm.tsa.seasonal_decompose(item.values, period=7, extrapolate_trend='freq')
    resid_mat = pd.concat([resid_mat, pd.Series(res.resid)], axis=1)
resid_mat.columns = [['ts1', 'ts2', 'ts3','ts4']] # スキップしたカラム以外のカラムに対応する論理名の付与


# 描画設定
sns.set(font='Noto Sans CJK JP')
plt.figure(figsize=(15, 5))
sns.heatmap(resid_mat.corr(), annot=True, lw=0.7, cmap='YlGnBu')
plt.title('Time series Correlation matrix')