我想在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