Miranda Powell Ответов: 0

Петля для тренда, сезонности и resid


Я пытаюсь собрать несколько статистических данных об истории моих данных, чтобы лучше понять ее. Моя цель - создать цикл, который создает pdf-файл для тренда. сезонность и resid для каждого столбца в моем фрейме данных. Я написал цикл, чтобы сделать это, но каждый график содержит больше данных, чем он должен. Например, первый созданный график имеет только 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

#creating 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')

0 Ответов