Advanced analysis and visualization of free recall data in Python.
Features:
- A large library of advanced analyses, tested against published benchmarks
- Flexible analysis customization and plotting
- Tools for exploratory analysis of large datasets
- Extensive automated testing to ensure analysis correctness
- Based around a simple and flexible table-based data format
- Comprehensive documentation and user guide
The name Psifr is pronounced "cipher". It's taken from Psi, in reference to the field of psychology, and FR for free recall.
You can install the latest stable version of Psifr using pip:
pip install psifr
You can also install the development version directly from the code repository on GitHub:
pip install git+https://github.com/mortonne/psifr
To plot a serial position curve for a sample dataset:
from psifr import fr
df = fr.sample_data('Morton2013')
data = fr.merge_free_recall(df)
recall = fr.spc(data)
g = fr.plot_spc(recall)
See the user guide for detailed documentation on importing and analyzing free recall datasets.
Also see the Jupyter notebooks for more analysis examples:
Generally the best way to get your data into shape for analysis in Psifr is to create a CSV (or TSV) file with one row for each event in the experiment, including study events (i.e., item presentations) and all recall attempts (including repeats and intrusions). See importing data for details.
A number of archival free recall datasets are available in the Matlab-based EMBAM format.
Data archives for a number of studies are available from the UPenn and Vanderbilt memory labs.
If you have data in EMBAM format, use matlab/frdata2table.m
to convert your data struct to a table with standard format.
Then use the Matlab function writetable
to write a CSV file which can then be read into Python for analysis.
If you use Psifr, please cite the paper:
Morton, N. W., (2020). Psifr: Analysis and visualization of free recall data. Journal of Open Source Software, 5(54), 2669, https://doi.org/10.21105/joss.02669
Hong, B., Barense, M. D., Pace-Tonna, C. A. & Mack, M. L. (2022). Emphasizing associations from encoding affects free recall at retrieval. Proceedings of the Annual Meeting of the Cognitive Science Society 453–460. https://escholarship.org/uc/item/2gw1s36q
Analyses supported by Psifr are based on analyses implemented in the Matlab toolbox EMBAM.
pybeh is a direct Python port of EMBAM that supports a wide range of analyses.
Quail runs automatic scoring of free recall data, supports calculation and plotting of some common free recall measures, and has tools for measuring the "memory fingerprint" of individuals.
Contributions are welcome to suggest new features, add documentation, and identify bugs. See the contributing guidelines for an overview.