Подгонка доверительного интервала к dlmForecast в R

Я применил динамическую линейную модель к некоторым данным, используя dlmFilter в R [из пакета dlm]. С помощью указанного фильтра я предсказал на 7 шагов вперед, используя функцию dlmForecast. Прогнозируемый результат очень хороший, но я хотел бы добавить 95% -ный доверительный интервал, и [после большого количества тестов] мне не удалось это сделать.

Я скопировал похожий код ниже:

library(dlm)

data <- c(20.68502, 17.28549, 12.18363, 13.53479, 15.38779, 16.14770, 20.17536, 43.39321, 42.91027, 49.41402, 59.22262, 55.42043)

    mod.build <- function(par) {
  dlmModPoly(1, dV = exp(par[1]), dW = exp(par[2]))
}

# Returns most likely estimate of relevant values for parameters
mle <- dlmMLE(a2, rep(0,2), mod.build); #nileMLE$conv
if(mle$convergence==0) print("converged") else print("did not converge")

mod1 <- dlmModPoly(dV = v, dW = c(0, w))
mod1Filt <- dlmFilter(a1, mod1)
fut1 <- dlmForecast(mod1Filt, n = 7)

Результат прогноза кажется очень хорошим [хотя модель в некоторой степени переоценивает данные из-за небольшого количества наблюдений]. Однако я хотел бы добавить 95% доверительный интервал и изо всех сил пытался понять, как это сделать.

Любой совет будет принят во внимание?

Ваше здоровье


person j.rahilly    schedule 14.05.2020    source источник


Ответы (1)


person    schedule
comment
Пожалуйста, не публикуйте только код в качестве ответа, но также объясните, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и качественнее, и с большей вероятностью соберут положительные голоса. - person Mark Rotteveel; 02.07.2020
comment
Мои данные не распределяются нормально, и в результате доверительные интервалы продолжают быть слишком высокими. У кого-нибудь есть идеи? - person j.rahilly; 14.07.2020