#r #time-series
#r #временные ряды
Вопрос:
Я пытаюсь построить динамическую линейную модель (dlm) в R для моих двумерных сезонных (ежемесячных) временных рядов. Я нашел следующие ресурсы, которые помогли мне смоделировать двумерные случаи, но в них отсутствует компонент сезонности (насколько я понимаю):
Учебное пособие: Моделирование пространства состояний
https://kevinkotze.github.io/ts-4-tut / (см. Раздел 9, «Многомерные модели пространства состояний»)
Файл описания пакета ‘dlm’
https://cran.r-project.org/web/packages/dlm/dlm.pdf (см. Пример на стр. 17)
Я очень рад, если вы можете помочь мне написать функцию с сезонностью в моделировании dlm.
Вот код, который я использовал:
library(dlm)
data(NelPlo)
# 1. Build the model
buildSu <- function(x) {
Vsd <- exp(x[1:2])
Vcorr <- tanh(x[3])
V <- Vsd %o% Vsd
V[1,2] <- V[2,1] <- V[1,2] * Vcorr
Wsd <- exp(x[4:5])
Wcorr <- tanh(x[6])
W <- Wsd %o% Wsd
W[1,2] <- W[2,1] <- W[1,2] * Wcorr
return(list(
m0 = rep(0,2),
C0 = 1e7 * diag(2),
FF = diag(2),
GG = diag(2),
V = V,
W = W))
}
# 2. MLE parameter estimation
suMLE <- dlmMLE(NelPlo[,1:2], rep(0,6), buildSu); suMLE
buildSu(suMLE$par)[c("V","W")]
StructTS(NelPlo[,1], type="level") ## compare with W[1,1] and V[1,1]
StructTS(NelPlo[,2], type="level") ## compare with W[2,2] and V[2,2]
model.fit <- buildSu(suMLE$par)
model.filtered <- dlmFilter(NelPlo[,1:2], model.fit)
# 3. forecasting
y1 <- dlmForecast(model.filtered, nAhead=12,sampleNew=1)
Я очень рад, если вы можете помочь мне написать модель с сезонностью в dlm-моделировании, и любые ценные примеры R приветствуются.
Комментарии:
1. Пожалуйста, предоставьте воспроизводимые данные для работы и поясните, почему ваш код не работает для вас. Где вы столкнулись с проблемой?
2. Пакет dlm имеет функцию DLM для сезонных факторов
dlmModSeas()
(см. Стр. 21 в файле описания пакета). Если вы выполните поиск в пакете по ключевому слову «сезон», вы также обнаружите, что вы можете добавлять DLM вместе, напримерdlmModPoly() dlmModSeas(4) # linear trend plus quarterly seasonal component
(стр. 8). Это вам как-нибудь помогает?3. Уважаемый сэр / мадам #LC-datascientist Код является рабочим кодом и работает отлично, но я не уверен, что он обрабатывает сезонность (потому что мои временные ряды с сезонностью). Мне нужна помощь для включения компонента сезонности при построении модели (часть 1 кода). dlmModPoly() dlmModSeas (4) работает для одномерных (я пробовал), но я не знаю, как моделировать многомерные с использованием этих двух, пожалуйста, дайте мне знать, если вы знаете или какие-либо примерыдобро пожаловать
4.
NelPlo
Вы ожидаете, что мы сможем найти что-то в доступном пакете? Если нет, то этот вопрос следует закрыть как слишком расплывчатый. Если это так, то необходимо добавить лучшее описание того, как его загрузить.5. Сэр IRTFM, я отредактировал код NelPlo — это набор данных в пакете (достаточно загрузить пакет ). Если вы используете данные Google NelPlo, они содержат несколько временных рядов, я использовал только два из них для двумерного