Prognose mit midasr-Paket: Aufnahme eines neuen Hochfrequenzwertes

Ich versuche, mit dem sogenannten MIDAS-Konzept One-Step-Ahead-Prognosen zu berechnen. Innerhalb dieses Konzepts werden Vorhersagen in Abhängigkeit von höherfrequenten Daten berechnet. Zum Beispiel die abhängige Variabley könnte jährlich aufgezeichnet und mit Hilfe einer unabhängigen Variablen erklärt werdenxDies könnte beispielsweise vierteljährlich erfolgen.

Es gibt ein Paket namensmidasr Das bietet eine Menge Funktionen. Mit der Funktion kann ich die Ein-Schritt-Voraussagen berechnenselect_and_forecast aus dem genannten Paket wie folgt (mit simulierten Daten, die eine vereinfachte Version des Beispiels darstellen, bilden die Benutzeranleitung für das Paketmidasr):

Generierung der Daten:

library(midasr)
set.seed(1001)
n <- 250
trend <- c(1:n)
x <- rnorm(4 * n)
z <- rnorm(12 * n)
fn.x <- nealmon(p = c(1, -0.5), d = 8)
y <- 2 + 0.1 * trend + mls(x, 0:7, 4) %*% fn.x + rnorm(n)

Berechnung der Prognosen (Prognosehorizont außerhalb der Stichprobe wird durch das Argument gesteuertoutsampleIn meinem Beispiel berechne ich 10 Vorhersagen (240 bis 250).

select_and_forecast(y~trend+mls(y,1,1,"*")+mls(x,0,4),
                          from=list(x=c(4)),
                          to=list(x=rbind(c(14,19))),
                          insample=1:250,outsample=240:250,
                          weights=list(x=c("nealmon","almonp")),
                          wstart=list(nealmon=rep(1,3),almonp=rep(1,3)),
                          IC="AIC",
                          seltype="restricted",
                          ftype="recursive",
                          measures=c("MSE"),
                          fweights=c("EW","BICW")
)$forecasts[[1]]$forecast

Was ich jetzt tun möchte, ist, eine Situation zu simulieren, in der ein neuer Wert der höherfrequenten Variablen verfügbar wird, weil beispielsweise ein neuer Monat verstrichen ist und der Wert für diesen Monat im Modell verwendet werden kann. Ich würde wie folgt vorgehen, bin mir aber sehr unsicher, ob es stimmt:

select_and_forecast(y~trend+mls(y,1,1,"*")+mls(x,0,4),
                          from=list(x=c(3)),   # The only change is the reduction of the lower bound of the range of the lags of the regeressor from 4 to 3
                          to=list(x=rbind(c(14,19))),
                          insample=1:250,outsample=240:250,
                          weights=list(x=c("nealmon","almonp")),
                          wstart=list(nealmon=rep(1,3),almonp=rep(1,3)),
                          IC="AIC",
                          seltype="restricted",
                          ftype="recursive",
                          measures=c("MSE"),
                          fweights=c("EW","BICW")
)$forecasts[[1]]$forecast

Theoretisch schließt man die neuen Beobachtungen der höherfrequenten Variablen durch Reduzierung des Zeitindex ein, aber ich weiß nicht, ob die Verwendung der Funktion auf diese Weise korrekt ist.

Diese Frage ist für jemanden, der mit dem Paket vertraut ist. Kann jemand dazu einen Kommentar abgeben?

Die Formel, an die ich denke, lautet:

y_t=\beta_0 + \beta_1B(L^{1/m};\theta)x_{t-h+1/m}^{(m)} + \epsilon_t^{(m)}

Mith=1 in meinem Fall und Hinzufügen1/m eine neue Hochfrequenzbeobachtung aufzunehmen

Antworten auf die Frage(1)

Ihre Antwort auf die Frage