Внедрение Марковской коммутации - ARMA (1,1) в R для прогнозирования - PullRequest
0 голосов
/ 05 марта 2019

Я хочу подогнать марковское переключение - ARMA (1,1) в R для прогнозирования доходности акций.Таким образом, в основном модель имеет вид 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 +: недопустимый тип (NULL) для переменной 'SPY_set $ VFINX_1'

Часть 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
...