<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Research Notes on Erfan Jaripour</title><link>https://erfanjaripour.com/notes/</link><description>Recent content in Research Notes on Erfan Jaripour</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 19 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://erfanjaripour.com/notes/index.xml" rel="self" type="application/rss+xml"/><item><title>Choosing the Right Modeling Approach</title><link>https://erfanjaripour.com/notes/trial-by-trial-behavioral-adaptation/2026-08-19-choosing-the-right-modeling-approach/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/trial-by-trial-behavioral-adaptation/2026-08-19-choosing-the-right-modeling-approach/</guid><description>&lt;!-- Situation -->
&lt;p>One important modeling decision I made during the trial-by-trial behavioral adaptation project was to reconsider the role of Bayesian modeling in the analysis. I planned initially to include a Bayesian mixed-effects model alongside the frequentist analysis. The goal was to provide a complementary approach and examine whether the main conclusions were consistent across the two methods.&lt;/p>
&lt;!-- Data -->
&lt;p>During the modeling phase, however, the Bayesian model became computationally demanding. The dataset contained a large number of trial-level observations and required a hierarchical structure with participant-level variation and nonlinear trial effects. Fitting and evaluating the Bayesian model required much more time and computational resources than the primary frequentist mixed-effects models.&lt;/p></description></item><item><title>Managing Git Commit Scope</title><link>https://erfanjaripour.com/notes/trial-by-trial-behavioral-adaptation/2026-08-18-managing-git-commit-scope/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/trial-by-trial-behavioral-adaptation/2026-08-18-managing-git-commit-scope/</guid><description>&lt;!-- Situation -->
&lt;p>One important lesson I learned while working on a larger project was to manage the scope of Git commits more carefully. I already knew that each commit should represent a clear change. However, the challenge was keeping the scope of each change under control as the project became more complex.&lt;/p>
&lt;!-- Data -->
&lt;p>I usually committed my changes at the end of each day. Even when several files needed to be committed separately, I was able to organize them into appropriate commits. As the project became larger, however, this became more difficult. At the end of one day, I faced a large set of changes that was very difficult to track.&lt;/p></description></item><item><title>Adapting the Repository Structure</title><link>https://erfanjaripour.com/notes/trial-by-trial-behavioral-adaptation/2026-08-17-adapting-the-repository-structure/</link><pubDate>Mon, 17 Aug 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/trial-by-trial-behavioral-adaptation/2026-08-17-adapting-the-repository-structure/</guid><description>&lt;!-- Situation -->
&lt;p>The trial-by-trial behavioral adaptation project was larger than my two previous research projects and introduced several new challenges in organizing the analysis. I followed the planned minimalist repository structure and kept the project organized throughout development. As the analysis became more complex, however, I found that the same structure became increasingly difficult to navigate and review.&lt;/p>
&lt;!-- Data -->
&lt;p>The main problem appeared after the modeling, in visualizing and exporting the results. I had three main notebooks, supported by R scripts, including a data inspection notebook, an exploratory data analysis notebook, and a modeling notebook. I used this structure throughout the project as I had planned. As a result, the modeling notebook and the models R script contained the code for exporting the final results. This did not create a reproducibility problem, but the larger files became harder to review and navigate.&lt;/p></description></item><item><title>Following the Analysis Plan</title><link>https://erfanjaripour.com/notes/hierarchical-bayesian-working-memory/2026-07-24-following-the-analysis-plan/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/hierarchical-bayesian-working-memory/2026-07-24-following-the-analysis-plan/</guid><description>&lt;!-- Situation -->
&lt;p>The hierarchical Bayesian analysis of the working memory study was nearly complete, and I was preparing the preprint for public release. During a final review, I noticed that a few figures did not match the expected results. I decided to review the entire workflow and recreate the figures to verify the results.&lt;/p>
&lt;!-- Data -->
&lt;p>I found that some analysis steps had not been documented as clearly as they should have been. During the analysis, I explored several alternative approaches, and a few code cells and comments no longer reflected the final workflow. To ensure everything was correct, I regenerated the main figures and carefully compared them with the final analysis.&lt;/p></description></item><item><title>From Practice to Real Data</title><link>https://erfanjaripour.com/notes/hierarchical-bayesian-working-memory/2026-07-13-from-practice-to-real-data/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/hierarchical-bayesian-working-memory/2026-07-13-from-practice-to-real-data/</guid><description>&lt;!-- Situation -->
&lt;p>I am currently developing hierarchical Bayesian models for a working memory project. Building cognitive models with real data proved much more challenging than the practice exercises and small examples I completed during my Bayesian methods training. The models required substantially greater computational resources, and achieving reliable convergence, especially for nonlinear models, became an important part of the analysis.&lt;/p>
&lt;!-- Data -->
&lt;p>The first challenge was computational performance. The models became extremely slow when using larger numbers of tuning and sampling iterations. After investigating the problem, I learned how to use NumPyro with JAX to improve sampling performance and adjusted several model settings to support the analysis better. Although these changes improved the workflow, convergence remained difficult for some nonlinear models. I tested many combinations of sampling parameters and repeatedly evaluated the results. Larger sampling runs also created memory limitations during model evaluation. After many iterations and hours of computation, I identified a configuration that produced stable results while remaining computationally practical.&lt;/p></description></item><item><title>Learning the Publication Process</title><link>https://erfanjaripour.com/notes/stroop-interference/2026-07-08-learning-the-publication-process/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/stroop-interference/2026-07-08-learning-the-publication-process/</guid><description>&lt;!-- Situation -->
&lt;p>I recently attempted to publish my preprint on PsyArXiv. After a day of prescreening, the submission was not accepted because I did not have a previous publication, rather than because of an identified issue with the scientific content of the preprint. This was my first experience with the publication process as an independent researcher, and it highlighted an aspect of research dissemination that I had not previously encountered.&lt;/p></description></item><item><title>Managing Python Environment Conflicts</title><link>https://erfanjaripour.com/notes/computational-training/2026-07-03-python-environment-conflicts/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/computational-training/2026-07-03-python-environment-conflicts/</guid><description>&lt;!-- Situation -->
&lt;p>During my training in Bayesian methods, I encountered a series of unexpected problems with my Python environment. What initially appeared to be a minor warning during package imports gradually developed into compatibility issues across multiple libraries. As the exercises became more advanced, these problems began to interrupt my workflow and prevent several Bayesian models from running correctly.&lt;/p>
&lt;!-- Data -->
&lt;p>The first warning seemed harmless, so I continued working. Later, I discovered that some of the code I had learned from older resources was not compatible with newer library versions. The actual problem became clear when I started working with hierarchical Bayesian models. They took much longer than I expected to run and often failed to run successfully. After several unsuccessful attempts to fix individual packages, I concluded that my environment itself had become unstable. I decided to rebuild everything from scratch. I therefore replaced the existing pip-based installation with a clean Miniforge environment and reinstalled Python and all required packages.&lt;/p></description></item><item><title>Understanding Bayesian Thinking</title><link>https://erfanjaripour.com/notes/computational-training/2026-07-03-understanding-bayesian-thinking/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/computational-training/2026-07-03-understanding-bayesian-thinking/</guid><description>&lt;!-- Situation -->
&lt;p>I recently started learning Bayesian methods as part of my computational cognitive science training. After completing the first practice notebooks on Bayes&amp;rsquo; theorem and basic Bayesian inference, I became interested not only in the statistical methods themselves but also in the underlying approach to reasoning.&lt;/p>
&lt;!-- Data -->
&lt;p>Bayesian inference provides a framework for updating beliefs as new evidence becomes available. Prior information is combined with observed data to produce updated conclusions while explicitly representing uncertainty. Learning these foundations helped me understand how Bayesian methods differ from approaches that focus primarily on point estimates and fixed conclusions.&lt;/p></description></item><item><title>Preparing The Preprint</title><link>https://erfanjaripour.com/notes/stroop-interference/2026-06-26-preparing-the-preprint/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/stroop-interference/2026-06-26-preparing-the-preprint/</guid><description>&lt;!-- Situation -->
&lt;p>Writing the first preprint involved more than summarizing the analyses. The manuscript had to be organized into a clear scientific structure. It also had to include consistent terminology, correctly referenced figures and tables, and minimal repetition across sections.&lt;/p>
&lt;!-- Data -->
&lt;p>I reviewed every section multiple times to standardize the writing style and refine the organization of sections and subsections. I also verified references and ensured that every figure, table, and citation was correctly linked. I rechecked and removed repeated information to improve clarity and flow.&lt;/p></description></item><item><title>Open Data Challenge</title><link>https://erfanjaripour.com/notes/stroop-interference/2026-06-15-open-data-challenge/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://erfanjaripour.com/notes/stroop-interference/2026-06-15-open-data-challenge/</guid><description>&lt;!-- Situation -->
&lt;p>Working with an open dataset for the Stroop interference project revealed unexpected data and preprocessing issues. The raw data contained malformed header rows, and 85 recording files corresponded to only 81 unique participant identifiers, indicating that some participants contributed multiple files or sessions.&lt;/p>
&lt;!-- Data -->
&lt;p>I had to rebuild the file structure, separate metadata from trial data, and check duplicated participant records. It was necessary to identify which files corresponded to unique participants and which ones were repeated or continuation sessions.&lt;/p></description></item></channel></rss>