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
)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 thegetSymbolsformat for FRED data, else specify the source.- additional.sources
character;
NULL(default) specify thesourceargument pergetSymbolsfor eachadditional.regressorsspecified.- naive.weights
logical;
TRUEEqual 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 theNotebelow.- 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 environmentNNSdata.- 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.
Value
Returns the following matrices of forecasted variables:
"interpolated_and_extrapolated"Returns adata.frameof the linear interpolated and NNS.ARMA extrapolated values to replaceNAvalues in the originalvariablesargument. This is required for working with variables containing different frequencies, e.g. whereNAwould 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.
Note
Specific regressors include:
PAYEMS– Payroll EmploymentJTSJOL– Job OpeningsCPIAUCSL– Consumer Price IndexDGORDER– Durable Goods OrdersRSAFS– Retail SalesUNRATE– Unemployment RateHOUST– Housing StartsINDPRO– Industrial ProductionDSPIC96– Personal IncomeBOPTEXP– ExportsBOPTIMP– ImportsTTLCONS– Construction SpendingIR– Import Price IndexCPILFESL– Core Consumer Price IndexPCEPILFE– Core PCE Price IndexPCEPI– PCE Price IndexPERMIT– Building PermitsTCU– Capacity Utilization RateBUSINV– Business InventoriesULCNFB– Unit Labor CostIQ– Export Price IndexGACDISA066MSFRBNY– Empire State Mfg IndexGACDFSA066MSFRBPHI– Philadelphia Fed Mfg IndexPCEC96– Real Consumption SpendingGDPC1– Real Gross Domestic ProductICSA– Weekly Unemployment ClaimsDGS10– 10-year Treasury ratesT10Y2Y– 2-10 year Treasury rate spreadWALCL– Total AssetsPALLFNFINDEXM– Global Price Index of All CommoditiesFEDFUNDS– Federal Funds Effective RatePPIACO– Producer Price Index All CommoditiesCIVPART– Labor Force Participation RateM2NS– M2 Money SupplyADPMNUSNERNSA– ADP Payrolls
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" doi:10.2139/ssrn.3489550
Viole, F. (2020) "NOWCASTING with NNS" doi:10.2139/ssrn.3589816
Examples
if (FALSE) { # \dontrun{
## 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)
} # }