Следующие ссылки были исследованы, но не дали мне ответ, который я искал / решил мою проблему: Первый , Второй .
Из-за конфиденциальностипроблемы, которые я не могу опубликовать фактическую декомпозицию. Я могу показать свой текущий код и указать длину набора данных, если этого недостаточно. Я сниму вопрос.
import numpy as np
from statsmodels.tsa import seasonal
def stl_decomposition(data):
data = np.array(data)
data = [item for sublist in data for item in sublist]
decomposed = seasonal.seasonal_decompose(x=data, freq=12)
seas = decomposed.seasonal
trend = decomposed.trend
res = decomposed.resid
На графике показано, что он правильно разлагается.согласно аддитивной модели.Однако трендовые и остаточные списки имеют значения NaN за первые и последние 6 месяцев.Текущий набор данных имеет размер 10 * 12.В идеале это должно работать как минимум 2 года.
Это все еще слишком мало, как сказано в первой ссылке?Т.е. мне нужно самостоятельно экстраполировать дополнительные точки?
РЕДАКТИРОВАТЬ: Кажется, что всегда половина частоты равна NaN на обоих концах тренда и остатка.То же самое относится и к уменьшению размера набора данных.