Learn R Programming

FARS (version 0.7.1)

mldfm: Multi-Level Dynamic Factor Model (MLDFM)

Description

Estimates a Multi-Level Dynamic Factor Modelfrom time series data. Supports both Single-bBlock (DFM) and hierarchical Multi-Block (MLDFM) structures with customizable factor extraction settings.

Usage

mldfm(
  data,
  blocks = 1,
  block_ind = NULL,
  global = 1,
  local = NULL,
  middle_layer = NULL,
  method = 0,
  tol = 1e-06,
  max_iter = 1000,
  verbose = TRUE
)

Value

An object of class mldfm, which is a list containing:

factors

Matrix of estimated factors.

loadings

Matrix of factor loadings.

residuals

Matrix of residuals.

fitted

Matrix of fitted values.

method

Initialization method used (CCA or PCA).

iterations

Number of iterations before convergence.

factors_list

List of estimated factors for each node.

call

Function call.

Arguments

data

A numeric matrix or data frame containing the time series data. Rows represent time points; columns represent observed variables.

blocks

Integer. Number of blocks into which the data is divided.

block_ind

Integer vector. End column indices for each block. Must be of length blocks and in increasing order.

global

Integer. Number of global factors extracted from the entire dataset.

local

Integer vector of length blocks. Specifies the number of local factors for each block.

middle_layer

Named list. Each name is a string specifying a group of blocks (e.g., "1-3" or "2-3"), and each value is the number of factors to extract.

method

Integer. Method used to initialize the factors: 0 for Canonical Correlation Analysis (CCA), 1 for Principal Component Analysis (PCA).

tol

Numeric. The tolerance level for the residual sum of squares (RSS) minimization process. Used as a convergence criterion.

max_iter

Integer. The maximum number of iterations allowed for the RSS minimization process.

verbose

Logical. If TRUE (default), print a summary of the mldfm.

Examples

Run this code
mldfm_result <- mldfm(data = matrix(rnorm(100 * 5), 100, 5), blocks = 1, global = 2)

Run the code above in your browser using DataLab