Skip to content

Latest commit

 

History

History
54 lines (29 loc) · 2.55 KB

README.md

File metadata and controls

54 lines (29 loc) · 2.55 KB

This repository contains a collection of routines for fitting first-level (individual) models in computational psychiatry, specifically spectral DCMs to neurophysiology data. The repository includes:

fitLogLikelihoodLM.m: A routine for log likelihood estimation, i.e. for model fitting in the context of hierarchical Bayesian models.

fitLogLikelihoodLMFE.m: A variant of the log likelihood estimation routine that incorporates free energy minimisation for better model optimisation.

peb_ard_with_stats.m: A Parametric Empirical Bayes (PEB) routine for fitting models with automatic relevance determination (ARD), including statistical output for model evaluation.

peb_ard_with_stats_LM.m: An adaptation of the PEB routine incorporating log likelihood and free energy estimation for more robust parameter estimation and statistical analysis.

Brief guide -->

Fit a spectral neural mass model, specified using the DCM conventional structure (DCM with DCM.M.pE, DCM.M.pC,DCM.M.f, DCM.M.IS and DCM.xY specified).

Parameter estimation using log-likelihood (and/or Free Energy) optimisation with Levenberg-Marquardt.

The functions estimate model parameters by maximising the log-likelihood (or free energy) through iterative optimisation. The algorithms employ the Levenberg-Marquardt method with dynamic updates of hyperparameters (observation variance and damping factor).

Usage:

Given a fully specified DCM, do:

M = aFitDCM(DCM);

M.aloglik(num_iter) ; <-- log likelihood estimation or

M.aloglikFE(num_iter) ; <-- free enery estimation

% to re-run / add more iterations:

M.update_parameters(M.Ep)

M.aloglikFE(num_iter)

% and to access posteriors:

M.Ep

M.CP

M.F

Next, extract the individual posterior parameter means and variances and employ Parametric Empirical Bayes using peb_ard_with_stats.m or peb_ard_with_stats_LM.m.

These functions implement a Parametric Empirical Bayes (PEB) method for estimating group-level parameters while incorporating individual-level priors. The method combines ridge regression with Bayesian regularisation, using prior covariance information about individual parameters to shrink the group-level estimates. It also includes Automatic Relevance Determination (ARD) to determine the importance of each predictor. The _LM version of the code incorporates the Levenberg-Marquardt (LM) algorithm to optimise the parameter estimation, adjusting the update step to improve convergence and stability.

The function returns the group-level parameter estimates, ARD hyperparameters, t-statistics, p-values, and the individual-level posterior means and covariances.