To examine the identifiability and sloppiness of the neural population model, we fit it to an EEG spectrum and estimate the posterior distribution over the 22 unknown parameters. We then characterize the properties of this distribution to diagnose the signatures of unidentifiability and sloppiness. To ensure that our results are not specific to a particular fitting algorithm, we use two independent methods: particle swarm optimization (PSO) and Markov chain Monte Carlo (MCMC). To ensure that our results are not specific to a given individual, we estimate the 22 posterior distributions, using both methods, for each of the 82 different EEG spectra. We then outline the two fitting schemes, focusing on how we use them to sample from the 22-dimensional posterior distribution. Finally, we describe use of the Kullback-Leibler divergence (KLD) to summarize how much we learned about individual parameters, and the Fisher information matrix (FIM), to assess the sloppiness and identifiability of the model. A full description of the techniques is described in the following manuscript:
"Parameter estimation and identifiability in a neural population model for electro-cortical activity" by Agus Hartoyo, Peter Cadusch, David Liley, and Damien Hicks, doi: https://doi.org/10.1371/journal.pcbi.1006694
The "Hartoyo et al. (2019) datasets" folder contains the main and the most important datasets used and generated in Hartoyo et al. (2019)
82x73_target_spectra.mat : dataset of the 82 experimental spectra we fit the neural population model to
82_subject_indices.mat : mapping between indices and labels of the 82 selected subjects
82x100x22_best_paramsets_PSO.mat : dataset of the 10% best parameter sets selected from 1000 PSO samples
82x1000x22_best_paramsets_MCMC.mat : dataset of 1000 parameter sets sub-sampled from a million MCMC samples
The "Hartoyo et al. (2019) code" folder is a Matlab® source code folder that provides implementation code along with supporting data required to reproduce the experimental results presented in Hartoyo et al. (2019).
- Clone or download this repository
- Access the "Hartoyo et al. (2019) code" folder using Matlab®
- Run methods and reproduce results/visualizations by executing the following Matlab® commands
RunPSObasedSampling;
BaseSetup;
RunSequenceBase(S_c(indx_a,indx_f),freq(indx_f),prm,dev_a,psel,mparam);
FigureSetup;
FiguresBase(fparam, [figtype]);
figtype = 1 -> spectral fits for selected subjects (default)
figtype = 2 -> single subject post and prior MCMC distributions
figtype = 3 -> KLD Box plots for all subjects
figtype = 4 -> parameter box plots for all subjects
figtype = 5 -> Hessian eigenvalues (selected subjects)
figtype = 6 -> Fisher Information eigenvalues (selected subjects)
figtype = 7 -> Hessian eigenvector kernel smoothed density plots (all subjects)
figtype = 8 -> Fisher matrix eigenvector angle density plots (all subjects)
figtype = 9 -> plot prior distributions of Eigen-directions
figtype = 10 -> plot fitted spectra and spectra at points shifted in eigen directions
figtype = 11 -> plot the time domain eeg comparisons
figtype = 12 -> plot pairwise parameter histograms
figtype = 13 -> plot eigenvector components
figtype = 14 -> plot of derivatives of gaussain wrt its parameters
figtype = 15 -> plot of direction cosine magnitudes
figtype = 16 -> plot correlation coefficients