Не удается установить атрибут в классе свойств в модели переключения режимов Маркова - PullRequest
2 голосов
/ 06 апреля 2019

Я пытаюсь установить свои начальные параметры для запуска модели переключения режимов Маркова, но я всегда получаю следующую ошибку:

AttributeError: can't set attribute

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

from statsmodels.tsa.regime_switching.markov_autoregression import MarkovAutoregression as mark_auto

mod = mark_auto(endog = data.dlgnp, k_regimes = 2, order=1, switching_variance= False, switching_exog= False, switching_trend= False)
mod.k_params
mod.param_names
regression.start_params = np.array([0.4,0.4,1,1])

Исходный код можно найти здесь , но часть, касающаяся моей проблемы, следующая:

@property
def start_params(self):
    """
    (array) Starting parameters for maximum likelihood estimation.
    """
    # Inherited parameters
    params = markov_switching.MarkovSwitching.start_params.fget(self)

    # OLS for starting parameters
    endog = self.endog.copy()
    if self._k_exog > 0 and self.order > 0:
        exog = np.c_[self.exog, self.exog_ar]
    elif self._k_exog > 0:
        exog = self.exog
    elif self.order > 0:
        exog = self.exog_ar

    if self._k_exog > 0 or self.order > 0:
        beta = np.dot(np.linalg.pinv(exog), endog)
        variance = np.var(endog - np.dot(exog, beta))
    else:
        variance = np.var(endog)

Я также пробовал np.r_, но это не помогло.Я выполняю свой код на Python 2.7.15, и самое странное, что я помню, как работал код в прошлый раз, когда я его запускал.Любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 07 апреля 2019

Свойство start_params просто предоставляет начальные параметры по умолчанию, используемые при вызове функции fit - вам не нужно устанавливать ее самостоятельно.

Если вы хотите установить конкретные параметры запуска, вы должны сделать это при вызове fit, например ::

.

res = mod.fit(start_params=np.array([0.4,0.4,1,1]))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...