在R中实施马尔可夫切换-ARMA(1,1)进行预测

时间:2019-03-05 07:34:18

标签: r markov

我想在R中拟合Markov转换-ARMA(1,1)以对股票收益进行预测。因此,基本上该模型的形式为x(t + 1)假设我使用对数正态分布后的12预测变量和1响应变量,我尝试使用以下代码

model = glm(SPY_set$VFINX ~ SPY_set$MICH + SPY_set$CPIAUCSL + SPY_set$CSUSHPISA + 
             SPY_set$MCOILWTICO + SPY_set$PPIACO + 
             SPY_set$IR + SPY_set$IQ + SPY_set$TWEXBMTH + SPY_set$TB3MS + 
             SPY_set$TB3MS + SPY_set$PSAVERT + 
             SPY_set$USD1MTD156N, data = SPY_set)

m1=msmFit(model,k=4,sw=rep(TRUE,12),p=1,family="gaussian",control=list(parallel=FALSE))

我尝试删除p=1,但它仅适用于k=4(其他情况下会出现类似Error in solve.default(res$Hessian) : Lapack routine dgesv: system is exactly singular: U[2,2] = 0的错误)。

如果我将p=1保留为开(实际上是必需的,因为我需要合并自回归和移动平均项的系数),但我不断得到的错误低于我不知道如何解决的错误。有人可以帮忙吗?

  

model.frame.default中的错误(公式= SPY_set $ VFINX〜SPY_set $ MICH +:     变量'SPY_set $ VFINX_1'的无效类型(NULL)

SPY_set的部分在这里

  MICH CPIAUCSL CSUSHPISA MCOILWTICO PPIACO   IR   IQ TWEXBMTH TB3MS PSAVERT USD1MTD156N
1  0.2      0.3     0.701       1.00   -0.1  0.0 -0.2   0.7422  0.07    -0.3    -0.01375
2  0.6      0.5     0.843       3.81    1.4  1.2  0.3  -0.7253  0.07     0.1     0.01000
3  0.1      0.8     0.924       1.65    1.0  1.5  0.4  -0.3733 -0.08    -0.1     0.00875
4 -0.1      0.2     1.112       0.86    0.0  0.1  0.0  -1.5839  0.02     0.7    -0.03875
5  0.0      0.1     1.088      -1.52    0.1 -0.3  0.0  -1.4213 -0.03    -0.1     0.00375
6 -0.1      0.4     1.074       1.45    0.3  0.4  0.3  -1.7311 -0.02    -0.9    -0.00500
         VFINX
1  0.009894164
2  0.013653689
3 -0.053001206
4 -0.041628543
5 -0.070624640
6 -0.088507621

0 个答案:

没有答案