ARIMA с 2D или 3D сериями - PullRequest
0 голосов
/ 09 мая 2019

Теперь у меня есть последовательность, форма которой похожа на последовательность изображений, т. Е. (T, 2, w, h), я хочу применить этот набор данных с ARIMA для прогнозирования значения t + 1 временной метки, т.е. (t + 1, 2, w, h), прогнозируемое значение на временной метке t + 1 является двумерным измерением, но для модели ARIMA в statsmodel требуется форма ввода 1 измерение, как я могу решить эту проблему? Вот инструмент statsmodel.tsa.arima_model: https://www.statsmodels.org/stable/_modules/statsmodels/tsa/arima_model.html#ARIMA

def _fit_start_params_hr(self, order, start_ar_lags=None):
        """
        Get starting parameters for fit.

        Parameters
        ----------
        order : iterable
            (p,q,k) - AR lags, MA lags, and number of exogenous variables
            including the constant.
        start_ar_lags : int, optional
            If start_ar_lags is not None, rather than fitting an AR process
            according to best BIC, fits an AR process with a lag length equal
            to start_ar_lags.

        Returns
        -------
        start_params : array
            A first guess at the starting parameters.

        Notes
        -----
        If necessary, fits an AR process with the laglength start_ar_lags, or
        selected according to best BIC if start_ar_lags is None.  Obtain the
        residuals.  Then fit an ARMA(p,q) model via OLS using these residuals
        for a first approximation.  Uses a separate OLS regression to find the
        coefficients of exogenous variables.

        References
        ----------
        Hannan, E.J. and Rissanen, J.  1982.  "Recursive estimation of mixed
            autoregressive-moving average order."  `Biometrika`.  69.1.

        Durbin, J. 1960. "The Fitting of Time-Series Models."
        `Review of the International Statistical Institute`. Vol. 28, No. 3
        """
        p, q, k = order
        start_params = zeros((p+q+k))
        # make copy of endog because overwritten
        endog = np.array(self.endog, np.float64)

где вводится endog

...