smm_estimate: Simulated Method of Moments (SMM) Estimation

View source: R/moment-estimation.R

smm_estimateR Documentation

Simulated Method of Moments (SMM) Estimation

Description

Estimates structural parameters by minimising the distance between simulated and empirical moments. Use when analytic model moments are intractable (e.g. perturbed nonlinear models). For linear DSGEs produced by solve_dsge, SMM and GMM give the same large-sample point estimates but SMM is noisier; prefer gmm_estimate unless you have a specific reason to simulate.

Usage

smm_estimate(
  model,
  data,
  moments,
  params_start,
  shock_sd_start,
  weight = NULL,
  lower = NULL,
  upper = NULL,
  method = "Nelder-Mead",
  control = list(),
  sim_periods = 1000L,
  sim_replic = 5L,
  seed = NULL
)

Arguments

model

A dsge_model object.

data

Matrix or data frame of observed variables; column names must match a subset of the model's observables.

moments

Character vector naming the moments to match. Each element uses the same naming convention as endogenous_prior:

  • "sd:<var>" – standard deviation of <var>.

  • "var:<var>" – variance of <var>.

  • "cov:<v1>:<v2>" – covariance between <v1> and <v2>.

  • "ac1:<var>" – lag-1 autocorrelation of <var>.

  • "cor:<v1>:<v2>" – contemporaneous correlation.

params_start

Named numeric vector of starting values for the structural parameters.

shock_sd_start

Named numeric vector of starting values for shock standard deviations.

weight

Optional positive-definite weighting matrix. Default identity (one-step GMM). Pass "optimal" to run a two-step estimator where the second-step weight is the inverse Newey-West covariance of the empirical moments.

lower, upper

Bounds (-Inf, Inf by default).

method

Optimiser method for optim. Default "Nelder-Mead".

control

optim control list.

sim_periods

Integer. Length of each simulated path used to compute model moments. Default 1000.

sim_replic

Integer. Number of independent simulations averaged into the moment estimates. Default 5.

seed

Optional integer seed for reproducible simulations.

Value

An object of class c("dsge_smm","dsge_gmm").


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