statsmodels.tsa.regime_switching.markov_regression.MarkovRegression

class statsmodels.tsa.regime_switching.markov_regression.MarkovRegression(endog, k_regimes, trend='c', exog=None, order=0, exog_tvtp=None, switching_trend=True, switching_exog=True, switching_variance=False, dates=None, freq=None, missing='none')[source]

一阶k-机制马尔可夫切换回归模型

Parameters:
endogarray_like

内生变量。

k_regimesint

体制的数量。

trend{‘n’, ‘c’, ‘t’, ‘ct’}

是否包含趋势。要包含截距、时间趋势或两者,请设置trend='c'trend='t'trend='ct'。如果不包含趋势,请设置trend='n'。默认是截距。

exogarray_like, optional

外生回归变量的数组,形状为 nobs x k。

orderint, optional

模型的顺序描述了似然函数对先前状态的依赖性。这取决于所讨论的模型,并且应由子类适当地设置。

exog_tvtparray_like, optional

用于计算时间变化转移概率(TVTP)的外生或滞后变量的数组。仅当提供此变量时,才使用TVTP。如果需要截距,则必须在此数组中显式包含一列1。

switching_trendbool or iterable, optional

如果是一个布尔值,设置是否所有趋势系数在不同制度下切换。如果是一个可迭代对象,应该与趋势变量的数量相等,其中每个元素是一个布尔值,描述相应的系数是否切换。默认是 True。

switching_exogbool or iterable, optional

如果是一个布尔值,设置是否所有回归系数在不同状态之间切换。如果是一个可迭代对象,应该与外生变量的数量相等,其中每个元素都是一个布尔值,描述相应的系数是否切换。默认值为True。

switching_variancebool, optional

是否存在特定体制的异方差性,即误差项是否具有切换方差。默认值为False。

Attributes:
endog_names

内生变量的名称。

exog_names

外生变量的名称。

k_params

(int) 模型中的参数数量

param_names

(list of str) 人类可读的参数名称列表(用于参数)

start_params

(数组) 最大似然估计的初始参数。

注释

此模型是新的,API稳定性未得到保证,尽管如果可能的话,更改将以向后兼容的方式进行。

该模型可以写为:

\[\begin{split}y_t = a_{S_t} + x_t' \beta_{S_t} + \varepsilon_t \\ \varepsilon_t \sim N(0, \sigma_{S_t}^2)\end{split}\]

即模型是一个动态线性回归,其中系数和误差项的方差可能在不同状态之间切换。

通过在 exog 数组前添加列来适应 trend。因此,如果 trend='c',传递的 exog 数组不应已经包含一列全为1的列。

请参阅笔记本 马尔可夫切换动态回归 以获取概述。

参考文献

金昌镇和查尔斯·R·纳尔逊。1999年。 “带有状态转换的状态空间模型: 经典和吉布斯采样方法及其应用”。 麻省理工学院出版社书籍。麻省理工学院出版社。

方法

filter(参数[, 转换, 协方差类型, ...])

应用汉密尔顿滤波器

fit([start_params, transformed, cov_type, ...])

通过汉密尔顿滤波器以最大似然法拟合模型。

from_formula(公式, 数据[, 子集, 删除列])

从公式和数据框创建模型。

hessian(params[, transformed])

似然函数的Hessian矩阵,在给定参数处求值

information(params)

模型的费舍尔信息矩阵。

initial_probabilities(params[, ...])

检索初始概率

initialize()

初始化(可能重新初始化)一个模型实例。

initialize_known(概率[, 容差])

设置状态概率的初始化以使用已知值

initialize_steady_state()

将制度概率的初始化设置为稳态值

loglike(参数[, 转换])

对数似然评估

loglikeobs(params[, transformed])

每个时期的对数似然评估

predict(params[, start, end, probabilities, ...])

样本内预测和样本外预测

predict_conditional(params)

样本内预测,基于当前状态

regime_transition_matrix(params[, exog_tvtp])

构建左随机转移矩阵

score(params[, transformed])

在参数处计算得分函数。

score_obs(params[, transformed])

计算每个观测值的得分,在参数处进行评估

smooth(params[, transformed, cov_type, ...])

应用Kim平滑器和Hamilton滤波器

transform_params(无约束)

将优化器使用的无约束参数转换为似然评估中使用的约束参数

untransform_params(constrained)

将似然评估中使用的约束参数转换为优化器使用的无约束参数

属性

endog_names

内生变量的名称。

exog_names

外生变量的名称。

k_params

(int) 模型中的参数数量

param_names

(list of str) 人类可读的参数名称列表(适用于模型中实际包含的参数)。

start_params

(数组) 最大似然估计的初始参数。


Last update: Oct 16, 2024