Разложить временные ряды только по тренду и по остатку с помощью питона - PullRequest
0 голосов
/ 18 октября 2018

Я хочу разложить временной ряд только по тренду и по остаточному (без сезонности).Пока я знаю, что могу использовать statsmodels для разложения временных рядов, но это включает сезонность.Есть ли способ разложить его без сезонности?

Я посмотрел документацию (https://www.statsmodels.org/dev/generated/statsmodels.tsa.seasonal.seasonal_decompose.html) season_decompose допускает различные типы сезонностей («аддитивный», «мультипликативный»}), но у меня нетМы не видели аргумента ключевого слова, который исключает сезонность.

Ниже игрушечная модель моей проблемы. Временной ряд с трендом, но без сезонности. Если бы мы убрали сезонный компонент, я думаю, мы бы лучше подошли.Time series decomposition

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.tsa.arima_model import ARMA
from matplotlib import pylab as plt

#defining the trend function
def trend(t, amp=1):
    return amp*(1 + t)

n_time_steps = 100
amplitud=1
#initializing the time series
time_series = np.zeros(n_time_steps)
time_series[0] = trend(0, amplitud)

alpha = 0.1
#making the time series
for t in range(1,n_time_steps):
    time_series[t] = (1 - alpha)*time_series[t - 1] + alpha*trend(t, amp=amplitud) + alpha*np.random.normal(0,25)

#passing the time series to a pandas format
dates = sm.tsa.datetools.dates_from_range('2000m1', length=len(time_series))
time_series_pd= pd.Series(time_series, index=dates)
#decomposing the time series
res = sm.tsa.seasonal_decompose(time_series_pd)
res.plot()

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, что функция seasonal_decompose не может использоваться без сезонного компонента.

Задумывались ли вы об использовании другой функции, такой как statsmodels.tsa.tsatools.detrend?Это делает то, что вы хотите с полиномиальной подгонкой.

...