Performs factor modelling under either restricted (static) or unrestricted (dynamic) factor models
fnets.factor.model(
x,
center = TRUE,
fm.restricted = FALSE,
q = c("ic", "er"),
ic.op = NULL,
kern.bw = NULL,
common.args = list(factor.var.order = NULL, max.var.order = NULL, trunc.lags = 20,
n.perm = 10)
)an S3 object of class fm, which contains the following fields:
number of factors
if fm.restricted = FALSE a list containing estimates of the spectral density matrices for x, common and idiosyncratic components
a list containing estimates of the autocovariance matrices for x, common and idiosyncratic components
if fm.restricted = TRUE, factor loadings; if fm.restricted = FALSE and q >= 1,
a list containing estimators of the impulse response functions (as an array of dimension (p, q, trunc.lags + 2))
if fm.restricted = TRUE, factor series; else, common shocks (an array of dimension (q, n))
if center = TRUE, returns a vector containing row-wise sample means of x; if center = FALSE, returns a vector of zeros
input time series each column representing a time series variable; it is coerced into a ts object
whether to de-mean the input x
whether to estimate a restricted factor model using static PCA
Either a string specifying the factor number selection method when fm.restricted = TRUE; possible values are:
"ic"information criteria-based methods of Alessi, Barigozzi & Capasso (2010) when fm.restricted = TRUE or Hallin and Liška (2007) when fm.restricted = FALSE
"er"eigenvalue ratio of Ahn and Horenstein (2013) when fm.restricted = TRUE or Avarucci et al. (2022) when fm.restricted = FALSE
or the number of unrestricted factors, see factor.number
choice of the information criterion penalty, see hl.factor.number or abc.factor.number for further details
a positive integer specifying the kernel bandwidth for dynamic PCA;
by default, it is set to floor(4 *(dim(x)[2]/log(dim(x)[2]))^(1/3))).
When fm.restricted = TRUE, it is used to compute the number of lags for which autocovariance matrices are estimated
a list specifying the tuning parameters required for estimating the impulse response functions and common shocks. It contains:
factor.var.orderorder of the blockwise VAR representation of the common component. If factor.var.order = NULL, it is selected blockwise by Schwarz criterion
max.var.ordermaximum blockwise VAR order for the Schwarz criterion
trunc.lagstruncation lag for impulse response function estimation
n.permnumber of cross-sectional permutations involved in impulse response function estimation
See Barigozzi, Cho and Owens (2024+) for further details.
Ahn, S. C. & Horenstein, A. R. (2013) Eigenvalue ratio test for the number of factors. Econometrica, 81(3), 1203--1227.
Alessi, L., Barigozzi, M., & Capasso, M. (2010) Improved penalization for determining the number of factors in approximate factor models. Statistics & Probability Letters, 80(23-24):1806–1813.
Avarucci, M., Cavicchioli, M., Forni, M., & Zaffaroni, P. (2022) The main business cycle shock(s): Frequency-band estimation of the number of dynamic factors.
Barigozzi, M., Cho, H. & Owens, D. (2024+) FNETS: Factor-adjusted network estimation and forecasting for high-dimensional time series. Journal of Business & Economic Statistics (to appear).
Hallin, M. & Liška, R. (2007) Determining the number of factors in the general dynamic factor model. Journal of the American Statistical Association, 102(478), 603--617.
Owens, D., Cho, H. & Barigozzi, M. (2024+) fnets: An R Package for Network Estimation and Forecasting via Factor-Adjusted VAR Modelling. The R Journal (to appear).
print.fm, predict.fm
# \donttest{
out <- fnets.factor.model(data.restricted, fm.restricted = TRUE)
# }
Run the code above in your browser using DataLab