Fitmodel: High Level Model-Fitting Wrapper

class fitr.inference.fitmodel.FitModel(name='Anon Model', loglik_func=None, params=None, generative_model=None)

An object representing a model to be fit to behavioural data. This should be viewed as a high level wrapper for multiple potential model fitting algorithms which themselves can be run by using their respective classes.

Attributes:
name : str

Name of the model. We suggest identifying model based on free parameters.

loglik_func : function

The log-likelihood function to be used to fit the data

params : list

List of reinforcement learning parameter objects from the rlparams module.

generative_model : GenerativeModel object

Object representing a generative model

Methods

fit(data, method=’EM’, c_limit=0.01) Runs the specified model fitting algorithm with the given data.
fit(data, method='EM', c_limit=0.01, verbose=True)

Runs model fitting

Parameters:
data : dict

Behavioural data.

method : {‘EM’, ‘MLE’, ‘EmpiricalPriors’, ‘MCMC’}

The inference algorithm to use. Note that the data formats for ‘MCMC’ compared to the other methods is distinct, and should correspond appropriately to the method being employed

c_limit : float

Limit at which convergence of log-posterior probability is determined (only for methods ‘EM’ and ‘EmpiricalPriors’)

verbose : bool

Controls amount of printed output during model fitting

Returns:
fitrfit : object

Representation of the model fitting results