This PR adds support for running classic free recall analyses using high-dimensional data including naturalistic stimuli. There are 3 new 'matching' modes to create a recall matrix:
exact - the presented and recalled stimulus matching exactly is chosen (this is the classic approach)
best - the presented stimulus that most closely matches a the recalled stimulus is chosen
smooth - a weighted average of the stimuli are chosen, where the weights are derived by the similarity between the recalled item and each presented item.
We support a variety of distance functions (to compare presented/recalled stimuli) with a new argument, distance (anything supported by scipy.spatial.distance.cdist). These new modes can be specified in the analysis method like so:
These new modes apply to the following analyses: accuracy, spc, pnr, lagcrp.
In this PR, I also refactored and cleaned up the analysis code, separating each analysis into its own file in the folder 'analysis'. This makes the code more readable, modular and easier to maintain.
This PR adds support for running classic free recall analyses using high-dimensional data including naturalistic stimuli. There are 3 new 'matching' modes to create a recall matrix:
exact
- the presented and recalled stimulus matching exactly is chosen (this is the classic approach)best
- the presented stimulus that most closely matches a the recalled stimulus is chosensmooth
- a weighted average of the stimuli are chosen, where the weights are derived by the similarity between the recalled item and each presented item.We support a variety of distance functions (to compare presented/recalled stimuli) with a new argument,
distance
(anything supported by scipy.spatial.distance.cdist). These new modes can be specified in the analysis method like so:egg.analyze('spc', match='smooth', distance='correlation')
.These new modes apply to the following analyses: accuracy, spc, pnr, lagcrp.
In this PR, I also refactored and cleaned up the analysis code, separating each analysis into its own file in the folder 'analysis'. This makes the code more readable, modular and easier to maintain.