Wrapper function for NNS nowcasting method using the nonparametric vector autoregression NNS.VAR, and Federal Reserve Nowcasting variables.
NNS.nowcast(
h = 1,
additional.regressors = NULL,
additional.sources = NULL,
naive.weights = FALSE,
specific.regressors = NULL,
start.date = "2000-01-03",
keep.data = FALSE,
status = TRUE,
ncores = NULL
)
Returns the following matrices of forecasted variables:
"interpolated_and_extrapolated"
Returns a data.frame
of the linear interpolated and NNS.ARMA extrapolated values to replace NA
values in the original variables
argument. This is required for working with variables containing different frequencies, e.g. where NA
would be reported for intra-quarterly data when indexed with monthly periods.
"relevant_variables"
Returns the relevant variables from the dimension reduction step.
"univariate"
Returns the univariate NNS.ARMA forecasts.
"multivariate"
Returns the multi-variate NNS.reg forecasts.
"ensemble"
Returns the ensemble of both "univariate"
and "multivariate"
forecasts.
integer; (h = 1)
(default) Number of periods to forecast. (h = 0)
will return just the interpolated and extrapolated values up to the current month.
character; NULL
(default) add more regressors to the base model. The format must utilize the getSymbols
format for FRED data, else specify the source.
character; NULL
(default) specify the source
argument per getSymbols
for each additional.regressors
specified.
logical; TRUE
Equal weights applied to univariate and multivariate outputs in ensemble. FALSE
(default) will apply weights based on the number of relevant variables detected.
integer; NULL
(default) Select individual regressors from the base model per Viole (2020) listed in the Note
below.
character; "2000-01-03"
(default) Starting date for all data series download.
logical; FALSE
(default) Keeps downloaded variables in a new environment NNSdata
.
logical; TRUE
(default) Prints status update message in console.
integer; value specifying the number of cores to be used in the parallelized subroutine NNS.ARMA.optim. If NULL (default), the number of cores to be used is equal to the number of cores of the machine - 1.
Fred Viole, OVVO Financial Systems
Viole, F. and Nawrocki, D. (2013) "Nonlinear Nonparametric Statistics: Using Partial Moments" (ISBN: 1490523995)
Viole, F. (2019) "Multi-variate Time-Series Forecasting: Nonparametric Vector Autoregression Using NNS" tools:::Rd_expr_doi("10.2139/ssrn.3489550")
Viole, F. (2020) "NOWCASTING with NNS" tools:::Rd_expr_doi("10.2139/ssrn.3589816")
if (FALSE) {
## Interpolates / Extrapolates all variables to current month
NNS.nowcast(h = 0)
## Additional regressors and sources specified
NNS.nowcast(h = 0, additional.regressors = c("SPY", "USO"),
additional.sources = c("yahoo", "yahoo"))
### PREDICTION INTERVALS
## Store NNS.nowcast output
nns_estimates <- NNS.nowcast(h = 12)
# Create bootstrap replicates using NNS.meboot (GDP Variable)
gdp_replicates <- NNS.meboot(nns_estimates$ensemble$GDPC1,
rho = seq(0,1,.25),
reps = 100)["replicates",]
replicates <- do.call(cbind, gdp_replicates)
# Apply UPM.VaR and LPM.VaR for desired prediction interval...95 percent illustrated
# Tail percentage used in first argument per {LPM.VaR} and {UPM.VaR} functions
lower_GDP_CIs <- apply(replicates, 1, function(z) LPM.VaR(0.025, 0, z))
upper_GDP_CIs <- apply(replicates, 1, function(z) UPM.VaR(0.025, 0, z))
# View results
cbind(nns_estimates$ensemble$GDPC1, lower_GDP_CIs, upper_GDP_CIs)
}
Run the code above in your browser using DataLab