Я хочу подогнать марковское переключение - 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