R语言向matlab转化,R语言如何做马尔科夫转换模型markovswitchingmodel

假设

有时间序列数据,如下所示。经验表明,目标变量y似乎与解释变量x有关。然而,乍一看,y的水平在中间移动,所以它似乎并不总是有固定的关系(背后有多个状态)。

05b064381608eb5af746bbbb40a7dccf.pngblog_14154cb430102ynbm.html

上面的样本数据创建如下。数据根据时间改变x和y之间的关系。

x

y1

y2

noise

y1

y2

y

observed

blog_14154cb430102ynbm.html

x和y1,y2之间的关系如下图所示。如果您知道x和y有两种状态,则x和y看起来像这样。

数据

54e4faf7ebbdce1d469304bc9d50168a.pngblog_14154cb430102ynbm.html 在马尔可夫转换模型中,观察数据被认为是从几个状态生成的,并且如上所示很好地分离。

观察到的数据

6500b8b915249c4ea0ea0b865fc2fba6.pngblog_14154cb430102ynbm.html

创建马尔可夫转换模型

模型公式

|t|) \n# (Intercept) 45.7468 1.7202 26.59 <2e-16 ***\n# x 3.2262 0.1636 19.71 <2e-16 ***\n# ---\n# Signif. codes: \n# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n# \n# Residual standard error: 11.51 on 498 degrees of freedom\n# Multiple R-squared: 0.4383, Adjusted R-squared: 0.4372 \n# F-statistic: 388.7 on 1 and 498 DF, p-value: < 2.2e-16","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"># Call:

# lm(formula = y ~ x, data = observed)

#

# Residuals:

# Min 1Q Median 3Q Max

# -24.303 -9.354 -1.914 9.617 29.224

#

# Coefficients:

# Estimate Std. Error t value Pr(>|t|)

# (Intercept) 45.7468 1.7202 26.59 <2e-16 ***

# x 3.2262 0.1636 19.71 <2e-16 ***

# ---

# Signif. codes:

# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#

# Residual standard error: 11.51 on 498 degrees of freedom

# Multiple R-squared: 0.4383, Adjusted R-squared: 0.4372

# F-statistic: 388.7 on 1 and 498 DF, p-value: < 2.2e-16

blog_14154cb430102ynbm.html

参数的含义是

k:马尔可夫转换模型的状态数。在这里,它被指定为后面有两个状态。

sw:使用逻辑指定每个参数在状态更改时是否更改

p:AR模型系数

family:(在GLM的情况下)概率分布族

|t|) \n# (Intercept)(S) 69.3263 4.0606 17.0729 <2e-16 ***\n# x(S) 2.1795 0.1187 18.3614 <2e-16 ***\n# y_1(S) -0.0103 0.0429 -0.2401 0.8103 \n# ---\n# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n# \n# Residual standard error: 4.99756\n# Multiple R-squared: 0.6288\n# \n# Standardized Residuals:\n# Min Q1 Med Q3 Max \n# -1.431396e+01 -2.056292e-02 -1.536781e-03 -1.098923e-05 1.584478e+01 \n# \n# Regime 2 \n# ---------\n# Estimate Std. Error t value Pr(>|t|) \n# (Intercept)(S) 30.2820 1.7687 17.1210 <2e-16 ***\n# x(S) 3.9964 0.0913 43.7722 <2e-16 ***\n# y_1(S) -0.0045 0.0203 -0.2217 0.8245 \n# ---\n# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n# \n# Residual standard error: 4.836684\n# Multiple R-squared: 0.8663\n# \n# Standardized Residuals:\n# Min Q1 Med Q3 Max \n# -13.202056966 -0.771854514 0.002211602 1.162769110 12.417873232 \n# \n# Transition probabilities:\n# Regime 1 Regime 2\n# Regime 1 0.994973376 0.003347279\n# Regime 2 0.005026624 0.996652721","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"># Markov Switching Model

#

# AIC BIC logLik

# 3038.846 3101.397 -1513.423

#

# Coefficients:

#

# Regime 1

# ---------

# Estimate Std. Error t value Pr(>|t|)

# (Intercept)(S) 69.3263 4.0606 17.0729 <2e-16 ***

# x(S) 2.1795 0.1187 18.3614 <2e-16 ***

# y_1(S) -0.0103 0.0429 -0.2401 0.8103

# ---

# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#

# Residual standard error: 4.99756

# Multiple R-squared: 0.6288

#

# Standardized Residuals:

# Min Q1 Med Q3 Max

# -1.431396e+01 -2.056292e-02 -1.536781e-03 -1.098923e-05 1.584478e+01

#

# Regime 2

# ---------

# Estimate Std. Error t value Pr(>|t|)

# (Intercept)(S) 30.2820 1.7687 17.1210 <2e-16 ***

# x(S) 3.9964 0.0913 43.7722 <2e-16 ***

# y_1(S) -0.0045 0.0203 -0.2217 0.8245

# ---

# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#

# Residual standard error: 4.836684

# Multiple R-squared: 0.8663

#

# Standardized Residuals:

# Min Q1 Med Q3 Max

# -13.202056966 -0.771854514 0.002211602 1.162769110 12.417873232

#

# Transition probabilities:

# Regime 1 Regime 2

# Regime 1 0.994973376 0.003347279

# Regime 2 0.005026624 0.996652721

blog_14154cb430102ynbm.html

输出中的制度1和制度2表示后面的两个状态 。

|t|) \n# (Intercept)(S) 69.3263 4.0606 17.0729 <2e-16 ***\n# x(S) 2.1795 0.1187 18.3614 <2e-16 ***\n# y_1(S) -0.0103 0.0429 -0.2401 0.8103 ","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"># Regime 1

# ---------

# Estimate Std. Error t value Pr(>|t|)

# (Intercept)(S) 69.3263 4.0606 17.0729 <2e-16 ***

# x(S) 2.1795 0.1187 18.3614 <2e-16 ***

# y_1(S) -0.0103 0.0429 -0.2401 0.8103

blog_14154cb430102ynbm.html

y1

2 与之兼容。

可以说从调整后的R平方值整体上有所改善。

|t|) \n# (Intercept)(S) 30.2820 1.7687 17.1210 <2e-16 ***\n# x(S) 3.9964 0.0913 43.7722 <2e-16 ***\n# y_1(S) -0.0045 0.0203 -0.2217 0.8245 ","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"># Regime 2

# ---------

# Estimate Std. Error t value Pr(>|t|)

# (Intercept)(S) 30.2820 1.7687 17.1210 <2e-16 ***

# x(S) 3.9964 0.0913 43.7722 <2e-16 ***

# y_1(S) -0.0045 0.0203 -0.2217 0.8245

blog_14154cb430102ynbm.html

模型

对于每个regime,目标变量+指定的解释变量和处于该状态的概率以阴影绘制

12ad873f2ced7376072ea498f1062ce7.pngblog_14154cb430102ynbm.html

每个时间点的概率

98252ac10eaf91d78df63232ad058d20.pngblog_14154cb430102ynbm.html

每次获取状态和更改点

如果你想知道你在某个特定时间点所在的regime,那么就选择那个时刻概率最高的 。

probable\n [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n [30] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n...","classes":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet">> probable

[1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

[30] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

...

blog_14154cb430102ynbm.html

异常值/变化点是Regime更改的时间

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值