Dear Philip
I'm afraid it's hard to say why you found different results for PEB and RFX BMS - they're very different approaches of summarising the data at the group level. This is always a risk of running different analysis pipelines!
If an effect is zero at the group level in PEB/BMR, it means it couldn't be explained as having been drawn from a normal distribution over subjects - i.e., as a random effect - with parameters in the range permissible by the priors in the PEB model. So perhaps the subjects are very inconsistent. To investigate you could plot the expected values of the D parameters over subjects (although this wouldn’t reveal the uncertainty or covariance, which is taken into account by PEB). You could plot the expected value of a single parameter across subjects using code like:
D = cellfun(@(x)x.Ep.D(3,2,1), GCM, 'UniformOutput', true);
D = cell2mat(D);
figure;bar(D);
Or plot all D parameters from a single subject with confidence intervals using code like:
DCM = GCM{1};
idx = spm_find_pC(DCM,'D');
Ep = spm_vec(DCM.Ep); % expected values
Vp = spm_vec(DCM.Vp); % variance
figure;
spm_plot_ci( Ep(idx), Vp(idx) );
One other thing to consider is whether the automatic search is being too strict - there's a setting called PEB.gamma if I recall correctly that determines the null hypothesis, documented in the help text of the batch interface. Do you get sensible looking parameters if you review the PEB model before the BMR - i.e., spm_dcm_peb_review(PEB,GCM) ?
Best
Peter
-----Original Message-----
From: SPM (Statistical Parametric Mapping) <[log in to unmask]> On Behalf Of Philip Deming
Sent: 25 March 2021 02:43
To: [log in to unmask]
Subject: [SPM] Setting up PEB for DCM
Hi,
I'm using DCM to study effective connectivity of three networks during resting state. I'm interested in six parameters in the D matrix, with the hypothesis that two of those six parameters (the modulatory effects of one network on the connectivity between the other two networks) are the largest.
To compare these parameters to a covariate of interest, I'm using PEB as described on the wiki page. I set up a full model with all six D parameters switched on, then I switched off each parameter in separate nested models. However, the PEB output is very uniform - the parameters have almost identical posterior probabilities to each other and the parameter estimates are very close to zero.
Based on RFX-BMS in a subsample (the healthy control participants), I know that the model that includes my two hypothesized parameters is the most probable. Yet my PEB results in this subsample seem to suggest that each model is equally likely and all six parameters are equally likely. In fact, Bayesian Model Averaging removes all six parameters from the model.
Is there something in my setup that would be causing this uniformity and the discrepancy between my RFX-BMS results and PEB results? The important parts of my PEB code are below.
Thanks for the help,
Phil Deming
%set up and run PEB on full model with all six D parameters on M = struct(); M.Q = 'all'; M.X = [ones(N,1), table2array(covs(:,2))]; M.Xnames = {'mean', 'HareC'}; field = {'D'}; PEB = spm_dcm_peb(GCM,M,field);
%set up nested models based on template
load(GCM{1}); DCM_full = DCM;
if isfield(DCM_full,'M')
DCM_full = rmfield(DCM_full,'M'); %clear out old priors end
%NOTE: These models turn off two parameters at a time to %match my RFX-BMS analyses. I've also tried creating %six different models, with one parameter turned off in each.
DMN = DCM_full;
FPN = DCM_full;
SN = DCM_full;
DMN.d(2,3,1) = 0;
DMN.d(3,2,1) = 0;
FPN.d(1,3,2) = 0;
FPN.d(3,1,2) = 0;
SN.d(1,2,3) = 0;
SN.d(2,1,3) = 0;
GCM = {DCM_full, DMN, FPN, SN};
%compare nested PEB models
[BMA,BMR] = spm_dcm_peb_bmc(PEB,GCM);
|