Как определить диапазон параметров модели SARIMA? - PullRequest
0 голосов
/ 28 мая 2020

Я использую модель SARIMA для прогнозирования таймера ie, поэтому мне нужно определить диапазон параметров модели и найти лучшую комбинацию параметров модели для моего случая, сравнив AI C. Диапазоны следующие:

ps = range(0, 3)
d=1
qs = range(0, 1)
Ps = range(0, 3)
D=1
Qs = range(0, 3)

, а код следующий:

def best_results(ts,Col_name):
    results = []
    best_aic = float("inf")
    warnings.filterwarnings('ignore')

    for param in parameters_list:
        #try except is needed because some parameter combinations are not valid
        try:
            model=sm.tsa.statespace.SARIMAX(ts[Col_name], order=(param[0], d, param[1]), seasonal_order=(param[2], D, param[3], 12)).fit(disp=-1)
        except ValueError:
            print('wrong parameters:', param)
            continue
        aic = model.aic
        # save best model, it's AIC and params
        if aic < best_aic:
            best_model = model
            best_aic = aic
            best_param = param
        results.append([param, model.aic])

    warnings.filterwarnings('default')
    result_table = pd.DataFrame(results)
    result_table.columns = ['parameters', 'aic']
    print(result_table.sort_values(by = 'aic', ascending=True).head())
    return results,best_model

Моему компьютеру требуется много времени, чтобы найти best_model, если я расширю диапазоны.

Интересно, является ли AI C хорошим показателем c для рассмотрения в качестве критерия для сравнения производительности комбинации параметров? и как я могу определить правильный основной диапазон?

PS: Я использую ноутбук Jupiter (Anaconda)

...