循环获取趋势,季节性和残差

时间:2019-06-27 15:51:35

标签: python loops pdf graph decomposition

我正尝试汇总一些有关数据历史记录的统计信息,以更好地理解数据。我的目标是创建一个循环,为趋势创建pdf。我数据框中每列的季节性和残油。我编写了一个循环来执行此操作,但是每个图所包含的数据均超出其应有的数量。例如,创建的第一个图形只有1条线,但是创建的下一个图形具有第一个图形中的线和一个新线。

我出于测试目的创建了一些虚假数据。我的代码如下:

#Creating random Data
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
import statsmodels.api as sm

#I pulled the following code from another post on stackoverflow to create random data
date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(365), freq='D')

np.random.seed(seed=1111)
data = np.random.randint(1, high=100, size=len(days))
data2 = np.random.randint(1, high=200, size=len(days))
df = pd.DataFrame({'test': days, 'col1': data, 'col2': data2})
df = df.set_index('test')
print(df)


#Loop to create a resid, trend, and seasonality plot for each column in the dataframe
for i in df:
    decomposition = sm.tsa.seasonal_decompose(df[i], model = 'additive')
    decomposition.resid.plot()
    plt.savefig('{} resid.pdf'.format(i), bbox_inches='tight')

    decomposition.seasonal.plot()
    plt.savefig('{} seasonal.pdf'.format(i), bbox_inches='tight')

    decomposition.trend.plot()
    plt.savefig('{} trend.pdf'.format(i), bbox_inches='tight')

我想为每一列获取的示例图: enter image description here

我得到的是什么

enter image description here

谢谢!

0 个答案:

没有答案