Как тренировать модель AR(p) несколько раз в Python

Я использую модель AR(p) для прогнозирования данных временных рядов. Модель работает нормально и прогнозирует значения с MSE ~ 5%. Я попытался обучить модель, используя цикл for, чтобы получить меньшее значение ошибки, используя приведенный ниже фрагмент кода, но я получаю одно и то же значение MSE при каждом запуске.

        train, test = client_A_array[1:80], client_A_array[80:]

        for i in range(100):

            # train autoregression

            model = AR(train)
            model_fit = model.fit()

            # make predictions
            predictions = model_fit.predict(start=len(train), end=len(train) + len(test) - 1, dynamic=True)

            error = mean_squared_error(test, predictions)
            print('Test MSE: %.3f' % error)


        # here we use an AR(p) model of statsmodels
        ar_a = AR(client_A_array)

        # we set the maximum estimation lag, but the algorithm selects the best lag according to Bayesian Information Criteria
        p_a = ar_a.fit(maxlag = max_estimation_lag - 1, ic='bic')

        to_be_predicted_array = client_A_array[-predict_len:]

        # below pads the original data with zeros to be able forecast the future
        client_A_array = np.pad(client_A_array, (0, predict_len), 'constant')

        # here we predict the last predict_len observations for testing
        predicted_ta = p_a.predict(start=len(client_A_array) - predict_len, end = len(client_A_array) - 1 , dynamic = True)

Может кто-нибудь сказать мне, как поступить, я гуглил, но не нашел решения. Я могу поделиться своим кодом, если это необходимо. Я думаю, что мне нужно добавить немного контролируемого обучения, но я не знаю, как это сделать.

0 ответов

Другие вопросы по тегам