-
Notifications
You must be signed in to change notification settings - Fork 1
ccmm_svo
The CCMM Stochastic Volatility VAR with Outliers extends the basic CCMMSV framework to handle occasional large deviations (outliers) in the data. This estimator maintains smooth stochastic volatility evolution while explicitly modeling and downweighting extreme observations, providing robustness to data anomalies while preserving the underlying volatility structure.
The CCMMSVO specification features:
- Constant VAR coefficients with Minnesota-type priors
- Stochastic volatility following random walk processes
- Explicit outlier detection and accommodation
- Robust treatment of extreme observations
- Maintains smooth volatility evolution between outlier periods
This approach is particularly useful when data contains occasional extreme observations that should not unduly influence the estimated volatility process.
-
Autoregression: Prior on first-order autoregression
- Range: [0, 1]
- Default: 0.8
- Controls the belief in random walk behavior for own lags
-
Lambda1: Overall tightness of priors
- Range: (0, ∞)
- Default: 0.1
- Smaller values impose tighter priors (more shrinkage)
-
Lambda2: Variable weighting
- Range: (0, ∞)
- Default: 0.5
- Controls relative weights between own-variable and cross-variable lags
-
Lambda3: Lag decay
- Range: (0, ∞)
- Default: 1
- Controls how quickly prior importance decays with lag length
-
Lambda4: Exogenous variable tightness
- Range: (0, ∞)
- Default: 100
- Controls prior tightness on exogenous variable coefficients
-
Lambda5: Block exogeneity shrinkage
- Range: (0, ∞)
- Default: 0.001
- Controls shrinkage when block exogeneity is imposed
-
OutlierFreq: Mean outlier frequency (one outlier every X years)
- Range: [1, ∞)
- Default: 10
- Controls the expected frequency of outlier occurrences
-
PriorObsYears: Outlier prior strength (precision matches X years of prior data)
- Range: [1, ∞)
- Default: 10
- Controls how strongly outliers are identified and treated
-
HeteroskedasticityScale: Scaling factor for IW distribution of heteroscedasticity parameter
- Range: (0, ∞)
- Default: 0.15
- Controls the prior scaling of the volatility process
-
Turningpoint: Latest point of range for getting mean prior for B matrix
- Type: Date
- Default: "" (empty)
- Controls the training sample end point for prior construction
-
Exogenous: Priors on exogenous variables flag
- Default: false
- Enables specialized priors for exogenous variables
-
BlockExogenous: Block exogeneity flag
- Default: false
- Imposes block exogeneity restrictions
-
Burnin: Number of burn-in draws
- Range: [0, ∞)
- Default: 0
- Recommended: Several thousand for proper convergence
-
StabilityThreshold: Threshold for maximum eigenvalue magnitude
- Range: (0, ∞)
- Default: null (no stability check)
- Ensures VAR stability by rejecting draws with eigenvalues above threshold
-
MaxNumUnstableAttempts: Maximum number of unstable sampling attempts
- Range: [1, ∞)
- Default: 1000
- Maximum attempts to find stable draw before stopping
- Data with outliers: When occasional extreme observations are present
- Crisis modeling: When modeling periods with both normal and crisis observations
- Robust volatility estimation: When seeking volatility estimates robust to anomalies
- Financial applications: When extreme market movements should be treated specially
- Clean data: When outliers are not a concern (use basic CCMMSV)
- Frequent extreme events: When large observations are regular features (use CCMMSVOT)
- Constant volatility: When volatility is stable over time
- Small samples: When insufficient data to identify outliers reliably
- Outlier frequency and prior strength parameters significantly affect identification
- Monitor which observations are identified as outliers
- Consider whether identified outliers align with known economic events
- Balance outlier robustness with model complexity
y_t = X_t β + A^{-1} Σ_t^{1/2} ε_t + o_t
where β are constant, Σ_t follows stochastic volatility, and o_t represents outliers.
Outliers follow a sparse process:
o_t ~ (1-p_t) × 0 + p_t × N(0, Ω_t)
where p_t is the outlier probability and Ω_t is the outlier variance.
- Speed: Slower than basic CCMMSV due to outlier identification
- Memory: Additional memory for outlier indicators and parameters
- Convergence: Generally good but requires more iterations
- Complexity: More complex posterior simulation
- Improved volatility estimation in presence of anomalies
- Explicit identification of extreme periods
- Robustness to data contamination
- Better forecasting during normal periods
- Robustness: More robust to extreme observations
- Complexity: Additional outlier identification complexity
- Performance: Better volatility estimates when outliers present
- Speed: Slower due to additional outlier sampling
- Scope: Occasional outliers vs. volatility jumps and outliers
- Complexity: Simpler than the full jump-volatility specification
- Focus: Outlier robustness vs. comprehensive extreme event modeling
- Computation: Faster than full CCMMSVOT specification
- Outlier frequency should reflect expected data characteristics
- Prior observation years controls identification strength
- Higher values make outlier identification more conservative
- Monitor posterior outlier probabilities for reasonableness
- Plot identified outliers against known economic events
- Check that outlier identification improves volatility estimates
- Assess sensitivity to outlier parameter choices
- Validate out-of-sample performance with and without outlier treatment
- Chan, J.C.C., G. Koop, R.W. Poirier, and J.L. Tobias (2019). "A New Model of Trend Inflation"
- Lopes, H.F. and M. West (2004). "Bayesian Model Assessment in Factor Analysis"
- Stock, J.H. and M.W. Watson (2016). "Dynamic Factor Models, Factor-Augmented Vector Autoregressions, and Structural Vector Autoregressions in Macroeconomics"