check_identification: Check Local Identification of DSGE Parameters

View source: R/identification.R

check_identificationR Documentation

Check Local Identification of DSGE Parameters

Description

Assesses local identification by computing the Jacobian of the mapping from structural parameters to model-implied autocovariance moments. Uses an SVD decomposition to detect rank deficiency (non-identification) and near-collinearity (weak identification).

Usage

check_identification(x, ...)

## S3 method for class 'dsge_fit'
check_identification(x, n_lags = 4L, tol = 1e-06, ...)

## S3 method for class 'dsge_bayes'
check_identification(x, n_lags = 4L, tol = 1e-06, ...)

Arguments

x

A dsge_fit or dsge_bayes object.

...

Additional arguments (currently unused).

n_lags

Integer. Number of autocovariance lags to include in the moment vector. Default is 4.

tol

Numeric. Singular values below tol times the largest singular value are considered zero (rank deficiency). Default is 1e-6.

Details

The identification check constructs the moment vector m(\theta) = \mathrm{vec}(\Gamma(0), \Gamma(1), \ldots, \Gamma(K)) where \Gamma(k) is the autocovariance of observables at lag k, implied by the state-space solution. The Jacobian J = \partial m / \partial \theta is computed numerically.

A parameter is locally identified if the Jacobian has full column rank. If the rank is deficient, some linear combination of parameters cannot be distinguished from the data.

Per-parameter identification strength is measured by the norm of the corresponding Jacobian column: parameters with small column norms have little influence on the moments and may be weakly identified.

The condition number of J flags near-collinearity: a large condition number indicates that some parameter combinations are hard to distinguish.

Value

An object of class "dsge_identification" containing:

jacobian

The Jacobian matrix (n_moments x n_params).

svd

SVD decomposition of the Jacobian.

rank

Numerical rank of the Jacobian.

identified

Logical: are all parameters locally identified?

singular_values

Vector of singular values.

strength

Per-parameter identification strength (norm of corresponding Jacobian column).

condition_number

Condition number of the Jacobian.

param_names

Character vector of parameter names.

summary

Data frame with per-parameter diagnostics.

Examples


m <- dsge_model(
  obs(y ~ z),
  state(z ~ rho * z),
  start = list(rho = 0.5)
)
set.seed(1)
z <- numeric(100); for (i in 2:100) z[i] <- 0.8*z[i-1]+rnorm(1)
fit <- estimate(m, data = data.frame(y = z))
id <- check_identification(fit)
print(id)



dsge documentation built on Sept. 25, 2026, 5:08 p.m.