My favorites | Sign in
Project Home
READ-ONLY: This project has been archived. For more information see this post.
Search
for
Parametric_modulation_description  
Updated Aug 16, 2012 by vincent....@gmail.com

Parametric modulation

Aim

Once you have defined a model of learning and decision making you might be interested to test wether some of its parameters P are depend on some input U.

This is what we propose to do here.

As in the extension to multiple sessions, the first step is build an extended model containing :

  • the initial parameters (PIs) of the model
  • modulating parameters (PMs) associated to initial parameters and some inputs.
PMs modulate the value of PIs through a linear combination of some input.

In the end, initial parameters of the model are replaced by their modulated counterpart :

Note that contrary to the extended model for multiple sessions, the modulated model is just an initial model with more parameters.

Building the modulated model

From an unmodulated model

Declaring modulation

To build this extended model, one must declare which initial parameters should be modulated and by which inputs.

This declaration is done for evolution and observation parameters independently but similarly. Here, I declare modulation for observation parameters.

mod.phi is a cell of the size of the observation parameters

mod.phi = cell(1, dim.n_phi);

each field i contains :

  • indp = i : the index of the initial parameter it relates to
  • indu : the array of wished modulatory inputs

Building the extended model

The modulated model is build as follows:

[ f_fname_m,g_fname_m,dim_m,options_m, mod ] = build_modulated_model( f_fname,g_fname,dim,options,mod );

Outputs are the description variables of the modulated model. The mod structure has been completed :

each field i contains :

  • indp = i : index of the initial parameter in the initial model
  • indu : array of wished modulatory inputs
  • indpi : index of the initial parameter in the modulated model
  • indpm : index of the modulating parameters in the modulated model

Parameters of the extended model are reorganized. In short, modulators are placed after each parameters it modulates. An example is better than a long description.

Imagine your model has 2 observation parameters each modulated by respectively 2 and 3 inputs. Then

  • Observation parameters of the initial model : [Pi1,Pi2]
  • Observation parameters of the modulated model : [Pi1,Pm1_1,Pm1_2, Pi2,Pm2_1,Pm2_2,Pm2_3]

Manually

The model can be created manually by directly changing the evolution and or observation function and the dimension of the initial model.

To test combinations of activation/deactivation of modulatory parameters, those must be declared as such.

This is done in the mod structure:

  • indpm : index of the modulating parameters in the modulated model
  • indu : array of modulatory inputs associated to indpm

Testing the relevance of modulations

Once the modulated model is created, a good question to ask is which are the relevant modulations. In other words does a particular modulation increase model evidence This can be done by systematically comparing all possible models where modulators are activated/deactivated.

This is done as follows:

[inversions,mod,LogEv] = VBA_Inversion_modulation(y,u,f_fname_m,g_fname_m,dim_m,options_m,mod);

Inputs are:

  • the data (y,u)
  • the description of the modulated model
  • the description of the modulation (mod)
Outputs are:
  • inversions : the results of each individual inversion
  • mod
    • .inv_order : the description of modulation for each inversion
    • .p_m : an ordered description of modulated parameters
  • LogEv : a matrix of log evidence for each model

Grouping modulators

One might wish to activate/deactivate modulators in groups. For example, one might want to assess the relevance of a modulation accross sessions with individual modulation parameter for each session. In this example a modulation by a specific input is captured by a number of parameters that is equal to the number of sessions. To test the relevance of the modulation these parameters must be activated/deactivated together.

This can be done by specifying groups of modulators This must be done on the modulated model. Each group is described by the arrays of indices and types of the modulators.

mod.group_modulators = cell(1,Ngroups); 

Example of a group:

mod.group_modulators{1}.indp = [1,2,3]; % indices in the modulated model (either in the observation or evolution parameter set)
mod.group_modulators{1}.type = 'ppp'; % p for phi, t for theta

Parametric modulation at the group level

The VBA_Inversion_modulation function only works for a single subject (more precisely a single generative model).

One output of this function is the vector of log-evidences of the different models tested.

One can replot the final display using

VBA_Redisplay_modulation(LogEv,mod)

To perform a group level analysis, Model evidences of different subjects can be concatenated (leading to a Nmodel*Nsubject matrix) and used in the same function.

Other possible applications

  • Using a ramp function as an input, one could account for some effect of time, like fatigue.
  • Using modulation with non-linear function of some input : u, f(u), g(u),... to assess which transformation is more appropriate
  • ...
Powered by Google Project Hosting