Внешние регрессоры Ругарха в среднем/дисперсии

Каково правильное форматирование переменной, предоставляемой external.regressors = ..? Мои данные выглядят так:

           regressor     dependent
2008-01-04         3  0.0243990059
2008-01-08         3  0.0057341705
2008-01-09         3  0.0047333058
2008-01-10         3  0.0003631741
2008-01-11         3 -0.0019384547
2008-01-14         3 -0.0016992358

Я использую пакет Rugarch для оценки процесса ARMA(2,0)-GARCH(1,1) с внешним регрессором как по среднему, так и по дисперсии. Поскольку (конечно) я имею дело с временными рядами, мои данные отформатированы как зоопарк.

Если я укажу переменную зоопарка, как здесь:

garch.spec <- ugarchspec(
  variance.model = list(model="sGARCH", garchOrder = c(1,1), 
external.regressors = regressor),
  mean.model = list(armaOrder = c(2, 0), include.mean = TRUE),
)

Я получаю следующую ошибку:

Error in modelinc[15] <- dim(variance.model$external.regressors)[2] : 
  replacement has length zero 

Если я вместо этого укажу регрессоры как external.regressors = as.matrix(coredata(regressor)), ошибка не появится, и я смогу оценить модель с помощью

ugarchfit(garch.spec, dependent)

Где зависимая — это переменная зоопарка. Результаты, однако, не имеют смысла.

Кажется, я не понимаю, как здесь работают типы данных. Я считаю, что garch должен уметь работать с файлами зоопарка и прочитал описание пакета, но не нашел ничего полезного. Любые предложения, пожалуйста?


person Djpengo    schedule 21.01.2019    source источник


Ответы (1)


В ?ugarchspec находим

external.regressors — объект matrix, содержащий внешние регрессоры для включения в уравнение дисперсии с таким количеством строк, которое будет включено в данные (которые передаются в функцию подгонки).

Итак, если df содержит данные вашего примера, используя

garch.spec <- ugarchspec(
  variance.model = list(model = "sGARCH", garchOrder = c(1, 1), external.regressors = matrix(df$regressor)),
  mean.model = list(armaOrder = c(2, 0), include.mean = TRUE))
ugarchfit(garch.spec, df$dependent)

работает. Это правильное использование external.regressors, и вопросы о том, насколько удовлетворительны результаты, скорее всего, связаны с методологией и больше подходят для Stats.SE.

person Julius Vainora    schedule 24.01.2019
comment
Спасибо я поняла. Я был сбит с толку, потому что вызов ugarchfit позволяет использовать переменные зоопарка в качестве входных данных. Вторая часть моего вопроса действительно была адресована Stats.SE. - person Djpengo; 25.01.2019