Learn R Programming

NNS (version 11.1)

NNS.nowcast: NNS Nowcast

Description

Wrapper function for NNS nowcasting method using the nonparametric vector autoregression NNS.VAR, and Federal Reserve Nowcasting variables.

Usage

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
)

Value

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.

Arguments

h

integer; (h = 1) (default) Number of periods to forecast. (h = 0) will return just the interpolated and extrapolated values up to the current month.

additional.regressors

character; NULL (default) add more regressors to the base model. The format must utilize the getSymbols format for FRED data, else specify the source.

additional.sources

character; NULL (default) specify the source argument per getSymbols for each additional.regressors specified.

naive.weights

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.

specific.regressors

integer; NULL (default) Select individual regressors from the base model per Viole (2020) listed in the Note below.

start.date

character; "2000-01-03" (default) Starting date for all data series download.

keep.data

logical; FALSE (default) Keeps downloaded variables in a new environment NNSdata.

status

logical; TRUE (default) Prints status update message in console.

ncores

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.

Author

Fred Viole, OVVO Financial Systems

References

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")

Examples

Run this code

 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